From: Thadeu Lima de Souza Cascardo Date: Tue, 1 Dec 2009 12:08:48 +0000 (-0200) Subject: A class plan sketch. X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fkernel%2Fold_slides%2F.git;a=commitdiff_plain;h=cd1ca06e160b811b585854e924bfbf0aed4a5b46 A class plan sketch. --- diff --git a/plano b/plano new file mode 100644 index 0000000..5845f53 --- /dev/null +++ b/plano @@ -0,0 +1,103 @@ +intro + linux + +basics + Makefile + Kconfig DO? + build + init/exit + printk + +VFS + center/hub/interface + char/block/procfs/sysfs: all go through VFS to device + FS on top of block devices + block layer + exception: some on top of MTD devices + +device driver subsystem + buses + device classes + interfaces + dev file + sysfs + procfs + sysctl DO? + netlink DO? + +char device +procfs +sysfs +block device DO? STUDY +network device DO? STUDY +terminal/serial device DO? STUDY + +debugging techniques + printk/procfs + kgdb DO? + trace DO? + kprobe DO? + +C basics + container_of (struct embedding) + fops/*ops (function pointers) + +data structures + list_head + bitmap + trees DO? STUDY rbtree + idr DO? + any hash implementation DO? STUDY + +contexts + user context (current, copy_from_user, schedule) STUDY schedule + interrupt context + workqueue is user context + sleep == schedule + +concurrency + SMP systems + locking + spinlock: disable scheduler + semaphore/mutex sleeps + per-cpu variables STUDY + atomic + RCU DO? + +memory allocation + kobject refcount MENTION + slab STUDY + multiple implementations + space efficient (tables for different object sizes) + concurrency efficient (per-cpu tables) + kmalloc + uses slab STUDY + vmalloc + linux memory layout + +scheduling/timing + schedule{,_timeout} + timer + workqueue + completion/wait_head + tasklets DO? STUDY + +portability + readl/writel/etc + be16_to_cpu/etc + +interrupt + {request,free}_irq + interrupt context + tasklet/workqueue/postpone + +buses + PCI bus DO? + USB bus DO? + some bus: SPI, I2C, parport DO? + +device classes + some class: cdrom, backlight, input, misc DO? + +kobject DO? advanced + refcounting