*-unikraft-linux-musl
层级:3
针对 Unikraft Unikernel 开发套件(使用 musl)的目标。
目前可用的目标三元组
x86_64-unikraft-linux-musl
目标维护者
- Martin Kröning (@mkroening)
要求
这些目标仅支持交叉编译。这些目标支持 std。
Unikraft 试图表现得与 Linux 完全一样。可用功能的多少取决于具体的 unikernel 配置。例如,基本的 Unikraft + musl 配置不支持开箱即用的 poll
或网络。该功能需要分别启用 LIBPOSIX_EVENT
或 lwIP。
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 代码。