.cargo | ||
.vscode | ||
src | ||
.gitignore | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
created | modified |
---|---|
2024-05-13T14:28:49-05:00 | 2024-05-13T14:28:52-05:00 |
A kernel for RISC-V written in Rust. Currently focused on running on QEMU generic riscv64, advice and assistance welcome & encouraged.
Reading list
Beginner tutorial
- Meyer Zinn's RISC-V kernel guide (right now, code is just copied from this - will diverge later)
Other reading
- https://osblog.stephenmarz.com/ch1.html
- https://os.phil-opp.com/
- https://github.com/skyzh/core-os-riscv
- https://twilco.github.io/riscv-from-scratch/2019/04/27/riscv-from-scratch-2.html
- https://danielmangum.com/categories/risc-v-bytes/
RISC-V Spec
Videos
- Sarah Jamie Lewis's "Let's Build An OS" series (Note: it can run Doom)
- Dr. Harry Porter's lectures on the xv6 kernel
- LaurieWired's RISC-V Assembly primer
TODO Research and implement
- Basics
- Processes
- Virtual addrxess spaces, page tables
- Files, directories
- Pipes
- Multitasking, time-slicing
- Syscalls
- CPU cache
- User authentication, login
- File protection, permissions
- Mountable file systems
- Paging to disk
- Sockets, network support
- Interprocess communication
- Device drivers
- User applications