Redian新闻
>
谷歌宣布支持使用Rust开发Chromium

谷歌宣布支持使用Rust开发Chromium

公众号新闻

作者 | Thomas Claburn
译者 | 张健欣
策划 | Tina

谷歌计划在其开源浏览器项目 Chromium 中支持使用第三方 Rust 库,这是对 Rust 编程语言及其安全特性的一次重大认可。

在 1 月份发布的一篇博文中,来自 Chrome 安全团队的 Dana Jansens 表示,谷歌的软件工程师已经开始致力于将 Rust 工具链应用于其构建系统。希望在年底之前将 Rust 代码包含到 Chrome 二进制文件中。

“我们将 Rust 引入 Chromium 的目标是提供一种更简单(无 IPC)且更安全(总体上包含更少的复杂 C++ 代码,同时在沙盒中也没有内存安全漏洞)的方法来满足二个原则,从而加快开发速度(需要写的代码更少、设计文档更少、安全审查更少)并且提升 Chrome 的安全性(增加了没有内存安全漏洞的代码的行数,降低了代码的错误密度)”,Jansens 解释道。

Rust 在不写成不安全的情况下,可以避免内存安全缺陷,而内存安全缺陷占 Chromium 中发现的严重安全漏洞的 70%。Rust 语言不能保证代码没有漏洞,但它可以保证潜在的缺陷要少得多。

值得一提的是,谷歌也一直致力于一种语言来提升 C++ 中的内存安全,创建者 Bjarne Stroustrup 坚称当符合 ISO C++ 标准并遵守静态分析器所强制执行的特定标准时,这种语言是内存安全的。

Jansens 感谢 Mozilla 一直支持 Rust 的开发直到它成熟并吸引了足够的外部支持来建立其自己的基础。Mozilla 长期以来一直得到谷歌的资金支持,作为回报,谷歌成为 Mozilla 的火狐浏览器的默认搜索引擎。但由于谷歌浏览器侵蚀了火狐浏览器的使用率,因此 Mozilla 正寻求其它资金来源。

Jansens 解释道,Rust 和 C++ 是 Chromium 的基础,可以通过 cxx、autocxx bindgen、cbindgen、diplomat 和 crubit 等工具进行交互。这些工具提供了一种安全的方法来从 C++ 代码调用 Rust 代码,反过来也一样。但是由于这两种语言各自的设计不同,它们之间的互操作性也存在限制。

Jansens 解释道,“例如,Rust 通过静态分析来保证临时内存安全。这个静态分析依赖两个输入:生存周期(推断或显式写入)和互斥可变性。后者与 Chromium 的大部分 C++ 的编写方式不兼容。”

Jansens 观察到,由于 Rust 和 C++ 遵循不同的规则,因此两者之间的互操作很容易出错。这就是为什么谷歌采取了一种谨慎方案的原因。

最初,谷歌想支持 C++ 到 Rust 的单项互操作性来控制依赖图的形状。Jansens 解释道,“Rust 不能依赖于 C++,因此它无法理解 C++ 类型和函数,除非通过依赖注入。这样的话,Rust 就不能在任意 C++ 代码中调用,只能在从 C++ 通过 API 传递的函数中调用。”

目前,Chromium 只能通过第三方库来暴露给 Rust。

尽管如此,随着谷歌对 crubit 等工具的开发和维护来提高 C++ 和 Rust 之间的双向互操作性,其对 Rust 的不断深化投入有望大大丰富 Rust 包生态系统。

谷歌已经将 Rust 引入安卓生态系统。微软 Azure CTO Mark Russinovich 呼吁在新项目中使用 Rust 而不是 C++。Linux 内核已经增加了 Rust 支持。甚至是不愿意使用其不能控制的技术的苹果公司都已经一直在用 Rust。®

作者介绍:

Thomas Claburn 位于旧金山湾区,为 The Register 提供软件开发、DevOps、计算机安全等服务。

原文链接:

Google polishes Chromium code with a layer of Rust(https://www.theregister.com/2023/01/12/google_chromium_rust)

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

18.3 万美元offer到手!ChatGPT 通过谷歌 L3 面试:留给谷歌的时间不多了

我被微服务坑掉了CTO职位

微信全面支持“小号”;员工购买公司福利房,被裁员后遭巨额索赔;16岁少年孤身前往深圳腾讯总部解封QQ账号|Q资讯

现代软件越来越大、越来越慢、越来越烂!还有救吗?

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Linux 游戏崛起了?微软《我的世界》已支持谷歌 ChromeOSGoogle 宣布支持使用 Rust 开发 Chromium印度政府“铁拳”之下,谷歌宣布Google Play在印度允许第三方支付AI画图又双叒革命了?华人小伙开发ControlNet让出图更可控!篮球女明星格里纳回家了,还有多少人没有“回家”?OBS Studio即将支持WebRTC,采用Rust实现Cloudflare用Rust重写Nginx C模块,构建没有Nginx的未来ChatGPT 版 Bing 开启测试申请,谷歌 Chrome 用户被拒在门外接着谈成功的人生。。。从联合国对各国超额死亡人数的统计看各国抗疫的成效存储量扩大千倍,Discord 是如何使用Rust语言和ScyllaDB数据库来改进架构的?Linux 6.1正式发布,带有MGLRU、初始Rust支持硅谷寒冬加速蔓延!谷歌宣布裁员1.2万人莫奈笔下的雪景科技|谷歌宣布,人工智能ChatGPT竞品Bard,在未来几周向公众开放马斯克将开发ChatGPT竞品/iPhone 16 Pro有望采用屏下Face ID/300W秒充来了Rust 语言年度回顾:全球企业如何采用 Rust的?Safari宣布支持声明式Shadow DOMFish Shell计划采用Rust重写谷歌宣布一系列新的Android功能一文详解Prompt学习和微调(Prompt Learning & Prompt Tuning)谷歌宣布疯狂裁员!30万加拿大人即将失业!ChatGPT整合进必应,向谷歌宣战!微软联手OpenAI引爆搜索引擎革命提速40倍!bug更少了,我们用Rust重写了自家项目硬核观察 #905 谷歌宣布了挑战 ChatGPT 的 AI 服务 BardClickPrompt:一站式 Prompt 学习、设计与运行工具(开源),支持 ChatGPT 等OPPO、小米、Vivo宣布支持第三方应用数据互相迁移;华为Mate X3和P60系列价格公布;恒大汽车面临停产风险……谷歌宣布裁员1.2万人!科技裁员潮,加州议员要求H1B换工作延长120天!?!谷歌宣布继续赞助慕尼黑工大120万美元!與香港盲人輔導會的一段緣清华硕士称大厂2万月薪践踏学历;谷歌宣布裁掉12000名员工;Meta绩效难度加码:“合格”不再是真的“合格” | AI一周资讯[聚焦]美企前景堪忧!谷歌宣布裁员1.2万人 占全球员工总数6%以调试 Rust 的方式来学习 Rust | Linux 中国15年做不好的代码搜索,用Rust重写搞定:GitHub声称能从此“改变游戏规则”谷歌宣布,所有芯片设计都已经上云
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。