4 version history/evolution/compatibility
5 constant change, book is already outdated
6 current versioning/development model
9 running new/bleeding-edge kernels
14 memory protection/segmentation/pagination
16 allowed uses (floating point forbidden)
20 operating system functions
23 communication/IPC, scheduling
33 programming errors and bugs
34 restrict some operations to privileged users
35 do not send unzeored data (information leak)
36 do not trust received data (malformed data) (exploit)
37 risks for the machine/system/data
47 config/build time options/parameters
48 sysfs interface for modules
50 module loading/unloading/handling
54 char/block/procfs/sysfs: all go through VFS to device
55 fops is the main structure in linux
56 FS on top of block devices
58 exception: some on top of MTD devices
60 device driver subsystem
71 container_of (struct embedding)
72 fops/*ops (function pointers)
73 IS_ERR (pointers and error values)
94 any hash implementation
103 user context (current, copy_from_user, schedule) schedule
105 workqueue is user context
111 spinlock: disable scheduler
112 semaphore/mutex sleeps
118 kobject refcount MENTION
120 multiple implementations
121 space efficient (tables for different object sizes)
122 concurrency efficient (per-cpu tables)
137 readl/writel/etc (portability)
141 tasklet/workqueue/postpone
143 classes: cdrom, backlight, input, misc
144 terminal/serial device
152 other buses: SPI, I2C, parport, etc
160 board/machine/architecture files