fa04363a51
core/x86_64: Set up a second stack in the TSS to handle system calls
2025-02-15 22:40:48 +01:00
56f2c018a7
core: Fix a couple of bugs in VMM and add a few utility functions
2025-02-15 22:23:00 +01:00
f93158645b
core/x86_64: Enable the NX bit before using it
...
Spent an embarrassing amount of time trying to figure out why there was a page fault with "reserved bits set". Turns out, I had set the NX bit without enabling it.
2025-02-15 22:22:04 +01:00
36b9832053
core/x86_64: Add general protection fault handler
2025-02-15 22:19:08 +01:00
090e4148b8
core: Reserve physical page 0
...
In the kernel's early stages we access physical memory identity-mapped, so it's not very good for us to allocate that frame and then try to use it.
2025-02-15 22:18:49 +01:00
8bfc8a5781
core: Make findMultibootTags take a context argument
...
Will be useful later.
2025-02-15 22:18:05 +01:00
adffd408bc
core: Add a page fault handler
2025-02-15 15:18:40 +01:00
8d70a0f0a1
core: Enable interrupts in platformEndInit()
...
This way, each architecture can re-enable interrupts whenever necessary
2025-02-15 15:18:24 +01:00
5d26b114a4
core: Add workaround for QEMU-specific triple-faults without KVM
...
Without KVM, qemu inserts an invalid 12-GiB reserved entry at the end of the physical address space, making the kernel reserve way more space than necessary for the page bitmap (and overwriting the page directory pages).
2025-02-15 15:16:50 +01:00
13ec4bee87
Ready. Set. Go!
...
Microkernel development in Zig, should be fun! =]
2025-02-13 22:39:48 +01:00