1 unstable release
Uses new Rust 2024
new 0.10.0 | Mar 21, 2025 |
---|
#347 in Operating systems
1MB
26K
SLoC
Contains (ELF exe/lib, 195KB) src/wasm_old/irq_counter.cwasm, (ELF exe/lib, 15KB) src/wasm_old/fib.cwasm
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