How to Use This Site
A guide to navigating this documentation effectively.
Reading Paths
New to Kernel Development?
Start here if you're new to the Linux kernel:
- Linux Evolution - Understand the history
- mm/ Getting Started - Prerequisites and setup
- mm/ Overview - The big picture of memory management
- Follow the suggested reading order in mm/README.md
Looking for Specific Topics?
Use the Index for a complete listing, or jump directly:
| I want to understand... | Go to |
|---|---|
| kmalloc / kfree | kmalloc (SLUB) |
| How memory allocation works | Page Allocator, kmalloc |
| Virtual memory and page tables | Page Tables |
| What happens under memory pressure | Page Reclaim |
| Container memory limits | Memory Cgroups |
| Huge pages | THP |
| A specific term | Glossary |
Debugging a Problem?
Each page has a "Try It Yourself" section with practical commands:
/procand/sysinterfaces to inspect kernel state- Tracing commands to observe behavior
- Test commands to reproduce scenarios
Page Structure
Most pages follow this structure:
- What Is X? - Brief explanation
- How It Works - Technical details with diagrams
- Evolution - Historical context and key commits
- Try It Yourself - Practical commands
- Further Reading - LKML links, related docs
Navigation Features
Site Navigation
- Left sidebar: Browse all pages hierarchically
- Right sidebar: Jump to sections within current page (table of contents)
- Search: Use the search bar (top) to find any topic
Links
- Commit links:
[abc123]links go to git.kernel.org - LKML links: Links to lore.kernel.org patch discussions
- Source links: Links to kernel source files
Conventions
Code Blocks
Callouts
Note: Important information or caveats
Tables
Used for comparing options, listing files, or summarizing features.
Contributing
Found an error? Have a suggestion?
- GitHub Issues - Report problems
- GitHub Discussions - Ask questions
Quick Links
| Destination | Link |
|---|---|
| Home | Home |
| Full Index | Index |
| mm/ Documentation | Getting Started |
| Glossary | Glossary |