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
72 block device DO? STUDY
73 network device DO? STUDY
74 terminal/serial device DO? STUDY
84 container_of (struct embedding)
85 fops/*ops (function pointers)
86 IS_ERR (pointers and error values)
91 trees DO? STUDY rbtree
93 any hash implementation DO? STUDY
96 user context (current, copy_from_user, schedule) STUDY schedule
98 workqueue is user context
104 spinlock: disable scheduler
105 semaphore/mutex sleeps
106 per-cpu variables STUDY
111 kobject refcount MENTION
113 multiple implementations
114 space efficient (tables for different object sizes)
115 concurrency efficient (per-cpu tables)
135 tasklet/workqueue/postpone
140 some bus: SPI, I2C, parport DO?
143 some class: cdrom, backlight, input, misc DO?
149 module owner, concurrency, reference counting