*-unikraft-linux-musl

层级:3

用于 Unikraft 单内核开发工具包(使用 musl)的目标。

目前可用的目标三元组

  • x86_64-unikraft-linux-musl

目标维护者

要求

这些目标仅支持交叉编译。这些目标支持 std。

Unikraft 试图表现得与 Linux 完全一样。有多少功能可用取决于各个单内核配置。例如,基本的 Unikraft + musl 配置默认不支持 poll 或网络。该功能分别需要启用 LIBPOSIX_EVENTlwIP

Unikraft 目标遵循 Linux 的 extern "C" 调用约定。

对于这些目标,rustc 不执行最终链接步骤。相反,Unikraft 构建系统将为选定的平台(例如,KVM、Linux 用户空间和 Xen)生成最终的单内核镜像。

构建目标

您可以通过将目标添加到 config.toml 中的 target 列表来构建支持这些目标的 Rust。

[build]
build-stage = 1
target = ["x86_64-unikraft-linux-musl"]

构建 Rust 程序

Rust 尚未为这些目标发布预编译的产物。要为这些目标编译,您需要构建启用这些目标的 Rust(请参阅上面的“构建目标”),或者使用 build-std 或类似方法构建您自己的 core 副本。

链接需要 KraftKit 垫片。有关更多信息,请参阅 unikraft/kraftkit#612

测试

这些目标支持以单内核镜像的形式运行二进制文件。单内核镜像的运行方式取决于具体平台(例如,KVM、Linux 用户空间和 Xen)。这些目标不支持运行 Rust 测试套件。

交叉编译工具链和 C 代码

这些目标支持 C 代码。要构建兼容的 C 代码,您必须使用与 Unikraft 构建系统针对您的特定配置相同的编译器和标志。实现这一目标的最简单方法是在构建单内核镜像时使用 Unikraft 构建系统构建 C 代码。