• Stars
    star
    3,337
  • Rank 12,940 (Top 0.3 %)
  • Language
    Rust
  • License
    MIT License
  • Created about 6 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rust version of THU uCore OS. Linux compatible.

rCore

CI

Rust version of THU uCore OS Plus.

Going to be the next generation teaching operating system.

Supported architectures and boards:

  • x86_64(Tier 1): QEMU, PC (i5/i7)
  • RISCV32/64(Tier 2): QEMU, HiFive Unleashed
  • AArch64(Tier 2): QEMU, Raspberry Pi 3B+
  • MIPS32(Tier 3): QEMU, TrivialMIPS

demo

What's included

rCore has the following features:

  • Linux compatible syscall interface: run Linux userspace programs
  • Network stack
  • Simple file system
  • Signal system
  • Async IO
  • Kernel module

Building

Environment

Setup on Linux or macOS:

$ rustup component add rust-src llvm-tools-preview

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=x86_64
$ cd ../kernel
$ make run ARCH=x86_64 LOG=info

See Makefile for more usages.

Maintainers

Module Maintainer
x86_64 @wangrunji0408
RISC-V @jiegec
AArch64 (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).

More Repositories

1

zCore

Zircon microkernel reimplemented in Rust.
Rust
1,679
star
2

rCore-Tutorial-v3

Let's write an OS which can run on RISC-V in Rust from scratch!
Rust
1,451
star
3

rCore-Tutorial-Book-v3

A book about how to write OS kernels in Rust easily.
Python
1,109
star
4

rCore-Tutorial

Tutorial for rCore OS step by step (3rd edition)
Rust
458
star
5

arceos

An experimental modular OS written in Rust.
Rust
416
star
6

virtio-drivers

VirtIO guest drivers in Rust.
Rust
178
star
7

rCore_tutorial

Tutorial for rCore OS step by step (2nd edition)
Rust
139
star
8

RVM

Rcore Virtual Machine
Rust
102
star
9

buddy_system_allocator

A buddy system allocator in pure Rust.
Rust
82
star
10

rCore_tutorial_doc

Tutorial doc for rCore OS step by step (2nd edition)
Rust
64
star
11

zCore-Tutorial

[WIP] Tutorial for zCore kernel.
Rust
53
star
12

rcore-fs

The file system module for rCore OS.
Rust
48
star
13

RVM1.5

A Type-1.5 hypervisor written in Rust.
Rust
44
star
14

rboot

The x86_64 UEFI bootloader for rCore
Rust
42
star
15

aCore

Asynchronous OS kernel written in Rust.
33
star
16

nvme_driver

Rust
30
star
17

arceos-tutorial-book

30
star
18

trapframe-rs

Handle TrapFrame across kernel and user space on multiple ISAs.
Rust
29
star
19

blog

rcore-os Developer Blog
Stylus
25
star
20

learn-rust

22
star
21

rust-for-linux

Rust for Linux 设备驱动开发
20
star
22

zcore_tutorial_developers

zcore_tutorial文档撰写工作以及单元测试工作组
HTML
19
star
23

riscv-sbi-rt

A mininal runtime / startup for Supervisor Binary Interface (SBI) on RISC-V.
Rust
18
star
24

rcore-user

User programs for rCore OS
C
16
star
25

rcore-thread

Bare-metal multithreading on multi-core processor.
Rust
14
star
26

rCore-Tutorial-v3-arm64

Let's write an OS which can run on ARM in Rust from scratch! (🚧WIP)
Rust
13
star
27

bcm2837

Low level access to BCM2837 SoC on Raspberry Pi 3 Model B/B+
Rust
12
star
28

x86-smpboot

Booting multi-processors on x86 bare-metal.
Assembly
11
star
29

embedded-term

The virtual console embedded in rCore kernel.
Rust
9
star
30

cpio

Freestanding CPIO file reader in Rust.
Rust
9
star
31

bitmap-allocator

Free space bitmap allocator
Rust
8
star
32

rCore-Tutorial-v3-x86_64

Let's write an OS which can run on x86_64 in Rust from scratch! (🚧WIP)
Rust
8
star
33

apic-rs

Rust APIC crate for x86 kernel.
Rust
7
star
34

naive-timer

A minimal naive timer for embedded platforms (no_std) in Rust.
Rust
6
star
35

community

rCore-OS community
5
star
36

rlibc-opt

An optimized version of rlibc.
Rust
5
star
37

rcore-vmm

Virtual machine monitor app for rCore OS
C
5
star
38

pci-rs

A platform-agnostic PCI bus management and configuration access library.
Rust
4
star
39

riscv-sbi

Low level access to RISC-V Supervisor Binary Interface (SBI) implementations
Rust
4
star
40

isomorphic_drivers

A set of isomorphic drivers that can run both in kernel and user space without modifications.
Rust
3
star
41

software-hardware-analysis

3
star
42

rcore-lkm

Loadable Kernel Module for rCore OS
Rust
3
star
43

.github

3
star
44

rCore-Tutorial-deploy

Tutorial Doc for rCore OS step by step (3rd edition)
Rust
3
star
45

rcore_tutorial_tests

Rust
3
star
46

rcore-tutorial-book-code

Rust
3
star
47

e1000e-driver

Intel 82574L GbE Controller e1000e driver in Rust.
2
star
48

busybox-prebuilts

2
star
49

zircon-notes

Some analysis of zircon
2
star
50

testos

2
star
51

mem_malloc_subsystem

C
2
star
52

zcore-tests

Test scripts for zCore OS
Python
1
star
53

discussions

1
star
54

rcore-os.github.io

rCore-OS website
1
star