The Linux Kernel
6.1.115
A guide to the Kernel Development Process
Submitting patches: the essential guide to getting your code into the kernel
Code of conduct
Kernel Maintainer Handbook
All development-process docs
Core API Documentation
The Linux driver implementer’s API guide
Kernel subsystem documentation
Locking in the kernel
Linux kernel licensing rules
How to write kernel documentation
Development tools for the kernel
Kernel Testing Guide
Kernel Hacking Guides
Unreliable Guide To Hacking The Linux Kernel
Unreliable Guide To Locking
Linux Tracing Technologies
fault-injection
Kernel Livepatching
Rust
The Linux kernel user’s and administrator’s guide
The kernel build system
Reporting issues
User-space tools
The Linux kernel user-space API guide
The Linux kernel firmware guide
Open Firmware and Devicetree
CPU Architectures
Unsorted Documentation
Translations
The Linux Kernel
Kernel Hacking Guides
View page source
Kernel Hacking Guides
¶
Unreliable Guide To Hacking The Linux Kernel
Introduction
The Players
Some Basic Rules
ioctls: Not writing a new system call
Recipes for Deadlock
Common Routines
Wait Queues
include/linux/wait.h
Atomic Operations
Symbols
Routines and Conventions
Putting Your Stuff in the Kernel
Kernel Cantrips
Thanks
Unreliable Guide To Locking
Introduction
The Problem With Concurrency
Locking in the Linux Kernel
Hard IRQ Context
Cheat Sheet For Locking
The trylock Functions
Common Examples
Common Problems
Locking Speed
What Functions Are Safe To Call From Interrupts?
Mutex API reference
Futex API reference
Further reading
Thanks
Glossary