40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
## 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
|
|
- 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
|