Rust 等内存安全语言的安全性并不优于C++?

美国国家安全局(NSA)最近发布了一份关于内存安全重要性的网络安全信息表,建议从内存不安全的编程语言(如 C/C++)转移到内存安全的编程语言(如 Rust)。 C++ 之父 Bjarne Stroustrup 博士表示,“Rust 等内存安全语言的安全性并不优于C++”。

对此,Rust社区是这样回应的: 1.Cpp之父的一些观点非常陈旧,并没意识到这些安全性大多与NSA网路安全信息并无关。

2.Stroustrup博士反复强调内存安全并不是唯一的安全类型。实际上,内存不安全是迄今为止内存不安全编程语言中安全漏洞和不稳定的最大来源,在某些情况下高达70%。这恰恰是C++最严重缺陷的领域。而Rust语言则专注于解决内存不安全的问题,而C++不强制将内存安全作为编程语言的一项功能。

3.Stroustrup博士提醒大家不要忽略Cpp30多年的进步。虽然C/C++之间可能存在30多年的分歧,但C++所谓的进步并没有涉及从C++中删除内存不安全的C功能,其中许多功能仍在普遍使用,仍使内存安全在C++中难以处理。

4.Stroustrup博士认为通过静态分析工具可以保障Cpp 内存安全,但他忽略了人性的善变。如果静态分析工具没有内置到编程语言中,它就能被跳过。认真对待内存安全的编程语言不会将其作为大多数人会忽略的可选附加组件提供,必须使用附加工具来解决语言的缺陷远非理想。

来源:觉学社

点赞
收藏

评论区

加载中...

相关推荐

Rust学习笔记#6:所有权系统

!(https://oscimg.oschina.net/oscnet/up0b8d4b9e5e3854503a73fd494cd4b53d984.JPEG)引子:段错误与内存安全在刚开始接触Rust的时候,我们就提过Rust语言的定位:Rustisasystem'sprogramminglanguagethatr

Rust开发环境搭建

1.Rust概述按照百度百科的说法,Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C类似,但是设计者想要在保证性能的同时提供更好的内存安全。Rust最初是由Mozilla研究院的GraydonHoare设计创造,然后在DaveHerman,Brend

Rust 语言风靡学术界

AWS将Rust编译器团队负责人收入麾下的新闻让开发者们再次聚焦于这门兼具安全性与高性能的编程语言。近日,著名科学期刊Nature刊登了一篇文章,表明Rust语言也正在成为学术界最受欢迎的编程语言之一。2015年,德国生物信息学家JohannesKöster曾用Python编写了一个流行的工作流管理器Snakemake。但是现

PostgreSQL 动态更新 C 语言函数

PostgreSQL对于C语言编写的函数(包括其他与C语言兼容的语言,如C、Rust等),是动态装载的,用CREATEFUNCTION创建完函数后,并不会立即装载,而是有连接建立之后,客户端第一次调用时才会进行装载,而且是装入到会话进程的内存里面去了。这时候,就算我们把.so文件删除,如果会话之前已调过一次函数的话,客户端还是

Java学习路线图

JavaJava是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立

Java是一门面向对象编程语言的理解

Java是一门面向对象编程语言。不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有:简单性面向对象分布式健壮性安全性