• Stars
    star
    208
  • Rank 189,015 (Top 4 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 4 years ago
  • Updated 4 months ago

Reviews

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

Repository Details

VirtIO guest drivers in Rust.

VirtIO-drivers-rs

crates.io page docs.rs page CI

VirtIO guest drivers in Rust. For no_std environment.

Support status

Device types

Device Supported
Block โœ…
Net โœ…
GPU โœ…
Input โœ…
Console โœ…
Socket โœ…
... โŒ

Transports

Transport Supported
Legacy MMIO โœ… version 1
MMIO โœ… version 2
PCI โœ… Memory-mapped CAM only, e.g. aarch64 or PCIe ECAM

Device-independent features

Feature flag Supported
VIRTIO_F_INDIRECT_DESC โœ… Indirect descriptors
VIRTIO_F_EVENT_IDX โœ… avail_event and used_event fields
VIRTIO_F_VERSION_1 TODO VirtIO version 1 compliance
VIRTIO_F_ACCESS_PLATFORM โŒ Limited device access to memory
VIRTIO_F_RING_PACKED โŒ Packed virtqueue layout
VIRTIO_F_IN_ORDER โŒ Optimisations for in-order buffer usage
VIRTIO_F_ORDER_PLATFORM โŒ Platform ordering for memory access
VIRTIO_F_SR_IOV โŒ Single root I/O virtualization
VIRTIO_F_NOTIFICATION_DATA โŒ Extra data in device notifications

Examples & Tests

x86_64

cd examples/x86_64
make qemu

aarch64

cd examples/aarch64
make qemu

RISCV

cd examples/riscv
make qemu

You will see device info & GUI Window in qemu.

More Repositories

1

rCore

Rust version of THU uCore OS. Linux compatible.
Rust
3,460
star
2

zCore

Zircon microkernel reimplemented in Rust.
Rust
1,717
star
3

rCore-Tutorial-v3

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

rCore-Tutorial-Book-v3

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

rCore-Tutorial

Tutorial for rCore OS step by step (3rd edition)
Rust
462
star
6

rCore_tutorial

Tutorial for rCore OS step by step (2nd edition)
Rust
140
star
7

RVM

Rcore Virtual Machine
Rust
106
star
8

buddy_system_allocator

A buddy system allocator in pure Rust.
Rust
87
star
9

rCore_tutorial_doc

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

zCore-Tutorial

[WIP] Tutorial for zCore kernel.
Rust
57
star
11

RVM1.5

A Type-1.5 hypervisor written in Rust.
Rust
54
star
12

rcore-fs

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

rboot

The x86_64 UEFI bootloader for rCore
Rust
43
star
14

blog

rcore-os Developer Blog
Stylus
41
star
15

arceos-tutorial-book

39
star
16

rust-for-linux

Rust for Linux ่ฎพๅค‡้ฉฑๅŠจๅผ€ๅ‘
33
star
17

aCore

Asynchronous OS kernel written in Rust.
33
star
18

nvme_driver

Rust
30
star
19

trapframe-rs

Handle TrapFrame across kernel and user space on multiple ISAs.
Rust
30
star
20

learn-rust

22
star
21

zcore_tutorial_developers

zcore_tutorialๆ–‡ๆกฃๆ’ฐๅ†™ๅทฅไฝœไปฅๅŠๅ•ๅ…ƒๆต‹่ฏ•ๅทฅไฝœ็ป„
HTML
19
star
22

rcore-user

User programs for rCore OS
C
18
star
23

riscv-sbi-rt

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

rcore-thread

Bare-metal multithreading on multi-core processor.
Rust
17
star
25

rCore-Tutorial-v3-arm64

Let's write an OS which can run on ARM in Rust from scratch! (๐ŸšงWIP)
Rust
15
star
26

bcm2837

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

x86-smpboot

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

rCore-Tutorial-v3-x86_64

Let's write an OS which can run on x86_64 in Rust from scratch! (๐ŸšงWIP)
Rust
9
star
29

cpio

Freestanding CPIO file reader in Rust.
Rust
9
star
30

bitmap-allocator

Free space bitmap allocator
Rust
8
star
31

embedded-term

The virtual console embedded in rCore kernel.
Rust
8
star
32

apic-rs

Rust APIC crate for x86 kernel.
Rust
7
star
33

pci-rs

A platform-agnostic PCI bus management and configuration access library.
Rust
5
star
34

naive-timer

A minimal naive timer for embedded platforms (no_std) in Rust.
Rust
5
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

riscv-sbi

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

isomorphic_drivers

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

software-hardware-analysis

3
star
41

rcore-lkm

Loadable Kernel Module for rCore OS
Rust
3
star
42

.github

3
star
43

rCore-Tutorial-deploy

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

rcore_tutorial_tests

Rust
3
star
45

rcore-tutorial-book-code

Rust
3
star
46

e1000e-driver

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

zircon-notes

Some analysis of zircon
2
star
48

testos

2
star
49

busybox-prebuilts

2
star
50

mem_malloc_subsystem

C
2
star
51

zcore-tests

Test scripts for zCore OS
Python
1
star
52

discussions

1
star
53

rcore-os.github.io

rCore-OS website
1
star