Canonical 赞助将 C 代码用 AI 翻译为 Rust —— 开源软件向内存安全发起进攻

持续追踪 : IA vs libristes : la fracture s'installe dans l'open source· 连载 6/9

开发与编程 Aug 24, 2026加入收藏

Canonical 赞助将 C 代码用 AI 翻译为 Rust —— 开源软件向内存安全发起进攻

Ubuntu 正在推进一项由人工智能辅助的 C 到 Rust 的自动转换项目。目标:生成真正安全的 Rust 代码,而不仅仅是到处充斥着 `unsafe` 但能编译的代码。

具体案例

从一个经典的缓冲区溢出漏洞开始:一个用 C 编写的系统守护进程中的缓冲区溢出。虽然可以修复,但六个月后可能会以不同的形式再次出现,因为 C 无法从机制上保证此类错误的消除。现在想象一下,将这段代码用 Rust 重写——编译器会让这种漏洞从结构上不可能出现。这就是 Canonical(Ubuntu 的开发商)资助的目标:借助 AI 自动将数百万行 C 代码转换为安全的 Rust

为什么这并非易事

C 到 Rust 的自动翻译已经存在——工具 c2rust 已经做了多年。问题在于:它生成的 Rust 代码语法上有效,但充满 unsafe。这从内存安全的角度来看完全抵消了其意义。我们只是改变了语法,却没有改变安全保障。

Canonical 支持的项目旨在生成符合 Rust 习惯用法且安全的代码:代码利用 Rust 的类型系统(所有权、借用、生命周期)来在编译时表达并验证安全不变性。这在根本上很困难,因为 C 和 Rust 的思维模式不同:

// C - 根据使用上下文,可能正确或存在 use-after-free
char* get_value(struct Map* m, const char* key) {
 return hashmap_get(m, key); // 如果 m 被修改,指针可能无效
}
// Rust - 编译器禁止在借用期间修改 m
fn get_value<'a>(m: &'a HashMap<&str, String>, key: &str) -> Option<&'a String> {
 m.get(key) // 生命周期的有效性由编译器保证
}

AI 必须理解这两个函数在机械上并不等价——且一个简单的翻译会生成 unsafe 块,而非真正的迁移。

潜在含义:AI 在开源中的下一步

这里直接回应了动荡软件自由界的争论。Linus Torvalds 已为 Linux 内核做出裁决:AI 辅助的贡献是受欢迎的,反对者可以分叉。Canonical 遵循同样的务实逻辑:AI 作为大规模现代化的工具,而非对完整性的威胁

真正的问题在于人工验证:谁来审查生成的 Rust 代码?谁来保证原始 C 代码的语义(包括边界行为)被保留?一个能生成 95% 优秀 Rust 但 5% 微妙错误代码的工具,比一个 100% unsafe 的工具更危险——因为它提供了虚假的安全保证

期待的结果

如果该项目兑现承诺,将大大加速系统层向 Rust 的迁移——这一趋势已初见端倪(Android、Windows、Linux 内核、OpenSSL)。Canonical 瞄准 Ubuntu,这将直接影响数百万生产环境服务器的底层代码。

值得记住

Canonical 支持大规模 AI 驱动的 C 到 Rust 翻译,目标是生成符合 Rust 习惯用法且安全的代码——而非仅像 c2rust 那样语法上有效。关键在于:证明 AI 能理解内存语义,而非仅仅语法。如果你维护关键系统代码,请关注这一进展。

Resources

本文由人工智能撰写,并经人工编辑审核。

我们的编辑部
Your Linux server, as a desktop.
TermalOSSponsored
Ops, reimagined

Your Linux server, as a desktop.

Agentless SSH monitoring, a full remote desktop and an AI ops copilot — no agents to install, everything stays on your machine.

SSHSelf-hostedAI Ops
Get early access
这篇文章对您有帮助吗?

4 人赞了这篇文章

K
Kaito KuroganeSenior Dev Writer
Senior polyvalent developer, backend Go + frontend TS, open source contributor.
分享:
Your Linux server, as a desktop.
TermalOSSponsored
Ops, reimagined

Your Linux server, as a desktop.

Agentless SSH monitoring, a full remote desktop and an AI ops copilot — no agents to install, everything stays on your machine.

Get early access
LIVERadio Geek Kitsune
Tap to listen, the same sound for everyone
0··
// Schedule
// all stations
// share a track →
主题
浏览
信息