Day 1:
Introduction to Linux
o History and open source
o Features
o Modular and monolithic vs micro
o Kernel design goals
Understanding the kernel
o Kernel structure
o Kernel components and organization
o Modes of operation
o User library different from kernel
Booting and kernel initialization
o Booting Basics
o System Ups and Down under Linux
o Boot-loaders (Various target specific boot loaders)
o Understanding Linux start_kernel in brief
Linux Basic Common Set
o File and directory related command
o Using VI effectively [contrast w.r.t Word processor]
o Commands for filters, IO redirection and etc
o Process related commands
o Miscellaneous Command [zip/tar/mount etc]
o Shell scripts
Simple handy utilities
Major script techniques
o Compiling C codes
System calls
o Understanding the Layer for Communication
o Basics
o Common system calls
o How is it implemented in Linux?
o Using a system call directly in assembly
o Linux implemented methods
DAY 2:
An introduction to device drivers
o Role of the Device Drivers
o Splitting the kernel
o Classes of devices and modules
o Kernel Architecture or Model
o Lab exercises
Module Concepts
o The kernel symbol table
o Module Initialization and shutdown
o Using memory, I/O Memory and I/O ports
o Module parameters and description
o Doing it in user-space
o Lab exercises
OS Services And Data Structures
o Atomic functions, Bit Operations
o Linked List, Memory barriers
o Semaphores,Time intervals in the kernel
o Delaying execution, Task queues
o Tasklets, Kernel timers
o Basic memory Management
o The proc file system
o Lab exercises
DAY 3:
Character Device Drivers
o Registering a character device driver
o File operations
o The file structure
o devfs / lseek / ioctl
o Lab exercises
o Blocking, non blocking and asynchronous operations
o Lab exercises
Block Device Divers
o Registering a block device driver
o File operations
o The file structure
o devfs / lseek / ioctl
o Lab exercises
DAY 4 :
Hardware and Interrupt Handling
o Top halves vs bottom halves
o registering a interrupt handler
o freeing a interrupt handler
o Using IO Ports
+ Installing and implementing an interrupt handler
o why bottom halves?
o Tasklets and Bottom halves
o softirq's
o Lab exercises
Block Device Drivers
o Handling requests
o buffers and buffer head
o Ram Disk Driver
o Lab exercises
Network Drivers
o The net_device structure in detail
o Packet transmission
o Packet reception
o The Interrupt handler
o Simulating a network device
o Lab exercises
Serial Interface Device Drivers
o Working of serial devices
o system calls related to serial device drivers
|