From: Thadeu Lima de Souza Cascardo Date: Mon, 7 Dec 2009 03:53:55 +0000 (-0200) Subject: Seems more like a class plan now. X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fkernel%2Fold_slides%2F.git;a=commitdiff_plain;h=6942eaad06d32bd9a099c8117b82cfc306f6ec55 Seems more like a class plan now. --- diff --git a/plano b/plano index b8b9892..f1b0eb3 100644 --- a/plano +++ b/plano @@ -1,6 +1,7 @@ +DAY ONE: intro linux - version history/evolution/compatibility DO A LITTLE + version history/evolution/compatibility constant change, book is already outdated current versioning/development model modules @@ -37,14 +38,14 @@ concepts basics Makefile - Kconfig DO? - building linux DO? + Kconfig + building linux build init/exit module macros module parameters config/build time options/parameters - sysfs interface for modules DO? + sysfs interface for modules printk module loading/unloading/handling @@ -63,39 +64,43 @@ device driver subsystem dev file sysfs procfs - sysctl DO? - netlink DO? + sysctl + netlink + +C basics + container_of (struct embedding) + fops/*ops (function pointers) + IS_ERR (pointers and error values) char device MAJOR/MINOR/MKDEV + +DAY TWO: procfs -sysfs -block device DO? STUDY -network device DO? STUDY -terminal/serial device DO? STUDY debugging techniques printk/procfs - debugfs DO? STUDY - kgdb DO? - trace DO? - kprobe DO? - -C basics - container_of (struct embedding) - fops/*ops (function pointers) - IS_ERR (pointers and error values) + debugfs + kgdb + trace + kprobe data structures list_head bitmap - trees DO? STUDY rbtree - idr DO? - any hash implementation DO? STUDY + trees rbtree + idr + any hash implementation + +portability + be16_to_cpu/etc + + +DAY THREE: contexts - user context (current, copy_from_user, schedule) STUDY schedule + user context (current, copy_from_user, schedule) schedule interrupt context workqueue is user context sleep == schedule @@ -105,18 +110,18 @@ concurrency locking spinlock: disable scheduler semaphore/mutex sleeps - per-cpu variables STUDY + per-cpu variables atomic - RCU DO? + RCU memory allocation kobject refcount MENTION - slab STUDY + slab multiple implementations space efficient (tables for different object sizes) concurrency efficient (per-cpu tables) kmalloc - uses slab STUDY + uses slab vmalloc linux memory layout @@ -125,29 +130,31 @@ scheduling/timing timer workqueue completion/wait_head - tasklets DO? STUDY - -portability - readl/writel/etc - be16_to_cpu/etc + tasklets -interrupt +DAY FOUR: +I/O + readl/writel/etc (portability) +Interrupts {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 - -STUDY: - module owner, concurrency, reference counting - -board/machine/architecture files DO? +Device Model + classes: cdrom, backlight, input, misc + terminal/serial device + sysfs + kobject (advanced) + refcounting + +Buses + PCI + USB + other buses: SPI, I2C, parport, etc + +DAY FIVE: +DMA/Memory Mapping +Block Devices + scather/gather +Network Devices + skb +board/machine/architecture files