#unikernel #操作系统 #内核 #应用 #libos #指令 #控制

nightly rusty-hermit

基于Rust的操作系统库

45个版本

0.3.54 2021年12月9日
0.3.53 2021年9月4日
0.3.52 2021年8月10日
0.3.51 2021年6月24日
0.3.10 2019年10月6日

404 in 操作系统

MIT/Apache

2MB
41K SLoC

RustyHermit: libhermit-rs

Documentation License Slack Status

libhermit-rsRustyHermit 单核操作系统项目的内核。

构建内核

通常内核会被链接为静态库,用于你的应用程序。

独立静态库构建

如果这不符合你的需求,并且你想构建内核作为静态库以供后续链接,你需要以下内容

Rust nightly 工具链(官方网站)、Rust运行时源代码和 llvm-tools

rustup toolchain install nightly
rustup component add rust-src llvm-tools-preview

然后你可以使用以下命令构建 libhermit-rs

cargo build -Z build-std=core,alloc,panic_abort --target x86_64-unknown-none-hermitkernel

生成的库可以在 target/x86_64-unknown-none-hermitkernel/debug/libhermit.a

控制内核消息的详细程度

libhermit-rs 使用轻量级日志库 log 来打印内核消息。环境变量 HERMIT_LOG_LEVEL_FILTER 控制详细程度。你可以在编译时设置它为一个匹配 LevelFilter 名称的字符串。如果变量未设置或名称不匹配,则默认使用 LevelFilter::Info

$ HERMIT_LOG_LEVEL_FILTER=Debug cargo build -Z build-std=core,alloc,panic_abort --target x86_64-unknown-none-hermitkernel

致谢

libhermit-rs 以下教程和软件发行版中提取

  1. Philipp Oppermann 的 优秀博客系列
  2. 由Erik Kidd开发的toyos-rs,这是Philipp Opermann内核的扩展。
  3. 基于Rust的教学操作系统eduOS-rs

HermitCore的Emoji由EmojiOne免费提供。

许可证

根据以下任意一项许可证授权:

供您选择。

贡献

除非您明确声明,否则任何您有意提交以包含在作品中的贡献(根据Apache-2.0许可证定义),均应按上述方式双许可,不附加任何额外的条款或条件。

libhermit-rs正在GitHub上开发GitHub。创建您自己的分支,向我们发送pull请求,并在Slack上与我们聊天。

依赖项

~5MB
~70K SLoC