-
Introduction to Kernel
- History of Linux
- Types of Kernel
- The Linux kernel
- Kernel Architecture
-
The Boot Process
- BIOS Level
- Boot Loader
- Setup, startup_32 functions
- The start_kernel() function
-
Kernel Recompilation
- Importance of make files
- Procedure to recompile the kernel
-
Implementing System Calls
- System Calls Defined
- System Calls and APIs
- System Call Table
- Unistd.h and entry.S files
- Implementing a new system call
-
The File System
- Virtual File system & its role
- VFS data structures super_block, inode, file, dentry
- Files associated with a process
- System Calls
- Lab Exercisers
-
Process management
- Process Defined
- Process Descriptor Structures in the kernel
- Process States
- Process Scheduling
- Process Creation
- System calls related to process management
|
-
Inter Process Communication
- Pipes, Fifo's, signals
- System-V IPC's
- Message queues
- Shared memory
- Semaphores
-
Sockets
- An Overview
- System calls related to TCP and UDP sockets
-
Memory Management
- Defining and Creating secondary memory areas
- Responsibilities of Memory Management Module
- Memory allocation & deallocation system calls
malloc, calloc, alloca, free
- Demand Paging defined
- Process Organization in Memory
- Address Translation and page fault handling
- Memory allocation strategies
- Buddy System Algorithm
- Slab Allocator
- Swapping Memory Areas
- Memory Mapping
-
Programming & Debugging Tools
- strace: tracing system calls
- Tools used to detect memory access error and
Memory leakage in Linux : mtrace
- Using gdb and ddd utilities
|