1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-21 23:56:18 +04:00
Rust version of THU uCore OS. Linux compatible.
Go to file
Runji Wang af83913188 fix data racing on thread crate
The key point is that all methods on 'Processor' must be called with interrupt disabled. Otherwise if an interrupt happened inside a method, and then the thread is switched to other CPUs, it will touch other 'Processor'.
2019-11-30 18:11:26 +08:00
crate Flush I/D cache after copying user code in page fault handler 2019-10-04 14:05:20 +08:00
docs x86_64: switch from legacy BIOS to UEFI. use rboot as new bootloader 2019-09-04 10:37:31 +08:00
kernel fix data racing on thread crate 2019-11-30 18:11:26 +08:00
modules/hello_rust Bugfix: x86_64 module compilation failure (#20) 2019-10-10 01:43:37 +08:00
rboot@ee5cb59a92 update Rust nightly to 2019-11-28 2019-11-30 15:48:09 +08:00
tests Fix riscv32 testing 2019-05-03 15:17:06 +08:00
tools riscv: use -bios option for QEMU 4.1 2019-11-30 15:48:12 +08:00
user@653effaf38 Run code format 2019-11-18 13:59:12 +08:00
.gitignore optimize code structure 2019-11-04 14:34:43 +08:00
.gitmodules optimize code structure 2019-11-04 14:34:43 +08:00
.travis.yml update Rust nightly to 2019-11-28 2019-11-30 15:48:09 +08:00
LICENSE update README. add LICENSE 2018-12-02 22:19:32 +08:00
README.md riscv: use -bios option for QEMU 4.1 2019-11-30 15:48:12 +08:00
rust-toolchain update Rust nightly to 2019-11-28 2019-11-30 15:48:09 +08:00

rCore

Build Status

Rust version of THU uCore OS Plus.

Going to be the next generation teaching operating system.

Supported architectures and boards:

demo

Building

Environment

Setup on Linux or macOS:

$ rustup component add rust-src llvm-tools-preview
$ cargo install cargo-binutils cargo-xbuild

Or use Docker container:

$ docker run -it -v $PWD:$PWD -w $PWD wangrunji0408/rcore

How to run

$ git clone https://github.com/rcore-os/rCore.git --recursive
$ cd rCore/user
$ make sfsimg prebuilt=1 arch={riscv32,riscv64,x86_64,aarch64,mipsel}
$ cd ../kernel
$ make run arch={riscv32,riscv64,x86_64,aarch64,mipsel}

Maintainers

Module Maintainer
x86_64 @wangrunji0408
RISC-V @jiegec
ARM (Raspi3) @equation314
MIPS @Harry_Chen @miskcoo
Memory, Process, File System @wangrunji0408
Network with drivers @jiegec
GUI @equation314

History

This is a project of THU courses:

Reports and Dev docs (in Chinese)

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