The Linux kernel is the core of any Linux operating system. It manages hardware, system resources, and provides the fundamental services for all other software.
| Task | Where |
|---|---|
| 🐛 Report a bug | Documentation/admin-guide/reporting-issues.rst |
| ⬇️ Get the latest kernel | kernel.org |
| 🔨 Build the kernel | Documentation/admin-guide/quickly-build-trimmed-linux.rst |
| 💬 Join the community | lore.kernel.org |
All users should be familiar with:
- Building requirements:
Documentation/process/changes.rst - Code of Conduct:
Documentation/process/code-of-conduct.rst - License: See
COPYING
💡 Full documentation can be built locally with
make htmldocs, or browsed online at kernel.org/doc/html/latest.
Find your role below to jump straight to the docs that matter to you:
| Role | Focus |
|---|---|
| 🧑💻 New Kernel Developer | Getting started with kernel development |
| 🎓 Academic Researcher | Studying kernel internals and architecture |
| 🛡️ Security Expert | Hardening and vulnerability analysis |
| 🔧 Backport/Maintenance Engineer | Maintaining stable kernels |
| ⚙️ System Administrator | Configuring and troubleshooting |
| 👑 Maintainer | Leading subsystems and reviewing patches |
| 🔌 Hardware Vendor | Writing drivers for new hardware |
| 📦 Distribution Maintainer | Packaging kernels for distros |
| 🤖 AI Coding Assistant | LLMs and AI-powered development tools |
Welcome! Start your kernel development journey here:
- Getting Started:
Documentation/process/development-process.rst - Your First Patch:
Documentation/process/submitting-patches.rst - Coding Style:
Documentation/process/coding-style.rst - Build System:
Documentation/kbuild/index.rst - Development Tools:
Documentation/dev-tools/index.rst - Kernel Hacking Guide:
Documentation/kernel-hacking/hacking.rst - Core APIs:
Documentation/core-api/index.rst
Explore the kernel's architecture and internals:
- Researcher Guidelines:
Documentation/process/researcher-guidelines.rst - Memory Management:
Documentation/mm/index.rst - Scheduler:
Documentation/scheduler/index.rst - Networking Stack:
Documentation/networking/index.rst - Filesystems:
Documentation/filesystems/index.rst - RCU (Read-Copy Update):
Documentation/RCU/index.rst - Locking Primitives:
Documentation/locking/index.rst - Power Management:
Documentation/power/index.rst
Security documentation and hardening guides:
- Security Documentation:
Documentation/security/index.rst - LSM Development:
Documentation/security/lsm-development.rst - Self Protection:
Documentation/security/self-protection.rst - Reporting Vulnerabilities:
Documentation/process/security-bugs.rst - CVE Procedures:
Documentation/process/cve.rst - Embargoed Hardware Issues:
Documentation/process/embargoed-hardware-issues.rst - Security Features:
Documentation/userspace-api/seccomp_filter.rst
Maintain and stabilize kernel versions:
- Stable Kernel Rules:
Documentation/process/stable-kernel-rules.rst - Backporting Guide:
Documentation/process/backporting.rst - Applying Patches:
Documentation/process/applying-patches.rst - Subsystem Profile:
Documentation/maintainer/maintainer-entry-profile.rst - Git for Maintainers:
Documentation/maintainer/configure-git.rst
Configure, tune, and troubleshoot Linux systems:
- Admin Guide:
Documentation/admin-guide/index.rst - Kernel Parameters:
Documentation/admin-guide/kernel-parameters.rst - Sysctl Tuning:
Documentation/admin-guide/sysctl/index.rst - Tracing/Debugging:
Documentation/trace/index.rst - Performance Security:
Documentation/admin-guide/perf-security.rst - Hardware Monitoring:
Documentation/hwmon/index.rst
Lead kernel subsystems and manage contributions:
- Maintainer Handbook:
Documentation/maintainer/index.rst - Pull Requests:
Documentation/maintainer/pull-requests.rst - Managing Patches:
Documentation/maintainer/modifying-patches.rst - Rebasing and Merging:
Documentation/maintainer/rebasing-and-merging.rst - Development Process:
Documentation/process/maintainer-handbooks.rst - Maintainer Entry Profile:
Documentation/maintainer/maintainer-entry-profile.rst - Git Configuration:
Documentation/maintainer/configure-git.rst
Write drivers and support new hardware:
- Driver API Guide:
Documentation/driver-api/index.rst - Driver Model:
Documentation/driver-api/driver-model/driver.rst - Device Drivers:
Documentation/driver-api/infrastructure.rst - Bus Types:
Documentation/driver-api/driver-model/bus.rst - Device Tree Bindings:
Documentation/devicetree/bindings/ - Power Management:
Documentation/driver-api/pm/index.rst - DMA API:
Documentation/core-api/dma-api.rst
Package and distribute the kernel:
- Stable Kernel Rules:
Documentation/process/stable-kernel-rules.rst - ABI Documentation:
Documentation/ABI/README - Kernel Configuration:
Documentation/kbuild/kconfig.rst - Module Signing:
Documentation/admin-guide/module-signing.rst - Kernel Parameters:
Documentation/admin-guide/kernel-parameters.rst - Tainted Kernels:
Documentation/admin-guide/tainted-kernels.rst
⚠️ CRITICAL: If you are an LLM or AI-powered coding assistant, you MUST read and follow the AI coding assistants documentation before contributing to the Linux kernel:This documentation contains essential requirements about licensing, attribution, and the Developer Certificate of Origin that all AI tools must comply with.
- Mailing Lists: lore.kernel.org
- IRC:
#kernelnewbiesonirc.oftc.net - Bugzilla: bugzilla.kernel.org
- MAINTAINERS file: Lists subsystem maintainers and mailing lists
- Email Clients:
Documentation/process/email-clients.rst