Shell Scripting:
Introduction to Kernel
- History of Linux
- Types of Kernel
- The Linux kernel
- Kernel Architecture
Compilation and linking technique
The Boot Process
- BIOS Level
- Boot Loader
- Setup, startup_32 functions
- The start_kernel () function
Programming & Debugging Tools
- Tools used to detect memory access error and
- Using gdb and ddd utilities
The File System
- Virtual File system & its role
- VFS data structures super_block, inode, file, dentry
- Files associated with a process
- System Calls
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, and signals
- Message queues
- Shared memory
- Semaphores
Network / Sockets Programming
An Overview
- System calls related to TCP and UDP sockets
- Layering Arc
- OSI, TCP Models
- TCP, IP, UDP
- ARP, RARP.
- ICMP (Error Reporting,
- Relevant examples on clientserver model
Sockets
- Outline of Linux domain Sockets
- Sock addr structure
- Elementary Socket System Calls
- Socket Options
- TCP/UDP Client/Server examples
- Interactive Servers
- Concurrent Servers
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
An introduction to device drivers
- Role of the Device Drivers
- Splitting the kernel
- Classes of devices and modules
- Kernel Architecture or Model
Module Basics
- Introduction to Modules & Device Drivers
- Modules Defined
- Types of Modules in the kernel
- Writing Your first kernel module
- Module Related Commands
- Kernel Module vs. Applications
- User space vs. Kernel space
- Exporting symbols from modules
- The kernel symbol table
OS Services And Data Structures
- Atomic functions, Bit Operations
- Linked List, Memory barriers
- Semaphores
- Basic memory Management
Time intervals in the kernel
- Delaying execution, Kernel timers
- The proc file system
Character Device Drivers
- Registering a character device driver
- File operations
- The file structure
- devfs / lseek /ioctl
- Blocking, non blocking and asynchronous
operations
Hardware and Interrupt Handling
- Using IO Ports
- Installing and implementing an interrupt handler
- Tasklets and Bottom halves
- Task queues
Block Device Drivers
Introduction to Network Drivers
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 cal
|