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)
19 operating system functions
22 communication/IPC, scheduling
32 programming errors and bugs
33 restrict some operations to privileged users
34 do not send unzeored data (information leak)
35 do not trust received data (malformed data) (exploit)
36 risks for the machine/system/data
46 config/build time options/parameters
47 sysfs interface for modules DO?
52 char/block/procfs/sysfs: all go through VFS to device
53 fops is the main structure in linux
54 FS on top of block devices
56 exception: some on top of MTD devices
58 device driver subsystem
71 block device DO? STUDY
72 network device DO? STUDY
73 terminal/serial device DO? STUDY
83 container_of (struct embedding)
84 fops/*ops (function pointers)
85 IS_ERR (pointers and error values)
90 trees DO? STUDY rbtree
92 any hash implementation DO? STUDY
95 user context (current, copy_from_user, schedule) STUDY schedule
97 workqueue is user context
103 spinlock: disable scheduler
104 semaphore/mutex sleeps
105 per-cpu variables STUDY
110 kobject refcount MENTION
112 multiple implementations
113 space efficient (tables for different object sizes)
114 concurrency efficient (per-cpu tables)
134 tasklet/workqueue/postpone
139 some bus: SPI, I2C, parport DO?
142 some class: cdrom, backlight, input, misc DO?
148 module owner, concurrency, reference counting