intro
linux
- version history/evolution DO?
+ version history/evolution/compatibility DO A LITTLE
+ constant change, book is already outdated
+ current versioning/development model
modules
- kernel/user space
+ build dependencies
+ running new/bleeding-edge kernels
concepts
- robustness
+ kernel/user space
+ rings/levels/modes
+ memory protection/segmentation/pagination
+ library calls
+ allowed uses (floating point forbidden)
+ concurrency
+ small stack
+ libc/system calls
+ operating system functions
+ process management
+ concurrency
+ communication/IPC, scheduling
+ memory management
+ address space
+ virtual memory
+ filesystems
+ networking
+ device, I/O
+ robustness/security
error checking
+ kernel space code
+ programming errors and bugs
+ restrict some operations to privileged users
+ do not send unzeored data (information leak)
+ do not trust received data (malformed data) (exploit)
+ risks for the machine/system/data
basics
Makefile
Kconfig DO?
+ building linux DO?
build
init/exit
+ module macros
+ module parameters
+ config/build time options/parameters
+ sysfs interface for modules DO?
printk
+ module loading/unloading/handling
VFS
center/hub/interface
char/block/procfs/sysfs: all go through VFS to device
+ fops is the main structure in linux
FS on top of block devices
block layer
exception: some on top of MTD devices
netlink DO?
char device
+ MAJOR/MINOR/MKDEV
+
procfs
sysfs
block device DO? STUDY
debugging techniques
printk/procfs
+ debugfs DO? STUDY
kgdb DO?
trace DO?
kprobe DO?