Rust的安全性和稳健型

非凸科技
• 阅读 447

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

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