美国国防部建议将C代码转换为Rust——而且是用AI
原文中文,约1500字,阅读约需4分钟。
📝
内容提要
美国国防部高级研究计划局(DARPA)正在开发 TRACTOR,一个将旧 C 代码自动转换为 Rust 代码的工具,以加快向内存安全编程语言的过渡,提高软件安全性。
🔎
延伸解读
TRACTOR 项目的目标与挑战
DARPA 的 TRACTOR 项目旨在利用 AI 自动将旧 C 代码转换为 Rust,以提升软件内存安全。然而,这一转换面临显著技术挑战:LLM 可能生成错误答案,且 C 语言允许指针运算,而 Rust 禁止指针,弥合这一差距需要超越简单转换的复杂处理。
内存安全共识与行业趋势
经过二十多年努力,软件工程界已达成共识:仅靠错误查找工具不足以解决 C/C++ 的内存安全问题。谷歌、微软等科技巨头以及美国政府均鼓励使用 Rust、C#、Go 等内存安全语言,以减少漏洞。
转换范围与限制
TRACTOR 项目目前没有转换特定代码库的具体计划,且 Linux 内核明确不在范围内,因其存在 Rust 无法解决的技术问题。这表明自动转换工具的应用可能限于特定类型的代码,而非所有遗留系统。
❓
Q&A
什么是TRACTOR工具,它的主要功能是什么?
TRACTOR是美国国防部高级研究计划局开发的工具,旨在自动将旧C代码转换为Rust代码,以提高软件的内存安全性。
为什么美国政府开始重视内存安全编程语言?
美国政府重视内存安全编程语言是因为内存安全漏洞带来的问题日益严重,促使其鼓励使用Rust等语言以提高软件安全性。
TRACTOR项目面临哪些技术挑战?
TRACTOR项目面临的技术挑战包括从C到Rust的自动转换能力和指针使用的差异。
DARPA对C/C++开发人员的看法是什么?
DARPA认为仅依靠错误查找工具不足以解决C/C++的内存安全问题,呼吁采取更多措施提高软件安全性。
科技巨头如谷歌和微软在内存安全方面采取了哪些措施?
谷歌和微软等科技巨头推广使用不需要手动内存管理的编程语言,以应对内存安全漏洞的问题。
TRACTOR项目是否有计划转换特定的代码库?
目前没有具体计划转换特定的代码库,Linux内核明确不在转换范围内。
🏷️