diff --git a/Booting/README.md b/Booting/README.md index ffa36de7..a641b80f 100644 --- a/Booting/README.md +++ b/Booting/README.md @@ -3,8 +3,8 @@ This chapter describes the linux kernel boot process. Here you will see a couple of posts which describes the full cycle of the kernel loading process: -* [From the bootloader to kernel](http://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-1.html) - describes all stages from turning on the computer to running the first instruction of the kernel. -* [First steps in the kernel setup code](http://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-2.html) - describes first steps in the kernel setup code. You will see heap initialization, query of different parameters like EDD, IST and etc... -* [Video mode initialization and transition to protected mode](http://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-3.html) - describes video mode initialization in the kernel setup code and transition to protected mode. -* [Transition to 64-bit mode](http://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-4.html) - describes preparation for transition into 64-bit mode and details of transition. -* [Kernel Decompression](http://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-5.html) - describes preparation before kernel decompression and details of direct decompression. +* [From the bootloader to kernel](linux-bootstrap-1.md) - describes all stages from turning on the computer to running the first instruction of the kernel. +* [First steps in the kernel setup code](linux-bootstrap-2.md) - describes first steps in the kernel setup code. You will see heap initialization, query of different parameters like EDD, IST and etc... +* [Video mode initialization and transition to protected mode](linux-bootstrap-3.md) - describes video mode initialization in the kernel setup code and transition to protected mode. +* [Transition to 64-bit mode](linux-bootstrap-4.md) - describes preparation for transition into 64-bit mode and details of transition. +* [Kernel Decompression](linux-bootstrap-5.md) - describes preparation before kernel decompression and details of direct decompression. diff --git a/Cgroups/README.md b/Cgroups/README.md index a7c1e44b..a22876a8 100644 --- a/Cgroups/README.md +++ b/Cgroups/README.md @@ -2,4 +2,4 @@ This chapter describes `control groups` mechanism in the Linux kernel. -* [Introduction](http://0xax.gitbooks.io/linux-insides/content/Cgroups/cgroups1.html) +* [Introduction](cgroups1.md) diff --git a/Concepts/README.md b/Concepts/README.md index 2758034b..91eaf123 100644 --- a/Concepts/README.md +++ b/Concepts/README.md @@ -2,6 +2,6 @@ This chapter describes various concepts which are used in the Linux kernel. -* [Per-CPU variables](http://0xax.gitbooks.io/linux-insides/content/Concepts/per-cpu.html) -* [CPU masks](http://0xax.gitbooks.io/linux-insides/content/Concepts/cpumask.html) -* [The initcall mechanism](https://0xax.gitbooks.io/linux-insides/content/Concepts/initcall.html) +* [Per-CPU variables](per-cpu.md) +* [CPU masks](cpumask.md) +* [The initcall mechanism](initcall.md) diff --git a/DataStructures/README.md b/DataStructures/README.md index 57b65c2e..9817598d 100644 --- a/DataStructures/README.md +++ b/DataStructures/README.md @@ -5,6 +5,6 @@ Linux kernel provides different implementations of data structures like doubly l This part considers the following data structures and algorithms: - * [Doubly linked list](https://github.com/0xAX/linux-insides/blob/master/DataStructures/dlist.md) - * [Radix tree](https://github.com/0xAX/linux-insides/blob/master/DataStructures/radix-tree.md) - * [Bit arrays](https://github.com/0xAX/linux-insides/blob/master/DataStructures/bitmap.md) + * [Doubly linked list](dlist.md) + * [Radix tree](radix-tree.md) + * [Bit arrays](bitmap.md) diff --git a/Initialization/README.md b/Initialization/README.md index 17db3421..da9dde69 100644 --- a/Initialization/README.md +++ b/Initialization/README.md @@ -4,13 +4,13 @@ You will find here a couple of posts which describe the full cycle of kernel ini *Note* That there will not be a description of the all kernel initialization steps. Here will be only generic kernel part, without interrupts handling, ACPI, and many other parts. All parts which I have missed, will be described in other chapters. -* [First steps after kernel decompression](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-1.md) - describes first steps in the kernel. -* [Early interrupt and exception handling](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-2.md) - describes early interrupts initialization and early page fault handler. -* [Last preparations before the kernel entry point](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-3.md) - describes the last preparations before the call of the `start_kernel`. -* [Kernel entry point](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-4.md) - describes first steps in the kernel generic code. -* [Continue of architecture-specific initializations](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-5.md) - describes architecture-specific initialization. -* [Architecture-specific initializations, again...](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-6.md) - describes continue of the architecture-specific initialization process. -* [The End of the architecture-specific initializations, almost...](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-7.md) - describes the end of the `setup_arch` related stuff. -* [Scheduler initialization](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-8.md) - describes preparation before scheduler initialization and initialization of it. -* [RCU initialization](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-9.md) - describes the initialization of the [RCU](http://en.wikipedia.org/wiki/Read-copy-update). -* [End of the initialization](https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-10.md) - the last part about linux kernel initialization. +* [First steps after kernel decompression](linux-initialization-1.md) - describes first steps in the kernel. +* [Early interrupt and exception handling](linux-initialization-2.md) - describes early interrupts initialization and early page fault handler. +* [Last preparations before the kernel entry point](linux-initialization-3.md) - describes the last preparations before the call of the `start_kernel`. +* [Kernel entry point](linux-initialization-4.md) - describes first steps in the kernel generic code. +* [Continue of architecture-specific initializations](linux-initialization-5.md) - describes architecture-specific initialization. +* [Architecture-specific initializations, again...](linux-initialization-6.md) - describes continue of the architecture-specific initialization process. +* [The End of the architecture-specific initializations, almost...](linux-initialization-7.md) - describes the end of the `setup_arch` related stuff. +* [Scheduler initialization](linux-initialization-8.md) - describes preparation before scheduler initialization and initialization of it. +* [RCU initialization](linux-initialization-9.md) - describes the initialization of the [RCU](http://en.wikipedia.org/wiki/Read-copy-update). +* [End of the initialization](linux-initialization-10.md) - the last part about linux kernel initialization. diff --git a/SyncPrim/README.md b/SyncPrim/README.md index 56f3e526..932a0802 100644 --- a/SyncPrim/README.md +++ b/SyncPrim/README.md @@ -2,9 +2,9 @@ This chapter describes synchronization primitives in the Linux kernel. -* [Introduction to spinlocks](http://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-1.html) - the first part of this chapter describes implementation of spinlock mechanism in the Linux kernel. -* [Queued spinlocks](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-2.html) - the second part describes another type of spinlocks - queued spinlocks. -* [Semaphores](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-3.html) - this part describes implementation of `semaphore` synchronization primitive in the Linux kernel. -* [Mutual exclusion](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-4.html) - this part describes - `mutex` in the Linux kernel. -* [Reader/Writer semaphores](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-5.html) - this part describes special type of semaphores - `reader/writer` semaphores. -* [Sequential locks](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-6.html) - this part describes sequential locks in the Linux kernel. +* [Introduction to spinlocks](sync-1.md) - the first part of this chapter describes implementation of spinlock mechanism in the Linux kernel. +* [Queued spinlocks](sync-2.md) - the second part describes another type of spinlocks - queued spinlocks. +* [Semaphores](sync-3.md) - this part describes implementation of `semaphore` synchronization primitive in the Linux kernel. +* [Mutual exclusion](sync-4.md) - this part describes - `mutex` in the Linux kernel. +* [Reader/Writer semaphores](sync-5.md) - this part describes special type of semaphores - `reader/writer` semaphores. +* [Sequential locks](sync-6.md) - this part describes sequential locks in the Linux kernel. diff --git a/SysCall/README.md b/SysCall/README.md index 676cdd3d..f61b2142 100644 --- a/SysCall/README.md +++ b/SysCall/README.md @@ -2,7 +2,7 @@ This chapter describes the `system call` concept in the linux kernel. -* [Introduction to system call concept](http://0xax.gitbooks.io/linux-insides/content/SysCall/syscall-1.html) - this part is introduction to the `system call` concept in the Linux kernel. -* [How the Linux kernel handles a system call](http://0xax.gitbooks.io/linux-insides/content/SysCall/syscall-2.html) - this part describes how the Linux kernel handles a system call from an userspace application. -* [vsyscall and vDSO](http://0xax.gitbooks.io/linux-insides/content/SysCall/syscall-3.html) - third part describes `vsyscall` and `vDSO` concepts. -* [How the Linux kernel runs a program](http://0xax.gitbooks.io/linux-insides/content/SysCall/syscall-4.html) - this part describes startup process of a program. +* [Introduction to system call concept](syscall-1.md) - this part is introduction to the `system call` concept in the Linux kernel. +* [How the Linux kernel handles a system call](syscall-2.md) - this part describes how the Linux kernel handles a system call from an userspace application. +* [vsyscall and vDSO](syscall-3.md) - third part describes `vsyscall` and `vDSO` concepts. +* [How the Linux kernel runs a program](syscall-4.md) - this part describes startup process of a program. diff --git a/Theory/README.md b/Theory/README.md index 46c22e9d..75b11ef8 100644 --- a/Theory/README.md +++ b/Theory/README.md @@ -2,6 +2,6 @@ This chapter describes various theoretical concepts and concepts which are not directly related to practice but useful to know. -* [Paging](http://0xax.gitbooks.io/linux-insides/content/Theory/Paging.html) -* [Elf64 format](http://0xax.gitbooks.io/linux-insides/content/Theory/ELF.html) -* [Inline assembly](http://0xax.gitbooks.io/linux-insides/content/Theory/asm.html) +* [Paging](Paging.md) +* [Elf64 format](ELF.md) +* [Inline assembly](asm.md) diff --git a/Timers/README.md b/Timers/README.md index 94f8433d..d6cd279c 100644 --- a/Timers/README.md +++ b/Timers/README.md @@ -2,10 +2,10 @@ This chapter describes timers and time management related concepts in the linux kernel. -* [Introduction](http://0xax.gitbooks.io/linux-insides/content/Timers/timers-1.html) - An introduction to the timers in the Linux kernel. -* [Introduction to the clocksource framework](https://github.com/0xAX/linux-insides/blob/master/Timers/timers-2.md) - Describes `clocksource` framework in the Linux kernel. -* [The tick broadcast framework and dyntick](https://github.com/0xAX/linux-insides/blob/master/Timers/timers-3.md) - Describes tick broadcast framework and dyntick concept. -* [Introduction to timers](https://github.com/0xAX/linux-insides/blob/master/Timers/timers-3.md) - Describes timers in the Linux kernel. -* [Introduction to the clockevents framework](https://github.com/0xAX/linux-insides/blob/master/Timers/timers-5.md) - Describes yet another clock/time management related framework : `clockevents`. -* [x86 related clock sources](https://github.com/0xAX/linux-insides/blob/master/Timers/timers-5.md) - Describes `x86_64` related clock sources. -* [Time related system calls in the Linux kernel](https://github.com/0xAX/linux-insides/blob/master/Timers/timers-7.md) - Describes time related system calls. +* [Introduction](timers-1.md) - An introduction to the timers in the Linux kernel. +* [Introduction to the clocksource framework](timers-2.md) - Describes `clocksource` framework in the Linux kernel. +* [The tick broadcast framework and dyntick](timers-3.md) - Describes tick broadcast framework and dyntick concept. +* [Introduction to timers](timers-4.md) - Describes timers in the Linux kernel. +* [Introduction to the clockevents framework](timers-5.md) - Describes yet another clock/time management related framework : `clockevents`. +* [x86 related clock sources](timers-6.md) - Describes `x86_64` related clock sources. +* [Time related system calls in the Linux kernel](timers-7.md) - Describes time related system calls. diff --git a/interrupts/README.md b/interrupts/README.md index 5b64bcdd..afe2b2ee 100644 --- a/interrupts/README.md +++ b/interrupts/README.md @@ -2,13 +2,13 @@ In the following posts, we will cover interrupts and exceptions handling in the linux kernel. -* [Interrupts and Interrupt Handling. Part 1.](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-1.md) - describes interrupts and interrupt handling theory. -* [Interrupts in the Linux Kernel](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-2.md) - describes stuffs related to interrupts and exceptions handling from the early stage. -* [Early interrupt handlers](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-3.md) - describes early interrupt handlers. -* [Interrupt handlers](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-4.md) - describes first non-early interrupt handlers. -* [Implementation of exception handlers](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-5.md) - describes implementation of some exception handlers such as double fault, divide by zero etc. -* [Handling non-maskable interrupts](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-6.md) - describes handling of non-maskable interrupts and remaining interrupt handlers from the architecture-specific part. -* [External hardware interrupts](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-7.md) - describes early initialization of code which is related to handling external hardware interrupts. -* [Non-early initialization of the IRQs](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-8.md) - describes non-early initialization of code which is related to handling external hardware interrupts. -* [Softirq, Tasklets and Workqueues](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-9.md) - describes softirqs, tasklets and workqueues concepts. -* [](https://github.com/0xAX/linux-insides/blob/master/interrupts/interrupts-10.md) - this is the last part of the `Interrupts and Interrupt Handling` chapter and here we will see a real hardware driver and some interrupts related stuff. +* [Interrupts and Interrupt Handling. Part 1.](interrupts-1.md) - describes interrupts and interrupt handling theory. +* [Interrupts in the Linux Kernel](interrupts-2.md) - describes stuffs related to interrupts and exceptions handling from the early stage. +* [Early interrupt handlers](interrupts-3.md) - describes early interrupt handlers. +* [Interrupt handlers](interrupts-4.md) - describes first non-early interrupt handlers. +* [Implementation of exception handlers](interrupts-5.md) - describes implementation of some exception handlers such as double fault, divide by zero etc. +* [Handling non-maskable interrupts](interrupts-6.md) - describes handling of non-maskable interrupts and remaining interrupt handlers from the architecture-specific part. +* [External hardware interrupts](interrupts-7.md) - describes early initialization of code which is related to handling external hardware interrupts. +* [Non-early initialization of the IRQs](interrupts-8.md) - describes non-early initialization of code which is related to handling external hardware interrupts. +* [Softirq, Tasklets and Workqueues](interrupts-9.md) - describes softirqs, tasklets and workqueues concepts. +* [Last part](interrupts-10.md) - this is the last part of the `Interrupts and Interrupt Handling` chapter and here we will see a real hardware driver and some interrupts related stuff. diff --git a/mm/README.md b/mm/README.md index 2a192ff8..fbf3d7af 100644 --- a/mm/README.md +++ b/mm/README.md @@ -3,6 +3,6 @@ This chapter describes memory management in the linux kernel. You will see here a couple of posts which describe different parts of the linux memory management framework: -* [Memblock](https://github.com/0xAX/linux-insides/blob/master/mm/linux-mm-1.md) - describes early `memblock` allocator. -* [Fix-Mapped Addresses and ioremap](https://github.com/0xAX/linux-insides/blob/master/mm/linux-mm-2.md) - describes `fix-mapped` addresses and early `ioremap`. -* [kmemcheck](https://github.com/0xAX/linux-insides/blob/master/mm/linux-mm-3.md) - third part describes `kmemcheck` tool. +* [Memblock](linux-mm-1.md) - describes early `memblock` allocator. +* [Fix-Mapped Addresses and ioremap](linux-mm-2.md) - describes `fix-mapped` addresses and early `ioremap`. +* [kmemcheck](linux-mm-3.md) - third part describes `kmemcheck` tool.