Tracking issue for Minimal Viable Product
robert-w-gries opened this issue · comments
It is looking likely that Marquette undergraduates will work on the kernel as a part of Marquette's summer research program. rXinu
is mostly stable but more work needs to be done to make it a project viable for new developers.
Tools
It is important to provide tools so that new developers can properly acclimate to the project. We need to accomplish the following:
- Testing framework
- Fewer dependencies
- Removal of grub from suggested workflow
Features
rXinu will need to be a legitimate micro-kernel in order to open up avenues of research. It is not worth much as a project if the students are too limited in what they can contribute.
Minimal Viable Product
- Resolve all known bugs
- Preemption
- Inter-process Communication
- File System
- Asynchronous TTY Driver
- Basic shell process
Stretch Goals
- Message Passing
- Syscalls
- MIPS target
- User mode
- Higher half kernel
Code Readability
Documentation
Documentation is sorely needed in the scheduling module, and rXinu
could benefit from more documentation in general.
-
scheduling
module - ps/2 keyboard driver
- serial driver
Refactoring
As I learn more of Rust and gain experience, I discover more idiomatic ways to express Rust and simplify the codebase.
- PS/2 Keyboard
- Scheduling Component