Rust的安全性和稳健型

非凸科技
• 阅读 269

Rust是围绕安全性和稳健性而设计的。也就是,安全代码是不使用unsafe关键字的代码,

声音代码是不会导致内存损坏或其他未定义行为的代码。“未定义行为”(UB) 在 C、C++ 和 Rust 等语言中具有特定含义,不同于“未指定”或“实现定义”行为。

Rust 最重要的特性之一是承诺所有安全代码都是可靠的。但是当 unsafe涉及到代码时,这个承诺可能会被打破,而且unsafe代码几乎总是在某个地方涉及到。

数据结构喜欢Vec并且在其实现中HashMap有unsafe代码,就像任何与File::open操作系统对话的函数一样。这就引出了一个常见的问题:“如果 Rust 不能保证所有安全代码都是可靠的,它怎么能成为内存安全的语言呢?”

Rust有一个被认为是未定义的行为列表。声音函数是保持以下不变性的函数:任何只调用声音函数且不包含任何其他unsafe代码的程序都不能提交UB。

不直接或间接使用代码的函数unsafe保证是可靠的,一个不unsafe直接使用任何代码而至调用其他声音函数的函数没根据定义也是声音,但是unsafe直接使用代码的函数和模块可能不健全,不健全函数的调用者也可能是不健全。模块的安全、公共API中的任何不健全都是错误的。

参考来源:https://jacko.io/safety_and_soundness.html

点赞
收藏
评论区
推荐文章
企业级低代码 | 灵魂拷问:低代码真的安全可靠吗? | 飞速创软
在一篇题为《低代码和无代码开发的4个安全问题》的文章中,作者ChrisHughes表示,“通过允许企业中更多的人开发应用程序,低代码开发会产生新的漏洞,并在安全性方面隐藏问题。”我并不同意这个说法。具体来说,低代码或无代码解决方案本身并没有什么安全或不安全的地方。所有应用程序开发框架、系统、流程和策略(手动或自动)的安全性与企业为确保它们安全所做的投资
飞速低代码 | 低代码开发会带来更多安全问题吗?一文了解
​低代码不会带来额外的安全风险,也不会带来更多的运营风险或无法管理的成本,关键是要妥善处理。低代码开发目前已被大量应用,其本身并没有什么安全或不安全一说,所有应用程序开发框架、系统、流程和策略(手动或自动)的安全性取决于企业自身。企业不应该阻止使用低代码工具,而是应引入企业级低代码开发工具,让用户能够了解其工作原理,并鼓励使用这类工具。同时,确保这些工具的安
Stella981 Stella981
2年前
Rust开发环境搭建
1.Rust概述按照百度百科的说法,Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C类似,但是设计者想要在保证性能的同时提供更好的内存安全。Rust最初是由Mozilla研究院的GraydonHoare设计创造,然后在DaveHerman,Brend
Stella981 Stella981
2年前
Rust语言开发基础(六)基础语法
一、变量的定义和使用其它常见的编程语言对变量的定义通常是通过声明类型和使用关键new来创建一个变量,但Rust不是,Rust使用关键字let。1\.变量绑定通过let实现fnmain(){letx5;}2\.变量可以是一种模式,自动匹配。let(x,y)(1,2);3\.
非凸科技 非凸科技
1年前
Rust、Go 和 Swift 在性能和并发性方面有何差异?
Rust是一种系统编程语言,旨在快速、安全和并发。其性能令人印象深刻,可以生成快速高效的机器代码。
京东云开发者 京东云开发者
10个月前
文盘Rust -- FFI 浅尝 | 京东云技术团队
rustFFI是rust与其他语言互调的桥梁,通过FFIrust可以有效继承C语言的历史资产。本期通过几个例子来聊聊rust与C语言交互的具体步骤。
京东云开发者 京东云开发者
6个月前
设计模式-单例模式概述 | 京东云技术团队
我们常把23种经典的设计模式分为三类:创建型、结构型、行为型,其中创建型设计模式主要解决“对象的创建”问题,将创建和使用代码解耦,结构型设计模式主要解决“类或对象的组合或组装”问题,将不同功能代码解耦,行为型设计模式主要解决“类或对象之间的交互”问题,将不
非凸科技 非凸科技
1年前
Rust开发者大会,内容早知道!
在量化交易中,总会发现有一部分「回撤」是在策略意料之外的,如进程闪退、上下游出问题等。那么,Rust在量化场景中的应用,相较于C,对回撤产生了什么样的影响呢?非凸科技量化策略负责人将从“自身系统稳定”与“高效应对风险”两个方面进行全面解答,欢迎锁定「本周日14:00」—分论坛「Rust商业实践」!时间:7月31日(本周日)参会:http://rust
非凸科技 非凸科技
1年前
用Rust编写的Linux内核GPU驱动程序,或将到来
外媒Phoronix报道,AsahiLinix的核心开发者AsahiLina正在探索用Rust编程语言编写该DRM内核GPU驱动程序的可行性。如果成功了,这将是第一个用Rust语言编写的Linux内核GPU驱动程序。鉴于目前尚未有Rust编写的实际驱动程序代码,驱动程序的Rust实现有几种可能性:1.完全使用R
非凸科技 非凸科技
1年前
Rust 等内存安全语言的安全性并不优于C++?
美国国家安全局(NSA)最近发布了一份关于内存安全重要性的网络安全信息表,建议从内存不安全的编程语言(如C/C)转移到内存安全的编程语言(如Rust)。C之父BjarneStroustrup博士表示,“Rust等内存安全语言的安全性并不优于C”