Skip to content
Snippets Groups Projects
Select Git revision
  • v0.3.50
  • main default
  • gh-readonly-queue/main/pr-1863-beabb5b4b85920f9fcaa0ca027c2e08191e01782
  • gh-readonly-queue/main/pr-1864-a56f9e91840d593bfe5fa22495f37060df4c9560
  • gh-readonly-queue/main/pr-1867-42078807782be83c4d6d9f564e6135592886ad97
  • gh-readonly-queue/main/pr-1869-3fe27b20b4d941d54a736e71e8312e643a107942
  • gh-readonly-queue/main/pr-1869-91915bfe9e37cac0cef04ed84742c75a17040cd1
  • gh-readonly-queue/main/pr-1868-0a5013b3ea738c736abb56c3b349af6fab4b79c2
  • gh-readonly-queue/main/pr-1868-81c2a9fbd3e40e6c7594daa85b3c5bceaae0e752
  • gh-readonly-queue/main/pr-1866-72f1ce561bd38a908956aa69bdf82756e172f515
  • gh-readonly-queue/main/pr-1866-7521e852516b33bfd292a3d6a4aa9e0f7deb1ddc
  • gh-readonly-queue/main/pr-1865-0df8da990129f024f4fed312678807c1707443f2
  • gh-readonly-queue/main/pr-1865-c746573c47b5c014eb05d1d6fdbd51fd62cba9f0
  • gh-readonly-queue/main/pr-1864-0df8da990129f024f4fed312678807c1707443f2
  • dependabot/cargo/proc-macro2-1.0.96
  • dependabot/cargo/sysinfo-0.37.0
  • dependabot/cargo/hashbrown-0.15.5
  • dependabot/cargo/hermit-entry-0.10.4
  • dependabot/cargo/clap-4.5.44
  • dependabot/github_actions/actions/checkout-5
  • rftrace-0.3.0
  • v0.11.0
  • v0.10.0
  • v0.8.0
  • v0.7.0
  • v0.6.9
  • v0.6.8
  • v0.6.7
  • v0.6.6
  • v0.6.5
  • v0.6.4
  • v0.6.3
  • v6.3.0
  • v0.6.2
  • v0.6.1
  • 0.6.1
  • v0.6.0
  • v0.5.0
  • v0.4.4
  • v0.4.3
  • v0.4.2
41 results

kernel

  • Clone with SSH
  • Clone with HTTPS
  • RustyHermit: libhermit-rs

    Documentation License Slack Status

    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-hermit-kernel

    The resulting library then can be found in target/x86_64-unknown-hermit-kernel/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-hermit-kernel

    Credits

    libhermit-rs is derived from following tutorials and software distributions:

    1. Philipp Oppermann's excellent series of blog posts.
    2. Erik Kidd's toyos-rs, which is an extension of Philipp Opermann's kernel.
    3. The Rust-based teaching operating system eduOS-rs.

    HermitCore's Emoji is provided for free by EmojiOne.

    License

    Licensed under either of

    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