1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-22 16:16:16 +04:00
Rust version of THU uCore OS. Linux compatible.
Go to file
2018-09-07 20:53:37 +08:00
crate Add little notes for BitAllocator 2018-09-07 20:53:37 +08:00
docker Rewrite README. Add docker. 2018-04-02 15:28:32 +08:00
docs Update doc & README 2018-07-12 22:46:17 +08:00
kernel Merge riscv for QEMU & FPGA 2018-08-07 16:11:48 +08:00
macOS-env Add homebrew files for macOS 2018-04-03 14:49:26 +08:00
riscv-env Update dockerfile 2018-07-05 00:18:53 +08:00
riscv-pk rv64 toolchain configure for riscv-pk 2018-08-04 23:02:50 +08:00
user Fix user project for new toolchain 2018-08-05 10:41:51 +08:00
.gitignore Fix x86_64. Not elegant. 2018-08-05 17:50:56 +08:00
.gitmodules Fork crate riscv as a submodule 2018-07-05 14:17:30 +08:00
.travis.yml Update travis 2018-08-05 01:07:52 +08:00
Makefile Fix build guide 2018-07-16 13:37:26 +08:00
README.md Update README 2018-08-07 16:48:34 +08:00
status.md Update report 2018-06-15 11:50:51 +08:00

RustOS

Build Status

Rust port for uCore OS, supporting x86_64 and riscv32i.

Summary

This is a project of THU Operating System (2018 Spring) && Comprehensive Experiment of Computer System (2018 Summer).

Project wiki (internal access only): OS, CECS

Reports (in Chinese): MidReport, FinalReport, RISCV port note

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

  • Rust toolchain at nightly-2018-08-03
  • cargo-xbuild
  • QEMU >= 2.12.0
  • riscv32
    • RISCV64 GNU toolchain
  • x86_64
    • nasm
    • grub-mkrescue
    • xorriso

How to run

git clone https://github.com/wangrunji0408/RustOS.git --recursive
cd RustOS/kernel
make run arch=riscv32|x86_64
# For FPGA: 
# make run arch=riscv32 board=1

License

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