2 unstable releases
Uses new Rust 2024
new 0.11.0 | Mar 25, 2025 |
---|---|
0.10.0 | Mar 21, 2025 |
#54 in Operating systems
238 downloads per month
1MB
26K
SLoC
Hermit Kernel
This is the kernel of the Hermit unikernel project.
Requirements
Building the kernel
Usually the kernel will be linked as static library to your applications.
- Rust applications: Instructions can be found in the hermit-rs repository.
- For C/C++ applications: Instructions can be found in the hermit-playground repository.
Standalone static library build
cargo xtask build --arch x86_64
On completion, the script will print the path of libhermit.a
.
If you want to build the kernel for aarch64, please replace x86_64
by aarch64
.
If you want to build the kernel for riscv64, please use riscv64
.
Control the kernel messages verbosity
This kernel 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 xtask build --arch x86_64
Credits
This kernel 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.
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.
The kernel is being developed on hermit-os/kernel. Create your own fork, send us a pull request, and chat with us on Zulip.
Dependencies
~11–18MB
~209K SLoC