3 version history/evolution/compatibility DO A LITTLE
4 constant change, book is already outdated
5 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?
49 module loading/unloading/handling
53 char/block/procfs/sysfs: all go through VFS to device
54 fops is the main structure in linux
55 FS on top of block devices
57 exception: some on top of MTD devices
59 device driver subsystem
74 block device DO? STUDY
75 network device DO? STUDY
76 terminal/serial device DO? STUDY
86 container_of (struct embedding)
87 fops/*ops (function pointers)
88 IS_ERR (pointers and error values)
93 trees DO? STUDY rbtree
95 any hash implementation DO? STUDY
98 user context (current, copy_from_user, schedule) STUDY schedule
100 workqueue is user context
106 spinlock: disable scheduler
107 semaphore/mutex sleeps
108 per-cpu variables STUDY
113 kobject refcount MENTION
115 multiple implementations
116 space efficient (tables for different object sizes)
117 concurrency efficient (per-cpu tables)
137 tasklet/workqueue/postpone
142 some bus: SPI, I2C, parport DO?
145 some class: cdrom, backlight, input, misc DO?
151 module owner, concurrency, reference counting