*-unikraft-linux-musl

层级:3

针对 Unikraft Unikernel 开发套件(使用 musl)的目标。

目前可用的目标三元组

  • x86_64-unikraft-linux-musl

目标维护者

要求

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

Unikraft 试图表现得与 Linux 完全一样。可用功能的多少取决于具体的 unikernel 配置。例如,基本的 Unikraft + musl 配置不支持开箱即用的 poll 或网络。该功能需要分别启用 LIBPOSIX_EVENTlwIP

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

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

构建目标

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

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

构建 Rust 程序

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

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

测试

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

交叉编译工具链和 C 代码

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