Operating Systems Fundamentals
Concurrency primitives, synchronisation patterns, virtual memory, and the boot path — the building blocks every Linux engineer needs in working memory.
Concurrency & synchronisation
Memory, interrupts & boot
My kernel diagrams
Linux System Programming
The user-space side of the kernel ABI — processes, files, signals, IPC, threads, and sockets.
The Linux Programming Interface
Michael Kerrisk · the canonical reference for Linux system calls.
What it covers
Process creation and termination, file I/O and the VFS, signals, pipes and FIFOs, POSIX message queues, semaphores and shared memory, POSIX threads, and the socket API. If a Linux syscall has a man page, this book has a chapter on it.
Companion projects in the Resources section: thread pool, producer–consumer queue, and publisher–subscriber.
Linux Kernel Development
Subsystems, schedulers, drivers, and how to read — and contribute to — the kernel tree.
Books
How Linux Works, 3rd Edition
Brian Ward
Linux Kernel Development
Robert Love
Embedded Linux
Linux guide & ecosystem
Resources
Reference guides, external lectures, and every GitHub project that backs the topics on this page — each link listed once.
Reference guides
External lectures
GitHub projects
- AlgorithmsAlgorithms with C and C++
- CompilerCompiler · lexer / parser / codegen
- ConcurrencyConcurrency · thread pool, pub/sub, producer–consumer
- Data StructuresData Structures
- Computer VisionComputer Vision
- Linux DriverRaspberry Pi Linux device driver & userspace
- ROSROS
- ROS SLAMROS SLAM projects (C++)