Notes on the Linux Kernel, Modules, and Device drivers
- Linux Cross Reference - website cross reference of current code, back to version 2.6.
- Building the Simplest Possible Linux System
- Syscalls, Kernel vs. User Mode and Linux Kernel Source Code
- Kernel Mode Memory Allocation
Refer to my KernelGlosssaryConcept document.
Refer to my separate KernelDirectoriesAndFiles document
This section is a reference to the kernel documentation in the kernel source tree itself.
| Subdirectory of Documentation | Document Name | Comment |
|---|---|---|
| / | index.rst | Starting point Index to other documents |
| /process | index.rst | Links to docs on the process of developing for the kernel |
| /process | howto.rst | Good overview of the process of developing for the kernel |
KEY
- EBP - Early Boot Process
- MOD - Module related
- SCHED - Scheduler
| Directory | File | Description |
|---|---|---|
| arch/x86/xen/ | enlighten_pv.c | EBP, _init "start the world", calls i386_start_kernel & x86_64_start_ |
| arch/x86/kernel | head32.c | EBP, has i386_start_kernel, which calls /init/main.c/start_kernel |
| arch/x86/kernel | head64.c | EBP, has x86_64_start_kernel, which calls /init/main.c/start_kernel |
| arch/x86/boot | main.c | EBP, Real mode boot code, calls to protected mode at end |
| arch/x86/boot | pm.c | EBP, disables interrupts and switches to protected mode |
| arch/x86/include/uapi/asm | bootparms.h | EBP, header defining boot_parms struct |
| init | main.c | EBP, contains start_kernel, starts init |
| init | initramefs.c | EBP, load initramfs |
| intit | do_mounts.c | EBP, load ramdisk, mount & init root |
| kernel/sched | core.c | SCHED, Core kernel scheduler code and related syscalls |
| kernel | module.c | MOD, manages, loads, unloads modules |