System Programming
- What Does It Take to Make a Kernel?
- Core Knowledge That Modern Linux Kernel Developer Should Have
- A Beginner’s Guide to Linux Kernel Development (LFD103)
- Getting started with Linux kernel development
- Linux From Scratch
- Beyond Linux® From Scratch (systemd Edition)
- Think OS. A Brief Introduction to Operating Systems
- Computer Systems: A Programmer's Perspective
- Dive into Systems
- Kernighan and Pike, The Unix Programming Environment
- Kerrisk, The Linux Programming Interface
- Rubini, Linux Device Drivers
- Love, Linux System Programming
- Bovet and Cesati, Understanding the Linux Kernel
- Kernelnewbies
- The Linux Kernel documentation
- The Linux Kernel Module Programming Guide
- Linux Kernel Teaching
- Learning operating system development using Linux kernel and Raspberry Pi
- Beej's Guide to C Programming
- Hack The Kernel
- Linux kernel system calls for all architectures
- OSDev.org