*-unknown-hermit
层级:3
Hermit 微内核 目标允许将您的应用程序编译成自包含的、专门的微内核映像,这些映像可以在小型虚拟机中运行。
目前可用的目标三元组
x86_64-unknown-hermit
aarch64-unknown-hermit
riscv64gc-unknown-hermit
目标维护者
- Stefan Lankes (@stlankes)
- Martin Kröning (@mkroening)
要求
这些目标仅支持交叉编译。这些目标支持 std。
在为该目标构建二进制文件时,Hermit 微内核将从头开始构建。应用程序开发人员自己专门化目标并设置相应的期望。
Hermit 目标遵循 Linux 的 extern "C"
调用约定。
Hermit 二进制文件采用 ELF 格式。
构建目标
您可以通过将目标添加到 config.toml
中的 target
列表中来构建支持这些目标的 Rust。要运行 Hermit 构建脚本,您还需要启用您的主机目标。构建脚本依赖于 llvm-tools
,二进制文件使用 rust-lld
链接,因此也必须启用它们。
[build]
build-stage = 1
target = [
"<HOST_TARGET>",
"x86_64-unknown-hermit",
"aarch64-unknown-hermit",
"riscv64gc-unknown-hermit",
]
[rust]
lld = true
llvm-tools = true
构建 Rust 程序
Rust 尚未为这些目标提供预编译的工件。要为这些目标编译,您需要启用目标构建 Rust(请参阅上面的“构建目标”),或者使用 build-std
或类似方法构建您自己的 core
副本。
可以通过遵循我们入门应用程序 rusty-demo 中的教程来构建 Rust 程序。
测试
这些目标支持以自包含微内核映像的形式运行二进制文件。这些映像可以由 Hermit 的 加载器 或虚拟机管理程序 (Uhyve) 链式加载。QEMU 可用于在任何架构上使用加载器启动 Hermit 二进制文件。这些目标不支持运行 Rust 测试套件。
交叉编译工具链和 C 代码
这些目标尚不支持同时使用 C 代码和 Rust 代码。