Rust支持进入Android基础
为了减少内存安全错误,Google宣布开放源代码版本的Android将支持将在Rust中构建的部分操作系统。
尽管可以使用托管语言(例如Java和Kotlin)编写Android上的应用程序,但这些语言不具有用于构建Android操作系统的较低级语言(例如C和C ++)的“控制性和可预测性”。
Android团队写道:“它们基于资源,具有更可预测的性能特征。对于C和C ++,开发人员负责管理内存生存期。不幸的是,这样做很容易出错,尤其是在复杂的多线程代码库中。”在博客文章中。
“ Rust通过结合使用编译时检查来强制执行对象生存期/所有权和运行时检查来确保内存访问有效,从而提供了内存安全保证。在提供与C和C ++等效的性能的同时,还可以实现这种安全性。”
就目前在Android中的情况而言,如果用C / C ++编写的进程正在处理不可靠的输入,则它会在沙盒中运行,谷歌表示这是昂贵的,并且仍然允许攻击者将安全漏洞链接在一起以利用系统。
另外,谷歌发现其内存错误的一半来自不到一年的代码,因此将Rust定位于新代码是有意义的,而不是用Rust重写操作系统。
该团队说:“即使我们重新安排Android团队中每个软件工程师的工作,重写几千万行代码也根本不可行。”
“较旧的内存错误相对罕见,有些人可能会感到惊讶,但是我们发现旧代码并不是我们最迫切需要改进的地方。随着时间的推移,发现并修复了软件错误,因此我们希望可以发现错误的数量的代码将被维护,但不会随着时间的推移而积极开发。”
Gabeldorsche是其中一种获得Rust治疗的系统,该系统被称为蓝牙的后继产品。
Android团队还谈到了尝试检测和复制内存错误以修复它们的问题。
他们写道:“对于复杂的C / C ++代码库,通常只有少数人有能力开发和审查该修补程序,即使花费大量精力来修复错误,有时这些修补程序还是不正确的。”
“当错误相对罕见时,漏洞检测是最有效的,并且可以给予危险的漏洞以紧急程度和优先权。要获得漏洞检测改进所带来的好处,我们必须优先考虑防止引入新的漏洞。”
Google说,使用Rust的好处之一是附加的约束和语言固有的检查功能,例如强制初始化变量,这可以防止Android中多达5%的安全漏洞的根本原因。
该团队说:“向Android平台添加新语言是一项艰巨的任务。需要维护工具链和依赖项,必须更新测试基础架构和工具,还需要对开发人员进行培训。”
“在过去的18个月中,我们一直在Android开源项目中添加Rust支持,并且我们将在未来几个月中共享一些早期采用者项目。”
今年早些时候,Rust从Mozilla搬到了自己的基金会。Mozilla已使用Rust构建其Servo浏览器引擎,并用85,000行Rust替换了160,000行C ++。
Mozilla最近在Firefox上运行了ThreadSanitizer,以清除浏览器代码库中剩下的C / C ++中的所有数据争用。
对于混合代码库,Mozilla担心种族在传递Rust代码时会被混淆,但仍然选择了一对纯Rust种族。
它说:“总体Rust似乎正在实现其最初的设计目标之一:允许我们安全地编写更多并发代码。”
“ WebRender和Stylo都非常大,并且普遍使用多线程,但是线程问题很少。我们确实发现的问题是实现低级且明显不安全的多线程抽象的实现中的错误-而且这些错误很容易修复。
“这与我们的许多C ++竞赛形成对比,后者经常涉及使用不清楚的语义在不同线程上随机访问事物,从而需要对代码进行非平凡的重构。”
毫不奇怪,Mozilla建议使用Rust而不是C或C ++构建任何新项目。
相关文章:
- 微软OneDrive iOS与Android版更新:已可从iOS文件App
- 微软发布OneDrive 64位版早期预览版Windows客户端
- 苹果发布macOS Big Sur 11.3开发者预览版第七个测试版
- 微软对Win10开发分支进行调整和改进 名称改为CO_RELEA
- Win10预览版更新已为屏幕网络摄像头设置测试全新选项
- Windows 10新特性再曝光 可使用Bing壁纸作桌面背景
- 微软Win10 2021 ISO镜像更新 面向Dev通道Insider会员
- 微软开发者频道发布Win10内部预览版本Build 21354更新
- 微软发布OpenJDK Microsoft Build预览版 可免费部署任
- Rust支持进入Android基础
- Windows 10 20H2版正式发布 有关开始菜单变化格外引人
- 微软发布Windows 10 KB4556799五月累积更新 重点放在
- 升级到Windows 10 Pro 1803后本地搜索将默认加载网络
- 苹果发布最新正式版iOS 14.2 系统新增100多个表情符号
- Windows 10 20H2/Version 2009更新有望今日推出
- 微软发布Windows 10 KB4598229补丁程序 自动安装到兼
- 微软推送Windows 10 KB4579311累计更新补丁 主要提升
- 苹果iOS 14系统隐藏新功能 用户可对充电提示音进行个
- EMUI11即将发布 华为Mate40系列将首发
- EMUI11正式发布 新增AI字幕功能和外语转译功能