Android 平台中的 Rust,实现内存安全

2022-07-07 13:07:21 浏览数 (1)

安卓平台上代码的正确性是每个安卓版本的安全性、稳定性和质量的首要任务。C 和 C 中的内存安全错误仍然是最难解决的不正确性来源,一直占 Android 高严重度安全漏洞的 70% 左右。

安卓开源项目现在支持Rust来开发操作系统本身。Rust 通过使用编译时检查来强制对象生存期/所有权和运行时检查来确保内存访问是有效的,从而提供内存安全保证。

Rust 对一系列其他语言方面进行了现代化改造,从而提高了代码的正确性:

1.内存安全 -通过编译器和运行时检查的组合来强制执行内存安全。

2.数据并发 -防止数据竞争。可以轻松编写高效、线程安全的代码。

3.更具表现力的类型系统 -有助于防止逻辑编程错误(例如新类型包装器、带有内容的枚举变体)。

4.引用和变量在默认情况下是不可变的——Rust 编译器通过为从不变异的可变值提供警告来帮助避免杂散的可变性注释。

5.标准库中更好的错误处理 -在 Result 中包装可能失败的调用,这导致编译器要求用户检查失败,即使是不返回所需值的函数。

6.初始化 -要求在使用前初始化所有变量,从而避免无意中初始化为不安全值的问题。

7.更安全的整数处理 -Rust 调试版本会启用溢出清理,鼓励程序员指定 wrapping_add 如果他们真的打算计算溢出,或者如果他们不打算溢出则指定 saturating_add。

0 人点赞