A toy operating system which supports NVDIMM natively.
Check the installation (below is an example output):
$ cargo --version
cargo 1.46.0 (149022b1d 2020-07-17)
Then, install nightly toolchain and cargo-xbuild for cross compiling.
rustup toolchain install nightly && rustup default nightly
rustup component add rust-src
cargo install cargo-xbuild
brew install wget cmake qemu llvm dosfstools
sudo apt install wget cmake qemu-system-x86 clang-8 lld-8 libc++-8-dev libc++abi-8-dev clang-format
Move to the root of this source tree. Then:
make tools
cd src
make newlib && make libcxxabi && make libcxx
make
This repository contains OVMF binary for UEFI emulation.
make run
You can connect serial console using telnet
telnet localhost 1235
make run
boots liumOS on QEMU with a tap interface on Linux host.
To avoid running QEMU with sudo, you need to setup a tap interface in advance.
sudo ip tuntap add dev tap0 mode tap user $USER
sudo ip link set dev tap0 master br0
sudo ip link set dev tap0 up
example output with bridge br0
connected to eno1
$ ip a | grep -e br0 -e tap0
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 10.10.10.93/24 brd 10.10.10.255 scope global dynamic br0
6: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
network:
ethernets:
eno1:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces: [ eno1 ]
dhcp4: true
version: 2