60 Commits

Author SHA1 Message Date
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