About This Guide
This guide is based on fundamental Linux system programming concepts. Each chapter explains core topics clearly, includes real code examples, and ends with interview questions. Whether you are preparing for a job interview or deepening your Linux knowledge, this guide covers everything from the kernel core to advanced IPC and threading.
Topics Covered
All Chapters
What the kernel is, its seven core tasks (scheduling, memory, filesystem, processes, devices, networking, syscall API), kernel mode vs user mode, and how processes interact with the kernel.
The major Unix shells (sh, csh, ksh, bash), login shells, the /etc/passwd and /etc/group files explained field by field, UIDs, GIDs, shadow passwords, supplementary groups, and the root superuser.
The single directory hierarchy, all seven file types, hard links vs symbolic links, absolute vs relative pathnames, file permissions (rwx), file descriptors (stdin/stdout/stderr), and universality of I/O.
The process lifecycle, four memory segments (text/data/heap/stack), fork() with copy-on-write, exec(), process credentials (RUID/EUID/SUID), Linux capabilities, init process, daemons, mmap(), and static vs shared libraries.
All seven IPC mechanisms (pipes, FIFOs, sockets, file locking, message queues, semaphores, shared memory), signals as software interrupts, signal handlers and async-signal safety, and POSIX pthreads with mutexes and condition variables.
Process groups, sessions, controlling terminals, daemonisation, pseudoterminals, CLOCK_MONOTONIC, client-server architecture, POSIX realtime extensions, /proc virtual filesystem — plus a complete interview question bank covering all chapters.
Ready to Start?
Start with Chapter 01 or jump to the Master Interview Q&A in Chapter 06.
