45 releases
0.3.54 | Dec 9, 2021 |
---|---|
0.3.53 | Sep 4, 2021 |
0.3.52 | Aug 10, 2021 |
0.3.51 | Jun 24, 2021 |
0.3.10 | Oct 6, 2019 |
#390 in Operating systems
133 downloads per month
2MB
41K
SLoC
RustyHermit: libhermit-rs
libhermit-rs is the kernel of the RustyHermit unikernel project.
Building the kernel
Usually the kernel will be linked as static library to your applications.
- Rust applications: Instructions can be found in the rusty-hermit repository.
- For C/C++ applications: Instructions can be found in the hermit-playground repository.
Standalone static library build
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-rs
with the following command
cargo build -Z build-std=core,alloc,panic_abort --target x86_64-unknown-none-hermitkernel
The resulting library then can be found in target/x86_64-unknown-none-hermitkernel/debug/libhermit.a
Control the kernel messages verbosity
libhermit-rs uses the lightweight logging crate log to print kernel messages.
The environment variable HERMIT_LOG_LEVEL_FILTER
controls 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::Info
is used by default.
$ HERMIT_LOG_LEVEL_FILTER=Debug cargo build -Z build-std=core,alloc,panic_abort --target x86_64-unknown-none-hermitkernel
Credits
libhermit-rs is derived from following tutorials and software distributions:
- Philipp Oppermann's excellent series of blog posts.
- Erik Kidd's toyos-rs, which is an extension of Philipp Opermann's kernel.
- The Rust-based teaching operating system eduOS-rs.
HermitCore's Emoji is provided for free by EmojiOne.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
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.
libhermit-rs is being developed on GitHub. Create your own fork, send us a pull request, and chat with us on Slack
Dependencies
~5MB
~72K SLoC