Added functions to move memory to and from user space.
[cascardo/kernel/old_slides/.git] / plano
diff --git a/plano b/plano
index b8b9892..f1b0eb3 100644 (file)
--- 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