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 fops is the main structure in linux
46 FS on top of block devices
48 exception: some on top of MTD devices
50 device driver subsystem
63 block device DO? STUDY
64 network device DO? STUDY
65 terminal/serial device DO? STUDY
75 container_of (struct embedding)
76 fops/*ops (function pointers)
77 IS_ERR (pointers and error values)
82 trees DO? STUDY rbtree
84 any hash implementation DO? STUDY
87 user context (current, copy_from_user, schedule) STUDY schedule
89 workqueue is user context
95 spinlock: disable scheduler
96 semaphore/mutex sleeps
97 per-cpu variables STUDY
102 kobject refcount MENTION
104 multiple implementations
105 space efficient (tables for different object sizes)
106 concurrency efficient (per-cpu tables)
126 tasklet/workqueue/postpone
131 some bus: SPI, I2C, parport DO?
134 some class: cdrom, backlight, input, misc DO?
140 module owner, concurrency, reference counting