1.5 KiB
1.5 KiB
What do I need to do?
- Unit testing (https://wiki.osdev.org/Unit_Testing) (https://wiki.osdev.org/Troubleshooting#Showing_the_stack_content) lets implmeent some better testing functions aswell
- Paging & virtual memory
- Get GRUB to show memory map - DONE
- Write a page allocator - WIP
- Setup paging
- Setup higher half kernel
- Heap allocator (malloc)
- after this, implment some data structures? cleanup queue?
After the above is done, i want to clean up the code and restructure some stuff clean up the headers so that we're not exposing kernel functions to the entire c library and also only make required functions be exposed to the header
Drivers:
PIC - Done PIT - Done - Need sleep and timers implemented, ACPI can help with this - Lets also maybe set up a hardware abstraction for timing interfaces?
ACPI (use ACPICA?) PCI, PCIE (i think qemue and bochs dont have legacy PCI, so lets try for PCIE) PS/2 controller Proper KEYB driver
From here, determine whats needed next for pushing into userspace. Ideally I would like a shell, and then create some essential userspace posix tools (gnutils?)
POSIX compliant?
Features I want
- A kernel bus
- some kind of driver where I can send messages that can eventually be accessed globally by other drives / applications
- modularity in terms of drivers:
- I want drivers to be optional and to not limit functionality
- perhaps this means providing every thing as a hardware abstraction layer, so that when its absent we can have some sort of virtual replacement