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
A
A
Serif
Sans
White
Sepia
Night
Share on Twitter
Share on Google
Share on Facebook
Share on Weibo
Share on Instapaper
linux-insides
Useful links
Linux boot
Linux/x86 boot protocol
Linux kernel parameters
Protected mode
64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf
Serial programming
8250 UART Programming
Serial ports on OSDEV
VGA
Video Graphics Array (VGA)
IO
IO port programming
GCC and GAS
GCC type attributes
Assembler Directives
Important data structures
task_struct definition
Other architectures
PowerPC and Linux Kernel Inside