9c92b3de4b
core: Add priority-based scheduling
2025-02-17 20:15:30 +01:00
6be2261519
core: Store the physical page directory alongside the virtual pointer to it
2025-02-16 13:20:02 +01:00
671a9b5887
core: Add PIT timer code to preempt the scheduler
2025-02-16 11:58:01 +01:00
a209ba7b99
core: Allocate a stack for each core's idle thread
2025-02-16 11:57:27 +01:00
ed324fcf9e
core: Add basic threading code
2025-02-15 22:45:32 +01:00
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
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
13ec4bee87
Ready. Set. Go!
...
Microkernel development in Zig, should be fun! =]
2025-02-13 22:39:48 +01:00