1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-23 08:26:17 +04:00
Rust version of THU uCore OS. Linux compatible.
Go to file
2018-12-18 16:29:09 +08:00
crate maually remove warning, pt5 2018-12-18 16:29:09 +08:00
docs add OS2ATC slides. update README 2018-12-16 11:47:33 +08:00
kernel maually remove warning, pt5 2018-12-18 16:29:09 +08:00
riscv-pk@71b2addd7a aarch64: add origin raspberrypi config.txt 2018-12-01 23:30:53 +08:00
tools move user img, remove useless files 2018-12-02 21:18:37 +08:00
user use enum instead of consts for syscall id in user lib 2018-12-17 22:50:26 +08:00
.gitignore user: link created SFS image in kernel 2018-11-29 17:33:31 +08:00
.gitmodules update 'riscv-pk' to upstream submodule 2018-11-29 00:00:52 +08:00
.travis.yml add travis for macOS 2018-12-01 19:14:51 +08:00
LICENSE update README. add LICENSE 2018-12-02 22:19:32 +08:00
README.md add OS2ATC slides. update README 2018-12-16 11:47:33 +08:00
status.md update README 2018-11-20 01:29:44 +08:00

RustOS

Build Status

Rust version of THU uCore OS.

Going to be the next generation teaching operating system.

Supported architectures: x86_64, RISCV32IMA(S/M), AArch64

Tested boards: QEMU, labeled-RISCV, Raspberry Pi 3B+

Dev docs (in Chinese)

demo

Summary

This is a project of THU courses:

  • Operating System (2018 Spring)
  • Comprehensive Experiment of Computer System (2018 Summer)
  • Operating System Train (2018 Autumn)

Project wiki (internal access only): OS, CECS, OST

Reports (in Chinese): docs

The initial goal is to write a mini OS in Rust with multi-core support. More specifically, it would start from the post of the Writing an OS in Rust series, then reimplement xv6-x86_64 in Rust style.

In fact, it's more complicated than we expected to write an OS starting from scratch. So by the end of OS course, we only finished rewriting ucore_os_lab, without multi-core support. Then as a part of CECS project, we ported it from x86_64 to RISCV32I, and made it work on our FPGA CPU.

Building

Environment

How to run

rustup component add rust-src
cargo install cargo-xbuild bootimage
git clone https://github.com/wangrunji0408/RustOS.git --recursive
cd RustOS/kernel
rustup override set nightly
make run arch=riscv32|x86_64|aarch64

License

The source code is dual-licensed under MIT or the Apache License (Version 2.0).