*-unknown-hermit

层级:3

Hermit 微内核 目标允许将您的应用程序编译成自包含的、专门的微内核映像,这些映像可以在小型虚拟机中运行。

目前可用的目标三元组

  • x86_64-unknown-hermit
  • aarch64-unknown-hermit
  • riscv64gc-unknown-hermit

目标维护者

要求

这些目标仅支持交叉编译。这些目标支持 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 代码。