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.
 
 
 
 
 
 
WangRunji e1f93a179a
add travis for aarch64
6 years ago
crate fix merge for aarch64. now it works! 6 years ago
docs move g4 docs 6 years ago
kernel fix merge for aarch64. now it works! 6 years ago
riscv-pk Blocking getchar 6 years ago
tools aarch64: bootable in qemu 6 years ago
user Merge remote-tracking branch 'equation314/arch-aarch64' into dev 6 years ago
.gitignore Merge remote-tracking branch 'equation314/arch-aarch64' into dev 6 years ago
.travis.yml add travis for aarch64 6 years ago
README.md update README 6 years ago
status.md update README 6 years ago

README.md

RustOS

Build Status

Rust version of THU uCore OS.

Going to be the next generation teaching operating system.

Support arch: x86_64, RISCV32I, AArch64 (WIP).

Dev docs (in Chinese)

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
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).