A class plan sketch.
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Tue, 1 Dec 2009 12:08:48 +0000 (10:08 -0200)
committerThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Tue, 1 Dec 2009 12:08:48 +0000 (10:08 -0200)
plano [new file with mode: 0644]

diff --git a/plano b/plano
new file mode 100644 (file)
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