3 version history/evolution DO?
5 constant change, book is already outdated
6 current versioning/development model
8 running new/bleeding-edge kernels
13 memory protection/segmentation/pagination
15 allowed uses (floating point forbidden)
17 operating system functions
20 communication/IPC, scheduling
30 programming errors and bugs
31 restrict some operations to privileged users
32 do not send unzeored data (information leak)
33 do not trust received data (malformed data) (exploit)
34 risks for the machine/system/data
44 config/build time options/parameters
45 sysfs interface for modules DO?
50 char/block/procfs/sysfs: all go through VFS to device
51 fops is the main structure in linux
52 FS on top of block devices
54 exception: some on top of MTD devices
56 device driver subsystem
69 block device DO? STUDY
70 network device DO? STUDY
71 terminal/serial device DO? STUDY
81 container_of (struct embedding)
82 fops/*ops (function pointers)
83 IS_ERR (pointers and error values)
88 trees DO? STUDY rbtree
90 any hash implementation DO? STUDY
93 user context (current, copy_from_user, schedule) STUDY schedule
95 workqueue is user context
101 spinlock: disable scheduler
102 semaphore/mutex sleeps
103 per-cpu variables STUDY
108 kobject refcount MENTION
110 multiple implementations
111 space efficient (tables for different object sizes)
112 concurrency efficient (per-cpu tables)
132 tasklet/workqueue/postpone
137 some bus: SPI, I2C, parport DO?
140 some class: cdrom, backlight, input, misc DO?
146 module owner, concurrency, reference counting