Science Score: 77.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
18 of 51 committers (35.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
A Rust-based, lightweight unikernel.
Basic Info
- Host: GitHub
- Owner: hermit-os
- License: apache-2.0
- Language: Rust
- Default Branch: main
- Homepage: https://hermit-os.org
- Size: 62.6 MB
Statistics
- Stars: 1,325
- Watchers: 13
- Forks: 105
- Open Issues: 137
- Releases: 50
Topics
Metadata Files
README.md
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-c repository.
Standalone static library build
sh
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.
sh
$ 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.
Owner
- Name: The Hermit Operating System
- Login: hermit-os
- Kind: organization
- Location: Germany
- Website: https://hermit-os.org
- Repositories: 89
- Profile: https://github.com/hermit-os
A Rust-based, lightweight unikernel.
Citation (CITATION.cff)
cff-version: 1.2.0
title: The Hermit Kernel
message: >-
If you use this software, please cite both the article
from preferred-citation and the software itself.
type: software
authors:
- family-names: Lankes
given-names: Stefan
orcid: 'https://orcid.org/0000-0003-4718-2238'
- family-names: Kröning
given-names: Martin
orcid: 'https://orcid.org/0009-0005-0622-4229'
- family-names: Klimt
given-names: Jonathan
orcid: 'https://orcid.org/0000-0002-5980-2214'
- family-names: Breitbart
given-names: Jens
- family-names: Finck
given-names: Colin
- family-names: Krebs
given-names: Daniel
- family-names: Schöning
given-names: Simon
- family-names: Schwender
given-names: Jonathan
- family-names: Şahin
given-names: Çağatay Yiğit
- family-names: Thomas
given-names: Lambertz
- name: The Hermit Project Developers
identifiers:
- type: doi
value: 10.5281/zenodo.14645534
description: The concept DOI of the software.
- type: doi
value: 10.5281/zenodo.14645535
description: The versioned DOI for version 0.8.0 of the software.
- type: url
value: >-
https://github.com/hermit-os/kernel/releases/tag/v0.8.0
description: The GitHub release URL of tag v0.8.0.
- type: url
value: >-
https://github.com/hermit-os/kernel/tree/742526984ee0094b0626ad6afddb17b11bc9caff
description: >-
The GitHub release URL of the commit tagged with
v0.8.0.
- type: url
value: >-
https://github.com/hermit-os/kernel/releases/tag/v0.10.0
description: The GitHub release URL of tag v0.10.0.
- type: url
value: >-
https://github.com/hermit-os/kernel/tree/791b9328b3a6b93944692c6dfa3e2f42c59672cb
description: >-
The GitHub release URL of the commit tagged with
v0.10.0.
repository-code: 'https://github.com/hermit-os/kernel'
url: 'https://hermit-os.org/'
abstract: 'A Rust-based, lightweight unikernel.'
keywords:
- unikernel
- rust
- virtualization
- operating system
- high-performance computing
- cloud computing
license:
- MIT
- Apache-2.0
commit: 791b9328b3a6b93944692c6dfa3e2f42c59672cb
version: 0.10.0
date-released: '2025-01-18'
preferred-citation:
type: article
title: Exploring Rust for Unikernel Development
journal: >-
Proceedings of the 10th Workshop on Programming Languages and Operating
Systems
doi: 10.1145/3365137.3365395
year: 2019
month: 10
authors:
- family-names: Lankes
given-names: Stefan
orcid: 'https://orcid.org/0000-0003-4718-2238'
- family-names: Breitbart
given-names: Jens
- family-names: Pickartz
given-names: Simon
orcid: 'https://orcid.org/0000-0002-6316-6396'
pages: 8
start: 8
end: 15
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Stefan Lankes | s****s@e****e | 2,953 |
| Martin Kröning | m****g@e****e | 1,461 |
| dependabot[bot] | 4****] | 420 |
| Colin Finck | c****k@r****e | 166 |
| Çağatay Yiğit Şahin | c****n@o****m | 88 |
| daniel-k | g****b@d****t | 71 |
| mustermeiszer | m****r@g****m | 65 |
| Jonathan Schwender | s****n@g****m | 63 |
| Thomas Lambertz | m****l@t****e | 25 |
| Jens Breitbart | j****t@g****m | 23 |
| Steffen Vogel | s****l@e****e | 15 |
| Jonathan Klimt | j****t@e****e | 14 |
| simonschoening | s****g@r****e | 12 |
| Simon Pickartz | s****z@e****e | 8 |
| Dirk Stolle | s****v@w****e | 6 |
| LucasHaug | l****g@h****m | 6 |
| Nathan Whyte | n****5@g****m | 6 |
| Marco Ruppert-Maas | m****0@g****m | 6 |
| Jens Reidel | a****n@t****z | 5 |
| Jonas Schroeder | j****1@r****e | 5 |
| joboet | j****r@i****m | 5 |
| Panagiotis "Ivory" Vasilopoulos | g****t@n****t | 4 |
| Sarah Simon | s****n@r****e | 4 |
| RealRichardParker | t****g@g****m | 3 |
| Shaun Beautement | s****t@p****m | 3 |
| michael | m****9@g****m | 3 |
| Carl Wachter | c****r@r****e | 3 |
| Fritz Stracke | f****e@r****e | 3 |
| Cam Walter | c****r@g****m | 2 |
| Thalia Archibald | t****a@a****v | 2 |
| and 21 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 122
- Total pull requests: 1,501
- Average time to close issues: 10 months
- Average time to close pull requests: 9 days
- Total issue authors: 24
- Total pull request authors: 22
- Average comments per issue: 0.61
- Average comments per pull request: 0.25
- Merged pull requests: 1,253
- Bot issues: 7
- Bot pull requests: 557
Past Year
- Issues: 64
- Pull requests: 776
- Average time to close issues: 6 days
- Average time to close pull requests: 5 days
- Issue authors: 14
- Pull request authors: 17
- Average comments per issue: 0.17
- Average comments per pull request: 0.24
- Merged pull requests: 607
- Bot issues: 6
- Bot pull requests: 287
Top Authors
Issue Authors
- mkroening (71)
- jounathaen (10)
- stlankes (6)
- github-actions[bot] (5)
- dscso (4)
- m-mueller678 (4)
- hcsch (3)
- cagatay-y (2)
- dependabot[bot] (2)
- egrimley-arm (1)
- n0toose (1)
- Sxmourai (1)
- septatrix (1)
- koraa (1)
- tlambertz (1)
Pull Request Authors
- mkroening (559)
- dependabot[bot] (557)
- stlankes (160)
- cagatay-y (76)
- jounathaen (34)
- Gelbpunkt (33)
- n0toose (17)
- CarlWachter (10)
- mrm-develop (9)
- zyuiop (8)
- sarahspberrypi (7)
- shehreenr (4)
- marcomaas1990 (4)
- fstracke (4)
- m-mueller678 (4)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- cargo 1,203 total
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 67
- Total maintainers: 2
proxy.golang.org: github.com/hermit-os/kernel
- Documentation: https://pkg.go.dev/github.com/hermit-os/kernel#section-documentation
- License: apache-2.0
-
Latest release: v0.11.0
published 9 months ago
Rankings
crates.io: hermit-kernel
A Rust-based library operating system
- Documentation: https://docs.rs/hermit-kernel/
- License: MIT OR Apache-2.0
-
Latest release: 0.11.0
published 9 months ago
Rankings
Dependencies
- Swatinem/rust-cache v2 composite
- actions/checkout v3 composite
- dsaltares/fetch-gh-release-asset 1.1.0 composite
- taiki-e/install-action cargo-hack composite
- actions/checkout v3 composite
- crazy-max/ghaction-github-pages v3 composite
- actions-rs/audit-check v1 composite
- actions/checkout v3 composite
- aarch64 0.0.7
- aarch64-cpu 9.3.1
- ahash 0.8.3
- align-address 0.1.0
- anyhow 1.0.69
- async-task 4.3.0
- atomic-polyfill 0.1.11
- autocfg 1.1.0
- bit_field 0.10.1
- bitflags 1.3.2
- byteorder 1.4.3
- cfg-if 1.0.0
- cortex-a 7.5.0
- critical-section 1.1.1
- crossbeam-utils 0.8.14
- defmt 0.3.2
- defmt-macros 0.3.3
- defmt-parser 0.3.1
- dyn-clone 1.0.10
- exclusive_cell 0.1.0
- fastrand 1.8.0
- float-cmp 0.9.0
- futures-core 0.3.25
- futures-lite 1.12.0
- generic_once_cell 0.1.1
- goblin 0.6.0
- hash32 0.2.1
- hashbrown 0.13.2
- heapless 0.7.16
- hermit-entry 0.9.1
- hermit-sync 0.1.2
- include-transformed 0.2.1
- instant 0.1.12
- libc 0.2.139
- linked_list_allocator 0.10.4
- llvm-tools 0.1.1
- lock_api 0.4.9
- log 0.4.17
- managed 0.8.0
- memchr 2.5.0
- minimal-lexical 0.2.1
- multiboot 0.8.0
- nom 7.1.2
- num-traits 0.2.15
- once_cell 1.17.0
- paste 1.0.11
- pci-ids 0.2.5
- pflock 0.2.0
- phf 0.11.1
- phf_codegen 0.11.1
- phf_generator 0.11.1
- phf_shared 0.11.1
- pin-project-lite 0.2.9
- plain 0.2.3
- ppv-lite86 0.2.17
- proc-macro-error 1.0.4
- proc-macro-error-attr 1.0.4
- proc-macro2 1.0.49
- qemu-exit 3.0.1
- quote 1.0.23
- rand 0.8.5
- rand_chacha 0.3.1
- rand_core 0.6.4
- raw-cpuid 10.6.0
- redox_syscall 0.2.16
- remove_dir_all 0.5.3
- rustc_version 0.4.0
- rustversion 1.0.11
- scopeguard 1.1.0
- scroll 0.11.0
- scroll_derive 0.11.0
- semver 1.0.16
- shell-words 1.1.0
- siphasher 0.3.10
- smoltcp 0.9.1
- spin 0.9.5
- stable_deref_trait 1.2.0
- syn 1.0.107
- tempfile 3.3.0
- time 0.3.17
- time-core 0.1.0
- tock-registers 0.7.0
- tock-registers 0.8.1
- uart_16550 0.2.18
- unicode-ident 1.0.6
- version_check 0.9.4
- volatile 0.4.5
- winapi 0.3.9
- winapi-i686-pc-windows-gnu 0.4.0
- winapi-x86_64-pc-windows-gnu 0.4.0
- x86 0.52.0
- x86_64 0.14.10
- xflags 0.3.1
- xflags-macros 0.3.1
- xshell 0.2.3
- xshell-macros 0.2.3
- float-cmp 0.9 development
- num-traits 0.2 development
- x86 0.52 development
- ahash 0.8
- align-address 0.1
- async-task 4.3
- bitflags 1.3
- crossbeam-utils 0.8
- dyn-clone 1.0
- futures-lite 1.11
- hashbrown 0.13
- hermit-entry 0.9
- hermit-sync 0.1.2
- include-transformed 0.2
- linked_list_allocator 0.10
- lock_api 0.4
- log 0.4
- pci-ids 0.2
- pflock 0.2
- qemu-exit 3.0
- rand_chacha 0.3
- shell-words 1.1
- smoltcp 0.9
- libm 0.2.6