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).
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
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.
Simply run make
make [LLVM=1] [CARGO_ACTION=build|clippy|fix|...] [PROFILE=release|debug] [FEATURES=...] <platform>
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/
Unishyper: A reliable Rust-based unikernel for embedded scenarios.