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