Skip to content

An embedded hypervisor for mixed-critical system based on Rust

License

Notifications You must be signed in to change notification settings

tsemo4917/rtshyper

Repository files navigation

RT-Shyper

forked form Rust-Shyper

An embedded hypervisor for mixed-critical system.

  • Fully based on Rust.
  • High performance and reliability.
  • Virtio (blk, net and console) support.
  • Supporting strong memory isolation (LLC isolation based on coloring and memory bandwidth control).

Supported Platform

The list of supported (and work in progress) platforms is presented below:

aarch64

  • NVIDIA Jetson TX2
  • (work-in-progress) Raspberry Pi 4 Model B
  • (work-in-progress) QEMU

Build Dependencies

First, install the Rust toolchain.

For cross-compiling, install the gcc-multilib (on Ubuntu)

Install clang and LLVM toolchain.

Install u-boot-tools to use mkimage

sudo apt install -y gcc-multilib u-boot-tools clang

Install cargo-binutils to use rust-objcopy and rust-objdump tools:

cargo install cargo-binutils

If you want to build the C library with other cross compiling toolchain, for example, aarch64-none-elf toolchain, you can add it to PATH and set the CROSS_COMPILE on the command line.

How to Build

Simply run make

make [LLVM=1] [CARGO_ACTION=build|clippy|fix|...] [PROFILE=release|debug] [FEATURES=...] <platform>

Rust FFI programming with C

only freestanding C headers are available: <float.h>, <iso646.h>, <limits.h>, <stdarg.h>, <stdbool.h>, <stddef.h>, and <stdint.h>

see http://cs107e.github.io/guides/gcc/

See more

Unishyper: A reliable Rust-based unikernel for embedded scenarios.

About

An embedded hypervisor for mixed-critical system based on Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages