랭킹으로 돌아가기

hermit-os/kernel

Rusthermit-os.org

A Rust-based, lightweight unikernel.

rust-langcloud-computingkernelvirtualizationhigh-performance-computingunikernelsosdevrustoperating-systemsoperating-system
스타 성장
스타
1.5k
포크
128
주간 성장
이슈
130
5001k
2018년 5월2021년 1월2023년 10월2026년 7월
아티팩트crates.iocargo add kernel
README

Hermit Kernel

Documentation License Zulip Badge DOI

This is the kernel of the Hermit unikernel project.

For details, see the docs.

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

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.

관련 저장소
rustdesk/rustdesk

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

Rustcrates.ioGNU Affero General Public License v3.0remote-controlremote-desktop
rustdesk.com
118.7k18.1k
oven-sh/bun

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one

Rustcrates.ioOtherbunbundler
bun.com
94.9k4.9k
zed-industries/zed

Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.

Rustcrates.ioOthertext-editorzed
zed.dev
87.4k9.7k
toeverything/AFFiNE

There can be more than Notion and Miro. AFFiNE(pronounced [ə‘fain]) is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.

TypeScriptnpmOthereditorcrdt
affine.pro
70.7k5.1k
sunface/rust-course

什么?你敢放心的把后背交给 AI? 我赌你不敢,那就来学学 AI 时代最酷、最安全、最快的语言吧。本书拥有全面且深入的讲解、生动贴切的示例、德芙般丝滑的内容,这可能是目前最用心的 Rust 中文学习教程 / Book

Rustcrates.iorust-langrust
course.rs
30.7k2.6k
chroma-core/chroma

Search infrastructure for AI

Rustcrates.ioApache License 2.0databaserust
trychroma.com
28.9k2.4k
TheAlgorithms/Rust

All Algorithms implemented in Rust

Rustcrates.ioMIT Licenserustalgorithms
25.9k2.6k
slint-ui/slint

Slint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C++, JavaScript, or Python apps.

Rustcrates.ioOtherrustembedded-devices
slint.dev
23.3k935
vectordotdev/vector

A high-performance observability data pipeline.

Rustcrates.ioMozilla Public License 2.0logsmetrics
vector.dev
22.2k2.2k
openobserve/openobserve

Open source observability platform for logs, metrics, traces, frontend monitoring, pipelines and LLM observability. A sophisticated, simple and highly performant alternative to Datadog, Splunk, and Elasticsearch with 140x lower storage costs and single binary deployment.

TypeScriptnpmGNU Affero General Public License v3.0logsmetrics
openobserve.ai
20.3k957
compiler-explorer/compiler-explorer

Run compilers interactively from your web browser and interact with the assembly

TypeScriptnpmBSD 2-Clause "Simplified" Licenserustc-plus-plus
godbolt.org
18.9k2.1k
gurugio/lowlevelprogramming-university

How to be low-level programmer

GNU General Public License v3.0linux-kernel-hackingc-programming
12.7k874