微软正在开发基于 Rust 的安全编程语言 Verona-阿里云开发者社区

开发者社区> -技术小能手-> 正文

微软正在开发基于 Rust 的安全编程语言 Verona

简介: 微软正在开发基于 Rust 的安全编程语言 Verona
+关注继续查看

yy.png

近日在一次演讲中,谈到微软为解决相应内存问题所做的工作,微软在英国的研究人员 Matthew Parkinson 提到了微软正在开发的基于 Rust 的新编程语言,这个项目,微软内部称为“Verona"

此前,微软表示正探索将 Rust 作为 C 和 C++ 的安全替代方案,并且也对外展示了使用 Rust 重写 Windows 组件的体验,根据微软的说法,Rust 是一种从根本上考虑安全性的编程语言,他们将尝试使用 Rust 重写各种产品,因为在过去的十年里,微软 70% 以上的安全补丁都提供了与内存相关的错误,而 Rust 正是解决这个问题的“良药”。

演讲中,Matthew 先是分享了微软在 MemGC(Memory Garbage Collector)上所做的工作,MemGC 是指 IE 和 Edge 浏览器上的内存垃圾回收器,它解决了标准浏览器一个特性——文档对象模型(DOM)中的漏洞,DOM 以树结构表述了 HTML 文档内容。

之后他由此牵出另一个问题:如何构建最安全的产品?不仅仅丢弃已有的东西,而要考虑可以在更加安全的系统中构建一些什么。他介绍了微软正在使用 Rust 重写某些组件,并提出:“如果我们想要隔离,并精简遗留代码,以使攻击者的利用代码无法逃逸出来,那么如何设计语言呢?”

Matthew 提出了微软正在开发的基于 Rust 的新编程语言 Verona,他表示这是首次讨论该项目,微软宣称这门语言是用于“安全的基础设施编程 - safe infrastructure programming”,Verona 项目很“快”会开源。

Matthew 介绍,Verona 由 C# 项目经理 Mads Torgensen 与 微软剑桥研究院研究软件工程师 Juliana Franco 维护。

微软面临的挑战是应对宽广的应用领域,范围从 C# 桌面应用到 C 或 C# Exchange、ASP.NET、Azure 与设备驱动程序,再到内存管理和启动加载器等底层 Windows 组件,以及 Windows 内核硬件抽象层(HAL,hardware abstraction layer)。

“执行内存管理确实很困难,如果有任意并发突变,则临时内存安全性将非常困难”,Matthew 介绍了 Verona 的设计思路:“Verona 的所有权模型是基于对象组的,而不是像 Rust 那样基于单个对象的所有权模型。在 C++ 中,可以获得指针,并且它是基于对象的。但这与我关于数据和语法的思考不同,我认为数据结构是对象的集合,而对象的集合则是生命周期。 因此,通过在对象的所有权级别获得所有权,我们就可以更接近人们正在使用的抽象级别,它使我们能够构建数据结构而不会超出安全范围。”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.9 总结
与此同时,读者还学习了一些基本的计算机编程概念,如编译器、解释器、块、语句和变量。随着后续章节的学习,读者将会对这些概念越来越清晰。只要读者在本章成功地运行了Saluton程序,就可以进入下一章。
1231 0
《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.10 问与答
问:在Java程序的每行中插入适当数量的空格有多重要? 答:对计算机而言,这完全不重要。空格无疑会让阅读计算机程序的人受益,但Java编译器对空格的数量并不关心。在编写Saluton程序时,你也可以不使用空格或Tab键进行缩进,而且它也能成功编译。
1123 0
《Web安全之机器学习入门》一 1.3 国内外网络安全形势
本节书摘来自华章出版社《Web安全之机器学习入门》一 书中的第1章,第1.3节,作者:刘焱,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1829 0
《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.12 练习
如果想更多地探索本章介绍的主题,可完成下列练习。 将英文短语“Hello world!”翻译成其他语言,翻译时可以使用谷歌翻译,编写一个程序,让计算机用法语、意大利语或葡萄牙语向世界问候。
1349 0
《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 第6章 使用字符串来交流 6.1 在字符串中存储文本
Java程序将字符串作为与用户交流的主要方式。字符串是一组文本,可以包含字母、数字、标点符号及其他字符。本章将介绍如何在Java程序中使用字符串。
1136 0
1727
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载