Rust 语言虽然以编译时内存安全著称,但在通过 FFI(外部函数接口)调用 C 语言库时,往往不得不跨越“不安全”边界,信任 C 代码不会破坏内存,这成为系统安全的隐患。近日,技术博主 Mikael Brockman 撰文提出“extern fil-C”概念,旨在解决这一遗留代码治理难题。Fil-C 是一种对 C/C++ 代码进行再编译的技术,它在保留原有逻辑的基础上,引入了能力安全、运行时检查和并发垃圾回收机制,使内存违规行为触发 Panic 而非成为安全漏洞。作者建议 Rust 引入对 Fil-C ABI 的原生支持,自动生成安全的 Rust 包装器,从而实现跨语言边界的完全内存安全。在这种构想下,遗留的 C 代码将处于安全监管之下,虽因运行时检查导致性能下降,但这提供了合理的经济激励:先用 Fil-C 保证旧代码的安全,随后逐步将高性能需求的“热点”模块重写为 Rust 以消除性能开销。文章指出,filnix 项目已成功将 Fil-C 集成到 Nix 包管理器中,支持 100 多个包的重编译,为该方案提供了工具链基础。同时,Zig 语言也在推进类似的内存安全 ABI 设计。该提议不仅是技术层面的创新,更意在推动 Rust、C/C++、Zig 及 Nix 社区的深度合作,共同构建跨语言的内存安全防御体系。
事件分析
核心观点:让 C 代码跑在 Rust 的安全监管下,不仅能解决遗留代码的内存顽疾,更为系统级软件的安全迭代指明了“存量安全,增量提效”的务实路径。
原文链接:Hacker News

评论前必须登录!
立即登录 注册