2024-05-13 18:31:37 -04:00
|
|
|
---
|
|
|
|
created: 2024-05-13T14:28:49-05:00
|
|
|
|
modified: 2024-05-13T14:28:52-05:00
|
|
|
|
---
|
|
|
|
|
2024-05-14 12:12:11 -04:00
|
|
|
A kernel for RISC-V written in Rust. Currently focused on running on QEMU generic riscv64, advice and assistance welcome & encouraged.
|
|
|
|
|
2024-05-13 18:39:00 -04:00
|
|
|
# Reading list
|
2024-05-13 18:31:37 -04:00
|
|
|
|
2024-05-13 18:39:00 -04:00
|
|
|
## Beginner tutorial
|
2024-05-13 23:14:16 -04:00
|
|
|
- Meyer Zinn's RISC-V kernel guide (right now, code is just copied from this - will diverge later)
|
2024-05-13 22:42:49 -04:00
|
|
|
- [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/)
|
2024-05-13 18:39:00 -04:00
|
|
|
|
|
|
|
## Other reading
|
|
|
|
- https://osblog.stephenmarz.com/ch1.html
|
|
|
|
- https://os.phil-opp.com/
|
|
|
|
- https://github.com/skyzh/core-os-riscv
|
2024-05-13 22:37:28 -04:00
|
|
|
- https://twilco.github.io/riscv-from-scratch/2019/04/27/riscv-from-scratch-2.html
|
2024-05-18 01:15:18 -04:00
|
|
|
- https://danielmangum.com/categories/risc-v-bytes/
|
2024-05-13 22:37:28 -04:00
|
|
|
|
|
|
|
## RISC-V Spec
|
2024-05-13 22:42:49 -04:00
|
|
|
- [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
|
2024-05-13 23:07:46 -04:00
|
|
|
- [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)
|
2024-05-14 12:12:11 -04:00
|
|
|
- [LaurieWired's RISC-V Assembly primer](https://www.youtube.com/watch?v=0IeOaiKszLk)
|
|
|
|
|
|
|
|
# TODO Research and implement
|
|
|
|
|
|
|
|
- [ ] Basics
|
|
|
|
- [ ] Processes
|
2024-05-18 01:15:18 -04:00
|
|
|
- [ ] Virtual addrxess spaces, page tables
|
2024-05-14 12:12:11 -04:00
|
|
|
- [ ] 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
|