Update READMEs and TODOs
This commit is contained in:
parent
2b27af5814
commit
5b781bb394
5 changed files with 131 additions and 6 deletions
14
zion/README.md
Normal file
14
zion/README.md
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# Zion Microkernel
|
||||
|
||||
The Zion Microkernel is a capability based kernel. The types of objects that
|
||||
processes can hold a capability to exist in the `object/` directory. The system calls
|
||||
used to interact with them are enumerated in `include/zcall.h` and are implemented
|
||||
in the `syscalls/` directory.
|
||||
|
||||
The system uses a barebones ELF loader (`loader/init_loader.h`) to jump to userspace
|
||||
but from there userspace processes are responsible for loading child processes into
|
||||
memory and executing them.
|
||||
|
||||
## Open Work
|
||||
|
||||
The [TODO file](TODO.md) enumerates current areas for improvement.
|
||||
53
zion/TODO.md
Normal file
53
zion/TODO.md
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# Zion TODO
|
||||
|
||||
## Memory Management
|
||||
|
||||
### Physical Memory
|
||||
|
||||
- Reserve lower physical memory for hardware accesses as necessary.
|
||||
- Return errors rather than panicking on allocation failure
|
||||
- Return memory pages to the pool when a MemoryObject goes out of scope.
|
||||
- Add diagnostics to inspect physical memory usage.
|
||||
|
||||
### Virtual Memory
|
||||
|
||||
- Allow different permissions and caching behaviors on mapped memory.
|
||||
- Add diagnostics to inspect process memory usage.
|
||||
- Properly free user stacks on thread exit.
|
||||
|
||||
### Allocation
|
||||
|
||||
- Use a buddy allocator with a real free when an object is too large for
|
||||
the slab allocator.
|
||||
- Free kernel stacks on thread/process exit.
|
||||
|
||||
## Process Management
|
||||
|
||||
- Clean up process state and capabilities when it exits.
|
||||
|
||||
## Processor
|
||||
|
||||
- Enable all instruction types before passing to user space.
|
||||
|
||||
## Faults and Interrupts
|
||||
|
||||
- Exit process rather than panicking on unhandled Page Fault (and others).
|
||||
- Add additional fault handlers to avoid GP faults.
|
||||
- Improve process for registering interrupt handlers.
|
||||
|
||||
## Capabilities
|
||||
|
||||
- Add syscalls for inspecting capabilities.
|
||||
- Randomize/obfuscate capability numbers passed to user space.
|
||||
|
||||
## Scheduling
|
||||
|
||||
- Add different scheduling priorities.
|
||||
- Add thread sleep capability.
|
||||
- Add synchronization syscalls for userspace.
|
||||
|
||||
## Large Projects
|
||||
|
||||
- Add multiprocessing support.
|
||||
- Add layer on top of limine to enable multiple bootloaders.
|
||||
- Add a large amount of debugging info for kernel panics.
|
||||
Loading…
Add table
Add a link
Reference in a new issue