MinotaurOS
Project Introduction
MinotaurOS is an operating system based on the RISC-V architecture written in the Rust language. The goal is to implement a Linux-compatible multi-core operating system that supports process scheduling, file system, network and other functions.
Environment construction
- Rust: nightly-2024-02-03
- QEMU: 7.0.0-9.0.0
- RISC-V toolchain: riscv64-unknown-linux-gnu
- Place disk files
disk.img and bootloader files rustsbi-qemu.bin in the prebuilts directory
Compile and run
- Environment preparation:
make env - Compile user-state binary:
make user - Compile kernel state binary:
make kernel - All compiled:
make all - Run the emulator:
cargo task run - Compile documentation:
typst compile docs/main.typ
Directory Schema
- kernel/src: kernel code
- arch: architecture-related code
- builtin: Integrate user programs
- debug: debug and log module
- Driver: Device driver
- fs: file system
- mm: Memory management
- net: Network module
- process: process management
- processor: multi-core management
- sched: Scheduling and clock module
- signal: signal processing module
- sync: lock and synchronization mechanism
- syscall: System call processing function
- trap: interrupt and exception handling
- main.rs: main program
- user: user program
- prebuilts: precompiled files
- tasks: Compile tasks
- docs: project documentation