加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

安卓系统支持rust语言

发布时间:2021-04-19 14:19:58 所属栏目:传媒 来源:互联网
导读:系统底层需要像C、C++、Rust这样的编程语言,这些语言的控制性和预测性比较好,可以提供对底层系统资源和硬件的访问控制,而且在提供相同的可预测的性能特征的基础上需要的资源很少。 对C和C++,开发者要负责管理内存的全生命周期,因此很容易出现错误,尤其

系统底层需要像C、C++、Rust这样的编程语言,这些语言的控制性和预测性比较好,可以提供对底层系统资源和硬件的访问控制,而且在提供相同的可预测的性能特征的基础上需要的资源很少。

对C和C++,开发者要负责管理内存的全生命周期,因此很容易出现错误,尤其是在复杂和多线程的代码库中。Rust语言通过使用编译时检查和运行时检查来确保内存的安全。编译时检查来进行对象生命周期和所有权的检查,通过运行时检查来确保内存访问是有效的。而且性能不差于C和C++。

C和C++语言并不提供安全保证,需要进行隔离。所有的安卓进程都是沙箱的,并遵循Rule of 2规则,即给定3个选项,开发者智能从中选择2个。卓来说,这意味着如果代码是用C或C++写的,在分析不可靠的输入时就会有非常严格的限制和没有特权的沙箱。由于遵循Rule of 2规则会带来很多的限制,因此会降低安全漏洞的严重性和危险性。但是沙箱并不是轻量级的,由于IPC和其他的内存使用带来额外的消耗和延迟。沙箱并不能完全消除代码中的漏洞,攻击者可以链接其他漏洞来发起攻击。

Rust这类内存安全的语言可以帮助解决这些问题:

  •  可以降低代码中漏洞的密度,提高当前沙箱的有效性;
  •  通过引入安全和轻量级的新特征来减少对沙箱的需求。

Rust融合了许多其他语言的特征,可以改善代码的正确性:

  • 内存安全性:通过编译时检查和运行时检查来确保内存安全;
  •  数据并发:防止数据竞争条件,用户可以用Rust编写高效的、线程安全的代码;
  •  更具表现力的系统:帮助预防逻辑编程漏洞,如新型封装、枚举变种等;
  •  引用和变量默认是不可变的:帮助开发人员遵循最小特权安全原则。虽然C++有const,但是往往很少使用,而且不一致。相比之下,Rust 编译器· 可以通过为从未变异的可变值提供警告,避免误变注释。
  •  标准库中更好的安全处理:在结果中封装可能失败的调用,引发编译器要求用户检查没有返回所需值的函数的错误。这可以预防Rage Against the Cage这样的漏洞。
  •  初始化:要求所有的变量在使用前都进行初始化。未初始化的内存漏洞是安卓系统中3~5%的安全漏洞的根本原因。Rust要求所有的变量在使用前初始化为其类型的合法成员,避免初始化为不安全值的情况。
  •  更安全的整数处理:Rust 默认启用了溢出处理,避免溢出相关的漏洞产生。此外,所有的整数类型转化都是显式转化,开发者不能在分配变量或进行其他类型的算数运算时的函数调用中进行转化。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读