• linux-insides
  • Introduction
  • 1. Booting
    • 1.1. From bootloader to kernel
    • 1.2. First steps in the kernel setup code
    • 1.3. Video mode initialization and transition to protected mode
    • 1.4. Transition to 64-bit mode
    • 1.5. Kernel decompression
  • 2. Initialization
    • 2.1. First steps in the kernel
    • 2.2. Early interrupts handler
    • 2.3. Last preparations before the kernel entry point
    • 2.4. Kernel entry point
    • 2.5. Continue architecture-specific boot-time initializations
    • 2.6. Architecture-specific initializations, again...
    • 2.7. End of the architecture-specific initializations, almost...
    • 2.8. Scheduler initialization
    • 2.9. RCU initialization
    • 2.10. End of initialization
  • 3. Interrupts
    • 3.1. Introduction
    • 3.2. Start to dive into interrupts
    • 3.3. Interrupt handlers
    • 3.4. Initialization of non-early interrupt gates
    • 3.5. Implementation of some exception handlers
    • 3.6. Handling Non-Maskable interrupts
    • 3.7. Dive into external hardware interrupts
    • 3.8. Initialization of external hardware interrupts structures
    • 3.9. Softirq, Tasklets and Workqueues
    • 3.10. Last part
  • 4. System calls
    • 4.1. Introduction to system calls
    • 4.2. How the Linux kernel handles a system call
    • 4.3. vsyscall and vDSO
    • 4.4. How the Linux kernel runs a program
  • 5. Timers and time management
    • 5.1. Introduction
  • 6. Memory management
    • 6.1. Memblock
    • 6.2. Fixmaps and ioremap
  • 7. SMP
  • 8. Concepts
    • 8.1. Per-CPU variables
    • 8.2. Cpumasks
  • 9. Data Structures in the Linux Kernel
    • 9.1. Doubly linked list
    • 9.2. Radix tree
  • 10. Theory
    • 10.1. Paging
    • 10.2. Elf64
    • 10.3. CPUID
    • 10.4. MSR
  • 11. Initial ram disk
    • 11.1. initrd
  • 12. Misc
    • 12.1. How the kernel is compiled
    • 12.2. Linkers
    • 12.3. Linux kernel development
    • 12.4. Write and Submit your first Linux kernel Patch
    • 12.5. Data types in the kernel
  • 13. Useful links
  • 14. Contributors
Powered by GitBook

linux-insides

Thank you to all contributors:

  • Akash Shende
  • Jakub Kramarz
  • ckrooss
  • ecksun
  • Maciek Makowski
  • Thomas Marcelis
  • Chris Costes
  • nathansoz
  • RubanDeventhiran
  • fuzhli
  • andars
  • Alexandru Pana
  • Bogdan Rădulescu
  • zil
  • codelitt
  • gulyasm
  • alx741
  • Haddayn
  • Daniel Campoverde Carrión
  • Guillaume Gomez
  • Leandro Moreira
  • Jonatan Pålsson
  • George Horrell
  • Ciro Santilli
  • Kevin Soules
  • Fabio Pozzi
  • Kevin Swinton
  • Leandro Moreira
  • LYF610400210
  • Cam Cope
  • Miquel Sabaté Solà
  • Michael Aquilina
  • Gabriel Sullice
  • Michael Drüing
  • Alexander Polakov
  • Anton Davydov
  • Arpan Kapoor
  • Brandon Fosdick
  • Ashleigh Newman-Jones
  • Terrell Russell
  • Mario
  • Ewoud Kohl van Wijngaarden
  • Jochen Maes
  • Brother-Lal
  • Brian McKenna
  • Josh Triplett
  • James Flowers
  • Alexander Harding
  • Dzmitry Plashchynski
  • Simarpreet Singh
  • umatomba
  • Vaibhav Tulsyan
  • Brandon Wamboldt
  • Maxime Leboeuf
  • Maximilien Richer
  • marmeladema
  • Anisse Astier
  • TheCodeArtist
  • Ehsun N
  • Adam Shannon
  • Donny Nadolny
  • Ehsun N
  • Waqar Ahmed
  • Ian Miell
  • DongLiang Mu
  • Johan Manuel
  • Brian Rak
  • Robin Peiremans
  • xiaoqiang zhao
  • aouelete
  • Dennis Birkholz
  • Anton Tyurin