libhermit-rs: A Rust-based library operating system
libhermit-rs is the kernel of the RustyHermit unikernel project.
Usually the kernel will be linked as static library to your applications.
If this does not fit your needs and you want to build the kernel as static library to link afterwards, you need the following:
The Rust nightly toolchain (official webpage), the source code of the Rust runtime, and llvm-tools:
rustup toolchain install nightly rustup component add rust-src llvm-tools-preview
You can then build
libhermit-rswith the following command
cargo build -Z build-std=core,alloc,panic_abort --target x86_64-unknown-hermit-kernel
The resulting library then can be found in
libhermit-rs uses the lightweight logging crate log to print kernel messages. The environment variable
HERMIT_LOG_LEVEL_FILTERcontrols the verbosity. You can change it by setting it at compile time to a string matching the name of a LevelFilter. If the variable is not set, or the name doesn't match, then
LevelFilter::Infois used by default.
$ HERMIT_LOG_LEVEL_FILTER=Debug cargo build -Z build-std=core,alloc,panic_abort --target x86_64-unknown-hermit-kernel
libhermit-rs is derived from following tutorials and software distributions:
HermitCore's Emoji is provided for free by EmojiOne.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.