Linux System Programming
MODULE 1: HISTORY AND STANDARDS
- A Brief History of Linux
- The GNU Project
- The Linux Kernel
MODULE 2: FUNDAMENTAL CONCEPTS
- Kernel, Shell, Users and Groups
- File system, directories, links
- Processes, memory, threads
- IPC, signals, job control
- Client-server architecture, /proc
MODULE 3: SYSTEM PROGRAMMING CONCEPTS
- System calls, library functions
- GNU C Library (glibc)
- Error handling, portability
MODULE 4: FILE I/O (UNIVERSAL MODEL)
- File operations (open, read, write, close)
- File offset handling
- Database input basics
MODULE 5: FILE I/O ADVANCED
- File descriptors, flags
- Non-blocking I/O
- Large files, temp files
MODULE 6: PROCESSES
- Process structure, memory layout
- Virtual memory, stack
- Environment variables
MODULE 7: MEMORY ALLOCATION
MODULE 8: USERS AND GROUPS
- Password, shadow, group files
- Authentication basics
MODULE 9: PROCESS CREDENTIALS
- User IDs, group IDs
- SetUID, SetGID
MODULE 10: SYSTEM LIMITS AND OPTIONS
- System limits and runtime retrieval
MODULE 11: SYSTEM INFORMATION
- /proc filesystem
- System identification
MODULE 12: LINUX SYSTEM
MODULE 13: FILE I/O BUFFERING
- Buffer cache
- stdio buffering
- Direct I/O
MODULE 14: FILE SYSTEMS
- Disks, partitions
- VFS, journaling
- Mounting systems
MODULE 15: FILE ATTRIBUTES
- Permissions, ownership
- Timestamps
MODULE 16: DIRECTORIES AND LINKS
- Hard/soft links
- File operations, path resolution
MODULE 17: SIGNALS
- Signal types and handling
- Signal masks and sets
MODULE 18: PROCESS CREATION
- fork(), exec(), wait()
- vfork and race conditions
MODULE 19: PROCESS TERMINATION
- Exit handling
- Process cleanup
MODULE 20: PROGRAM EXECUTION
- exec functions
- Running shell commands
MODULE 21: PROCESS GROUPS & JOB CONTROL
- Sessions, terminals
- Foreground/background jobs
MODULE 22: DAEMONS
- Creating and managing daemons
- syslog usage
MODULE 23: LOGIN ACCOUNTING
- utmp, wtmp, lastlog
- User session tracking
MODULE 24: SHARED LIBRARIES
- Static vs shared libraries
- Linking and loading
MODULE 25: PIPES AND FIFOS
- IPC using pipes
- Client-server via FIFO
MODULE 26: MEMORY MAPPING
- mmap(), file mapping
- Anonymous mapping
MODULE 27: VIRTUAL MEMORY
- Memory protection
- Memory locking
MODULE 28: FILE LOCKING
- flock(), fcntl()
- Lock mechanisms
MODULE 29: SOCKETS
- Socket creation
- Stream & datagram sockets
MODULE 30: TERMINALS
- Terminal attributes
- stty command
MODULE 31: ALTERNATIVE I/O
- I/O multiplexing
- epoll API
MODULE 32: PSEUDO TERMINALS
- Pseudoterminals
- Process communication