This glossary defines technical terms, acronyms, and core data structures used throughout the Linux kernel. It serves as a high-level reference for the codebase at https It groups terminology into core kernel concepts and specialized subsystem terms.
The Linux kernel codebase uses a mix of standard operating system nomenclature and kernel-specific abstractions. These terms are generally categorized into core infrastructure (processes, memory, scheduling) and subsystem-specific implementations (virtualization, storage, networking).
The following diagram illustrates relationships between high-level natural language concepts and their primary data structure representations in the kernel core.
Kernel Core Entity Mapping
Sources: include/linux/sched.h1-100 include/linux/mm.h1-100 kernel/sched/core.c11-41
This section defines fundamental terms related to kernel execution and memory management. Each term includes key structs or functions for reference. For full technical depth, see Core Kernel Terms (process, memory, scheduling, tracing).
| Term | Definition | Key Code Pointers |
|---|---|---|
| task_struct | The primary descriptor for a process or thread, holding its state, context, and scheduling info. | struct task_struct include/linux/sched.h748-1500 |
| mm_struct | Represents the virtual address space of a process, managing VMAs and page tables. | struct mm_struct include/linux/mm_types.h615-815 |
| VMA (Virtual Memory Area) | Represents a contiguous virtual memory range with uniform permissions. | struct vm_area_struct include/linux/mm_types.h660-750 |
| Folio / struct page | Physical memory units; folio represents a non-tail page or a group of pages. | struct folio include/linux/mm_types.h294-400 |
| GFP (Get Free Page) | Flags specifying allocation constraints (e.g., GFP_KERNEL, GFP_ATOMIC). | GFP flags include/linux/gfp_types.h1-100 |
| RCU (Read-Copy-Update) | Synchronization mechanism allowing lockless reads concurrently with updates. | rcu_read_lock() include/linux/rcupdate.h1-100 |
| Maple Tree | Range-based B-tree used for VMA management, replacing the red-black tree. | struct maple_tree include/linux/maple_tree.h1-50 |
| sched_ext (SCX) | Extensible scheduler class that allows scheduling policies to be implemented in BPF. | struct sched_ext_ops kernel/sched/ext.h1-100 |
| SLUB allocator | The default slab allocator, using per-CPU sheaves and NUMA-node barns for object caching. | kmem_cache mm/slub.c1-160 |
| workqueue | Mechanism for offloading work to be executed later in process context. | struct workqueue_struct kernel/workqueue.c1-100 |
| tracefs/ftrace | The interface and engine for function tracing and dynamic events. | kernel/trace/trace.c1-100 |
| perf_event | Subsystem for hardware/software performance counters and sampling. | struct perf_event include/linux/perf_event.h1-100 |
Sources: include/linux/mm.h294-800 kernel/sched/core.c11-41 mm/slub.c1-160 kernel/sched/sched.h1-100
Kernel subsystems implement specialized functionality on top of the core. For more details, see Subsystem Terms (KVM, BPF, io_uring, filesystems, drivers).
The Virtual File System (VFS) layer abstracts various filesystems behind a common interface.
VFS Object Relationship
Sources: include/linux/fs.h1-1000 fs/dcache.c1-100
KVM provides infrastructure for hardware-accelerated virtualization.
KVM Architecture Mapping
Sources: arch/x86/kvm/x86.c143-150 arch/x86/kvm/vmx/vmx.c1-100 arch/x86/kvm/svm/svm.c1-100 arch/x86/kvm/svm/sev.c55-65
| Term | Definition | Key Code Pointers |
|---|---|---|
| KVM_RUN | The primary ioctl to start/resume guest execution. | KVM_RUN virt/kvm/kvm_main.c4100-4200 |
| VMExit | Transition from guest mode to host mode (hypervisor). | handle_exit arch/x86/kvm/vmx/vmx.c6200-6300 |
| TDP MMU | MMU optimized for Two-Dimensional Paging (EPT/NPT). | arch/x86/kvm/mmu/tdp_mmu.c1-50 |
| SEV / TDX | Hardware features for memory encryption and guest isolation. | arch/x86/kvm/svm/sev.c1-100 arch/x86/kvm/vmx/tdx.c1-100 |
| Verifier | BPF component that ensures program safety (no loops, valid memory access). | bpf_check() kernel/bpf/verifier.c57-170 |
| io_uring | Asynchronous I/O interface using shared submission/completion rings. | struct io_ring_ctx io_uring/io_uring.c1-100 |
| zcrx | Zero-copy receive for io_uring, utilizing page pools and ifqs. | struct io_zcrx_ifq io_uring/zcrx.c35-56 |
Sources: kernel/bpf/verifier.c1-100 io_uring/io_uring.c1-100 arch/x86/kvm/x86.c1-200 io_uring/zcrx.c1-100
For deep dives on these concepts and others across the kernel, please consult the child pages:
Sources: include/linux/sched.h1-100 include/linux/mm.h1-100 kernel/sched/core.c1-100 mm/slub.c1-160 arch/x86/kvm/x86.c1-200 include/linux/fs.h1-1000 kernel/bpf/verifier.c1-100 io_uring/io_uring.c1-100
Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.