You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.5 KiB
2.5 KiB
rCore
Rust version of THU uCore OS Plus.
Going to be the next generation teaching operating system.
Supported architectures: x86_64, RISCV32/64, AArch64, MIPS32
Tested boards: QEMU, HiFive Unleashed, x86_64 PC (i5/i7), Raspberry Pi 3B+
Dev docs (in Chinese)
Building
Environment
- Rust toolchain at nightly-2019-03-05
- Cargo tools: cargo-xbuild
- QEMU >= 3.1.0
- bootimage (for x86_64)
- RISCV64 GNU toolchain (for riscv32/64)
- AArch64 GNU toolchain (for aarch64)
- musl-cross-make (for userland musl, or download prebuilt toolchain from musl.cc)
- libfuse-dev (for userland image generation)
See Travis script for details.
How to run
$ rustup component add rust-src llvm-tools-preview
$ cargo install cargo-binutils
$ cargo install cargo-xbuild --force
$ cargo install bootimage --version 0.5.7 --force
$ git clone https://github.com/rcore-os/rCore.git --recursive
$ cd rCore/user
$ make sfsimg arch={riscv32,riscv64,x86_64,aarch64,mipsel} # requires $(arch)-linux-musl-gcc
$ cd ../kernel
$ make run arch={riscv32,riscv64,x86_64,aarch64,mipsel} mode=release
$ make run arch=x86_64 mode=release pci_passthru=0000:00:00.1 # for ixgbe real nic, find its pci (bus, dev, func) first
History
This is a project of THU courses:
- Operating System (2018 Spring)
- Comprehensive Experiment of Computer System (2018 Summer)
- Operating System Train (2018 Autumn)
- Operating System (2019 Spring)
Project wiki (internal access only): OS, CECS, OST
Reports (in Chinese): docs
It's based on BlogOS , a demo project in the excellent tutorial Writing an OS in Rust (First Edition).
License
The source code is dual-licensed under MIT or the Apache License (Version 2.0).