An Unix like Operating System kernel written with Rust based on RISC-V.
cd os/ && make run
- Ubuntu 22.04 LTS
- Rust toolchain (nightly)
- QEMU emulator: qemu-system-riscv64 (version 7.0.0)
- GDB: riscv64-unknown-elf-gdb (GNU gdb (SiFive GDB 8.3.0-2020.04.1) 8.3)
Get more information about development environment from setup-devel-env(Simplified Chinese)
- LibOS: Make the application isolated from the hardware, simplify the difficulty and complexity of the application to access the hardware.
- BatchOS: Isolate applications from the operating system to strengthen system security and improve execution efficiency.
- Multiprog & Time-sharing OS: Share CPU resource between multiply applications.
- Address Space OS: Isolate the memory address space accessed by the application, limit the mutual interference between the application, and improve security.
- Process OS: Allows application dynamically creates new process and enhance process management and resource management capabilities.
- Filesystem OS:Allows applications to store data persistently.
- IPC OS:Allows multiple apps to interact with data and event notifications between processes.
- Thread & Coroutine OS:Implement threading and coroutine applications to simplify switching and data sharing.
- SyncMutex OS:Supports synchronous and exclusive access to shared resources in multithreaded applications.
- Device OS:Improve the I/O efficiency and human-computer interaction ability of the application, and support serial ports/block devices/keyboards/mice/display devices based on peripheral interrupts.
Run git checkout chx
to view these Operating System and the lab of every chapter.
Operating System | Lab | Git branch |
---|---|---|
LibOS | Chapter1 ✅ | ch1 |
BatchOS | Chapter2 ✅ | ch2 |
Multiprog & Time-sharing OS | Chapter3 ✅ | ch3 |
Address Space OS | Chapter4 | ch4 |
Process OS | Chapter5 | |
Filesystem OS | Chapter6 | |
IPC OS | Chapter7 | |
Thread & Coroutine OS | Chapter8 | |
SyncMutex OS | Chapter8 | |
Device OS | Chapter9 |
- rCore-Tutorial-Book 第三版(Simplified Chinese) and its Github repo
- rCore-Tutorial-Guide 2022 春季学期(Simplified Chinese)
- some resource to learning RISC-V(Simplified Chinese)