
在开源 Linux 虚拟化堆栈中发挥重要作用的 QEMU 处理器仿真器已经在其代码库中看到了对 Rust 编程语言开发的实验性支持。随着越来越多的 QEMU 组件被移植到这种编程语言中,以实现内存安全和其他安全优势,这种 Rust 支持继续取得良好进展。
Red Hat 的 Paolo Bonzini 周五发布了有关 QEMU 中正在进行的 Rust 使用的更新。Rust 支持目前仍处于试验阶段,但 Rust 绑定已得到改进,现在 Rust 代码中提供了更多功能。
Bonzini 将 QEMU 中当前的 Rust 状态总结为:
“总的来说,我想说进展是好的:上次更新中提到的大多数缺失功能都已修复,或者至少在接下来的几个月内有计划。
…
使用 ”–enable-rust” 构建 QEMU 时,可以在所有支持的构建平台上编译。它通过 CI 和 ”make check-unit” 运行 rust/qemu-api 的测试。”make check-qtests” 涵盖了 Rust pl011 和 HPET 设备模型,包括前者的迁移。pl011 完全使用安全代码实现(减去 migration 和 qdev 属性)。HPET 在一些小型且相当狭窄的情况下使用 unsafe。自上次更新以来,早期 bindings 代码中的一些错误已变得明显;特别是,孤立规则使得在 qemu_api crate 之外实现类变得非常困难,并且通常将 qemu_api crate 拆分为多个部分—例如,工具和仅由系统仿真器使用的部分。另一个重要的变化是 bindgen 生成的类型和 Rust 代码实际使用的结构体之间的分离。这允许为 C 和 Rust 结构单独指定 Send、Sync 或 Zeroable 等特征。
那些想要了解更多关于 QEMU 中 Rust 支持的人可以通过 QEMU 邮件列表查看状态更新。
转自 Rust Use Within The QEMU Emulator Shaping Up Well – Phoronix
Linuxeden开源社区