3 version history/evolution DO?
5 constant change, book is already outdated
6 current versioning/development model
8 running new/bleeding-edge kernels
13 operating system functions
16 communication/IPC, scheduling
26 programming errors and bugs
27 restrict some operations to privileged users
28 do not send unzeored data (information leak)
29 do not trust received data (malformed data) (exploit)
38 config/build time options/parameters
39 sysfs interface for modules DO?
44 char/block/procfs/sysfs: all go through VFS to device
45 FS on top of block devices
47 exception: some on top of MTD devices
49 device driver subsystem
62 block device DO? STUDY
63 network device DO? STUDY
64 terminal/serial device DO? STUDY
74 container_of (struct embedding)
75 fops/*ops (function pointers)
76 IS_ERR (pointers and error values)
81 trees DO? STUDY rbtree
83 any hash implementation DO? STUDY
86 user context (current, copy_from_user, schedule) STUDY schedule
88 workqueue is user context
94 spinlock: disable scheduler
95 semaphore/mutex sleeps
96 per-cpu variables STUDY
101 kobject refcount MENTION
103 multiple implementations
104 space efficient (tables for different object sizes)
105 concurrency efficient (per-cpu tables)
125 tasklet/workqueue/postpone
130 some bus: SPI, I2C, parport DO?
133 some class: cdrom, backlight, input, misc DO?
139 module owner, concurrency, reference counting