docs: updated GDT documentation

This commit is contained in:
antifallobst 2023-02-17 12:35:36 +01:00
parent 1f290c3414
commit 6541fa49a7
1 changed files with 8 additions and 21 deletions

View File

@ -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.