kernel/README.md

49 lines
1.8 KiB
Markdown

---
created: 2024-05-13T14:28:49-05:00
modified: 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)
- [Part 0](https://www.meyerzinn.tech/posts/2023/03/05/running-rust-code-on-risc-v-in-qemu/)
- [Part 1](https://www.meyerzinn.tech/posts/2023/03/08/p1-printing-and-allocating/)
## 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
- [Volume I: Unprivileged](https://riscv.org/wp-content/uploads/2019/12/riscv-spec-20191213.pdf)
- [Volume II: Privileged](https://riscv.org/wp-content/uploads/2019/08/riscv-privileged-20190608-1.pdf)
## Videos
- [Sarah Jamie Lewis's "Let's Build An OS" series](https://www.youtube.com/watch?v=s_4tFz52jbc) (Note: it *can* run Doom)
- [Dr. Harry Porter's lectures on the xv6 kernel](https://www.youtube.com/watch?v=fWUJKH0RNFE&list=PLbtzT1TYeoMhTPzyTZboW_j7TPAnjv9XB)
- [LaurieWired's RISC-V Assembly primer](https://www.youtube.com/watch?v=0IeOaiKszLk)
# 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