c++能帮我改改吗?

76 年迭代与更新,编程语言界,谁主沉浮?

在六百多种编程语言中,对于开发者而言,其主观印象中或只有几种主流的编程语言,如 Java、C、C++、C#、新贵 Python 等,而之所以它们能够成为主流,软件开发生态必是其中不可或缺的一个重要部分。

以最通用的编程语言之一 C# 为例,作为类型安全、面向对象的编程语言,C# 可以良好地运行在 .NET 框架运行时环境中。

随着其优势的逐渐显现,微软作为背后最重要的推动者之一,全面将其运用于数据库、Web 服务、游戏、移动应用程序、服务器应用程序等场景中,由此也吸引了无数开发者加入其生态构建。

除此之外,一直以来,微软也是 C++、C 编程语言的生态发展的重要推手。

如今,微软是否会为另一个编程语言——Rust,以及类似于该语言且是微软最新开发的 Verona 的生态带来积极地影响力,我们将拭目以待。

犹记得在 Quora 上,曾有网友发帖求教“开发 Windows 10 用了哪种编程语言?”

Windows 10 与 Windows BCL 与一些相关库和框架通常都是用 C# 编写的,但它们也只不过是带有几座 C++ 小岛的 C 汪洋大海的一栗,它们自不同的部门,代码并不属于 Windows 源码树。

由此可见,占据全球桌面操作系统龙头老大的 Windows 其内部结构错综复杂,运用的编程语言也远远不止一种。

而如今,除了 C、C++、C# 等主流编程语言之外,微软还宣布,正在探索使用Mozilla 主导开发的通用、编译型编程语言 Rust 语言来作为 C、C++ 和其他语言的替代方案;

与此同时,微软也正在研发类似于 Rust 的新的编程语言——Verona,不过,微软采取该两种策略的最终目的只有一个,就是希望以此来加固 Windows 10 的安全性。

之所以大动篇幅地想要在安全上面有所改进与提升,必是曾在这个地方跌倒过。

事实上,确实如此。此前据微软官方博客报道,自 2004 年以来,微软安全响应中心(MSRC)对所有微软安全漏洞报告进行了分类,从中发现,所有微软年度补丁中约有 70% 是针对内存安全漏洞的修复。

根据深入地调查,我们发现这些漏洞是由开发者无意中在其 C、C++ 代码中插入内容损坏错误引起的。

微软每年修复的 CVE 漏洞中约有 70% 是内存安全问题

在清晰地认知这一点后,微软也开始了寻找更安全的编程语言之路。

在探索伊始,微软熟知有几种语言在一定程度上可以被用来防止内存损坏漏洞,如 C#。

但令人无奈的是,像 C++ 这类的编程语言在某些情况下又是必不可少的,毕竟其在运行的速度、内存和磁盘占用的空间上均有优势,除了以上,C++ 还可以预测执行。

对此,两者是否可以合二为一,即是否可以运用 .NET、C# 之类的语言来保证所有内存安全,再加上 C++ 所具备的效率。

综合之下,想要满足这些条件,素来以“安全、并发、实用”为设计准则的 Rust 或是一个最佳的选择。对此,微软安全部门也认可道,Rust 是一种从根本上考虑安全性的编程语言,它像 C、C++ 一样也有一个最小的可选“运行时”;

此外,它的标准库依赖于 libc,但标准库也是可选的,因此在没有操作系统的平台上运行也是可能的。

不过,世界上没有足够安全的操作系统,当然也不会有完美无瑕疵的编程语言。在基于 Rust 完善 Windows 系统安全之际,MSRC 也发现该语言缺乏与 C++ 的一流互操作性,以及与现有 Microsoft 工具的互操作性。

对此,据外媒 ZDNet 报道,微软研究人员 Matthew Parkinson 在近日的一次演讲中对外透露,微软正在开发类似于 Rust 的新编程语言——Verona。

“内存安全”是编码框架的术语之一,可帮助保护内存空间免受恶意软件的滥用。微软希望借助 Verona 项目推动在安全方面的工作以关闭这种攻击媒介。此前,有不少业界人士表示,微软的 Vernoa 项目计划可能只是一个无济于事的实验。

MemGC 是指 IE 和  Edge 浏览器上的内存垃圾回收器,它解决了标准浏览器功能(称为文档对象模型(DOM))中的漏洞。

开发者可以通过免费使用,能在 IE 中找到利用 DOM 引擎中的内存管理方法。然后,微软引入了 MemGC,它是 DOM 的保守 GC。它针对这种非常特殊的漏洞样式,从根本上消除了它作为攻击媒介。”

除了以上,Matthew Parkinson 也一直在钻研一个可能引起其产品客户共鸣的问题:“我们将如何构建最安全的产品?如何应对遗留问题?我们不能想着仅仅丢弃已有的东西,而是思考可以在更安全的系统中构建什么。”

基于这样的信念,Parkinson 表示,“如果想要隔离,并精简遗留的部分代码,以使攻击者的利用代码无法逃逸出来,那么在语言设计该有何创新?”

这就是微软最新的“安全基础结构编程” ——Verona 语言 ,据了解,这一项目将很快“开源”。

对于微软而言,其当前面临的挑战是应对广泛的“应用程序范围”,如从用于桌面应用程序的 C# 到用于 Exchange 的 C 或 C#、ASP.NET、Azure 和设备驱动程序,再到内存管理和启动加载器等底层 Windows 组件,以及 Windows 内核硬件抽象层(HAL)。

Matthew Parkinson 表示:“执行内存管理确实很困难。如果有任意并发突变,那么,临时内存安全性将非常困难。”

此外,Matthew Parkinson 还介绍了 Verona 的设计思路,“Verona 的所有权模型是基于对象组的,而不是像 Rust 那样基于单个对象的所有权模型。

在 C ++ 中,开发者可以获得指针,并且它是基于对象的,并且几乎是每个对象。不过,这和我关于数据和语法的思考不同,我认为数据结构是对象的集合,而对象的集合则是生命周期。

“因此,通过对象的所有权级别来获得所有权,我们就可以更接近人们正在使用的抽象级别,它使我们能够构建数据结构而不会超出安全范围。”

那么,Verona 究竟是否会为 Windows 的安全性带来突破性的进展,我们将拭目以待。而在此同时,不少网友也纷纷感叹道:

一定是 Rust 本身不够好,宁愿自己重写,也不愿参与一起开发让 Rust 更好;

放出这消息的是 Microsoft Research ,并不是 Microsoft。就和之前为 Rust 设计 com 库的是微软安全部一样。而且研究院更多的是偏向于研究性质,指不定只是搞着实验用的;

Rust 语法很繁琐复杂,C# 是出了名的很甜的语言,MS 肯定不能忍 Rust 这啰嗦繁琐的语法,估计要推出升级版,看好。

你怎么看呢?欢迎下方留言,分享你的看法。

如果你想学习编程知识——

涉及到:C语言、C++、windows编程、网络编程、QT界面开发、Linux编程、游戏编程、黑客等等......

一个活跃、高X格、高层次的程序员编程学习殿堂

编程入门只是顺带,思维的提高才有价值!

}

Linux是一套免费使用和自由传播的操作系统,目前人们所熟知的安卓、统信UOS等都是基于该系统打造,其诞生于1991年,由Linus Torvalds林纳斯·托瓦兹发布,他也被成为Linux之父。

Linux是一套免费使用和自由传播的操作系统,目前人们所熟知的安卓、统信UOS等都是基于该系统打造,其诞生于1991年,由Linus Torvalds林纳斯·托瓦兹发布,他也被成为Linux之父。

据悉,该系统基于C语言编写,这是一种非常简单、便捷的语言,能在仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

但却有不少网友认为C语言太过老旧、低级,希望Linus Torvalds能使用C++语言对Linux的内核进行升级。

对此,近期有海外媒体在对 Linus Torvalds的采访中,也向其表示:“有网友认为应该使用C++而不是Rust开发Linux Kernel内核”,但Linus却对此嗤之以鼻。

报道称,Linus Torvalds认为 C++ 是一门很烂的语言,并没有解决当前 C 语言开发内核的许多问题。且C++ 解决了所有不该解决的错误问题,那些说用 C++ 重写 Linux 内核的人都太无知了。

据了解,C++是C语言的继承者,它囊括几乎所有C语言能做到的,并且还能做到许多C语言不能胜任的场景,但是由于过于复杂,且比较耗资源,所以导致许多开发者并不喜欢采用C++语言编写。 

}

我要回帖

更多关于 过能改归于无的意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信