diff --git a/.wiki/Kernel-documentation.md b/.wiki/Kernel-documentation.md index 19a42fa..9e1470b 100644 --- a/.wiki/Kernel-documentation.md +++ b/.wiki/Kernel-documentation.md @@ -14,9 +14,12 @@ The kernel is booted using the limine boot protocol. # General concepts ## Kernel initialization The single parts of the kernel are initialized in the following order: - - **Global Descriptor Table** - **Page Frame Manager** - - **Interrupt Descriptor Table** + - **Interrupts** + - **[IDT] Interrupt Descriptor Table** + - **[PIC] Programmable Interrupt Controller** + - **Paging** + - **Kernel Heap** ## Interrupt handling OSDev Wiki: [Interrupts](https://wiki.osdev.org/Interrupts) @@ -448,26 +451,10 @@ OSDev Wiki: [Global Descriptor Table](https://wiki.osdev.org/GDT) #### `gdt_selector_E` - enum - **Null** -- **Kernel Code** -- **Kernel Data** -- **User Null** -- **User Code** -- **User Data** +- **Kernel Code** - Readable +- **Kernel Data** - Readable + Writable -#### `gdt_descriptor_T` - struct [packed] -**Well documented on the osdev wiki.** - -#### `gdt_entry_T` - struct [packed] -**Well documented on the osdev wiki.** - -#### `gdt_T` - struct [packed / page aligned] -A template that holds a `gdt_entry_T` for every selector - -#### `g_default_gdt` - global variable -The default GDT configuration loaded when the GDT gets initialized. - -#### `gdt_init()` - function (void) -Loads a descriptor of `g_default_gdt` as the system GDT. +NoxOS uses the GDT loaded by limine, because in 64 bit mode a GDT is only needed for backwards compatability. ### interrupts.h This header contains all the stuff, needed to init and handle Interrupts.