- 1. Process Management (kernel side)
- 2. Process Scheduling
- 3. System Calls
- 4. Memory Management
- 5. The Virtual File system
- 6. Interrupts and Interrupt Handlers
- 7. An Introduction to Kernel Synchronization
- 8. Timers and Time Management
- 9. Linux Device Driver
- 10. Writing a device Driver Program
- 11. RTOS
- 12. Task
- 13. Scheduling
- 14. Task functions
1. Process Management (kernel side)
- The Process
- Process Descriptor and the Task Structure
- Allocating the Process Descriptor
- Storing the Process Descriptor
- Process State
- Manipulating the Current Process State
- Process Context
- Copy-on-Write
- Forking
- vfork()
- Kernel Threads
2. Process Scheduling
- Multitasking
- Linux’s Process Scheduler Policy
- I/O-Bound Versus Processor-Bound Processes
- Process Priority
- Time slice
- The Scheduling Policy in Action
- The Linux Scheduling Algorithm
- Scheduler Classes
- Process Scheduling in Unix Systems
- Fair Scheduling
- The Scheduler Entry Point
- Wait Queues
- Waking Up
- Preemption and Context Switching
3. System Calls
- System Calls
- Examples of system calls
- Examples of Standard APIs
- System call Implementation
- API-system Call-OS relationship
- Types of system calls
- Processor Affinity System Calls
- Yielding Processor Time
- Communicating with the Kernel
- APIs, POSIX, and the C Library
- Accessing the System Call from User-Space
4. Memory Management
- Pages
- Zones
- Getting Pages
- Getting Zeroed Pages
- Freeing Pages
- kmalloc()
- gfp_mask Flags
- Action Modifiers
- Zone Modifiers
- Type Flags
- kfree()
- vmalloc()
- Slab Layer
- Design of the Slab Layer
- Slab Allocator Interface
- Allocating from the Cache
- The Process Address Space
5. The Virtual File system
- Common File system Interface
- File system Abstraction Layer
- Unix File systems
- VFS Objects and Their Data Structures
- The Superblock Object
- Superblock Operations
- The Inode Object
- Inode Operations
- The Dentry Object
- The File Object
- File Operations
- Data Structures Associated with File systems
- Data Structures Associated with a Process
6. Interrupts and Interrupt Handlers
- Top Halves verses Bottom Halves
- Registering an interrupt handler
- Interrupt context
- Taslets
- Softirq
7. An Introduction to Kernel Synchronization
- Kernel Synchronization Methods
- Spin locks
- Reader-writer locks
- Semaphores
8. Timers and Time Management
- Jiffies
- Hardware clocks and timers
9. LINUX DEVICE DRIVER
- Introduction
- Role of Device Driver
- types of Device driver
- loadable modules and its benefits
- Functions used to load and unload modules
- Passing parameters to a loadable module
10. Writing a device Driver Program
- Important header files
- Writing a simple module
- Compiling and loading modules
- Device information in /proc
- Character driver
- character driver basics
- major and minor numbers
- creating device files with mknod
- registering a character device driver
- Hand- on Practice
- Character Device Driver writing
- Userspace interaction
- Proc/sys model
- Lcd implementation
- Understanding the serial device driver
11. RTOS
- Introduction to RTOS
- What is Real Time System?
- Requirements of Real time System
- Hard Real-time Systems and Soft Real-time Systems
12. Task
- What is a task creation?
- Unitask approach Vs multitask approach
- Task states
13. Scheduling
- Multitasking Kernel
- Context switch
- Priority based scheduling
- Round Robin scheduling
14. Task functions
- Task states
- Task hooks
- Task synchronization