GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - hermit-os/kernel: A Rust-based, lightweight unikernel.

BranchesTags
Open more actions menu

Latest commit

 

History

9,001 Commits
9,001 Commits

Folders and files

NameName
Last commit message
Last commit date
.cargo
.cargo
 
 
.github
.github
 
 
.vscode
.vscode
 
 
hermit-builtins
hermit-builtins
 
 
hermit-macro
hermit-macro
 
 
img
img
 
 
src
src
 
 
tests
tests
 
 
xtask
xtask
 
 
.git-blame-ignore-revs
.git-blame-ignore-revs
 
 
.gitignore
.gitignore
 
 
CITATION.cff
CITATION.cff
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE-APACHE
LICENSE-APACHE
 
 
LICENSE-MIT
LICENSE-MIT
 
 
README.md
README.md
 
 
build.rs
build.rs
 
 
clippy.toml
clippy.toml
 
 
deny.toml
deny.toml
 
 
rust-toolchain.toml
rust-toolchain.toml
 
 
rustfmt.toml
rustfmt.toml
 
 
typos.toml
typos.toml
 
 

Repository files navigation

Hermit Kernel

Documentation License Zulip Badge DOI

This is the kernel of the Hermit unikernel project.

For details, see the docs.

Requirements

  • rustup

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-c 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 and follows the env_logger format but without the regex support. You can change it per module (including its submodules) by setting it to a string in the format [target][=level][,...], where the level is a string matching the name of a LevelFilter. If the target is omitted, the level is set as the global level. If the level is omitted, logs of all levels are printed for the target. A substring search pattern that will filter all modules can be provided after the target-level pairs with /<pattern>. If the variable is not set, cannot be parsed, or it does not provide a global level, then a global level LevelFilter::Info is used by default.

Note

Although the logger only prints name of the lowest level for the kernel modules, the match filter requires paths to start from the root, i.e. in the format hermit::MODULE_NAME::SUBMODULE_NAME.

$ HERMIT_LOG_LEVEL_FILTER="hermit::drivers::net=debug,smoltcp,error" cargo xtask build --arch x86_64

Credits

This kernel 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.

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.

About

A Rust-based, lightweight unikernel.

hermit-os.org

Topics

cloud-computinghigh-performance-computingkerneloperating-systemoperating-systemsosdevrustrust-langunikernelsvirtualization

Resources

Readme

Contributing

Contributing
Activity
Custom properties

Stars

1.5k stars

Watchers

9 watching

Forks

139 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.