微软正在开发基于 Rust 的安全编程语言
此前,微软表示正探索将 Rust 作为 C 和 C++ 的安全替代方案,并且也对外展示了使用 Rust 重写 Windows 组件的体验,根据微软的说法,Rust 是一种从根本上考虑安全性的编程语言,他们将尝试使用 Rust 重写各种产品,因为在过去的十年里,微软 70% 以上的安全补丁都提供了与内存相关的错误,而 Rust 正是解决这个问题的“良药”。
而根据 ZDNet 的报导,近日在一次演讲中,谈到微软为解决相应内存问题所做的工作,微软研究人员 Matthew Parkinson 提到了微软正在开发的基于 Rust 的新编程语言 Verona。
演讲中,Matthew 先是分享了微软在 MemGC(Memory Garbage Collector)上所做的工作,MemGC 是指 IE 和 Edge 浏览器上的内存垃圾回收器,它解决了标准浏览器一个特性——文档对象模型(DOM)中的漏洞,DOM 以树结构表述了 HTML 文档内容。
之后他由此牵出另一个问题:如何构建最安全的产品?不仅仅丢弃已有的东西,而要考虑可以在更加安全的系统中构建一些什么。他介绍了微软正在使用 Rust 重写某些组件,并提出:“如果我们想要隔离,并精简遗留代码,以使攻击者的利用代码无法逃逸出来,那么如何设计语言呢?”
Matthew 提出了微软正在开发的基于 Rust 的新编程语言 Verona,他表示这是首次讨论该项目,Verona 是用于微软“安全基础设施编程(safe infrastructure programming)”的一种新语言。
Matthew 介绍,Verona 由 C# 项目经理 Mads Torgensen 与 Microsoft Research Cambridge 研究软件工程师 Juliana Franco 维护。
微软面临的挑战是应对宽广的应用领域,范围从 C# 桌面应用到 C 或 C# Exchange、ASP.NET、Azure 与设备驱动程序,再到内存管理和启动加载器等底层 Windows 组件,以及 Windows 内核硬件抽象层(HAL,hardware abstraction layer)。
“执行内存管理确实很困难,如果有任意并发突变,则临时内存安全性将非常困难”,Matthew 介绍了 Verona 的设计思路:“Verona 的所有权模型是基于对象组的,而不是像 Rust 那样基于单个对象的所有权模型。在 C++ 中,可以获得指针,并且它是基于对象的。但这与我关于数据和语法的思考不同,我认为数据结构是对象的集合,而对象的集合则是生命周期。 因此,通过在对象的所有权级别获得所有权,我们就可以更接近人们正在使用的抽象级别,它使我们能够构建数据结构而不会超出安全范围。”
So by taking ownership at the level of ownership of objects, then we get much closer to the level of abstraction that people are using and it gives us the ability to build data structures without going outside of safety.
另外,Matthew 还表示 Verona 很快将会开源。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
易水公共组件 4.2.0 版本发布,新增重要功能
易水公共组件是基于spring security 和 spring security oauth2 上的二次开发,除了对 spring security 和 oauth2 高度可定制化的功能封装外,还集成了在日常开发过程需要经常使用的 swagger-ui 和验证码功能以及项目中必不可少的全局异常捕获功能,另外,易水公共组件还支持第三方登录功能,对单点登录(sso)功能做了一个简单的默认实现,使用用户能够快速开启 QQ 登录和微信登录能力。 本次更新内容如下: 增加spring上下文工具SpringContext,轻松操作spring上下文以及发送spring event。 移除通用公共父类BaseAware,降低代码耦合 新增输入参数处理工具InputUtil,一键处理输入参数 优化JPA操作类 一些其他的流程优化 易水通用组件主要包含以下一些常用功能: swagger-ui 文档 快速启动/关闭swagger-ui功能 支持自定义swagger-ui启动参数 支持生成离线文档 全局跨域支持 快速启动/关闭跨域功能 支持自定义跨域属性设置 全局异常捕获 包含各种基本的异常信息捕获 支...
- 下一篇
每日一博 | 万维网之父的数据主权革命
大家好,今天我和大家分享一下由万维网之父发起的一场数据主权革命。什么叫数据主权?很容易理解,现在我们的数据是把持在巨头手里的,你的微信通讯录和聊天记录都无法导出,不管是从人权角度还是从法理角度,这些数据应该都是属于你的,但是你没有控制权,SoLiD 要做的核心的一件事就是让这些数据归于用户控制。它带来了一种全新的开发范式,这个范式是啥我们接下来会有介绍。那么什么是革命?革谁的命?也非常清晰,就是革那些体大不尊的巨头的命。 <!-- more --> 本文整理自蒸汽记忆创始人谢扬在 2019 年 11 月 16 日在成都 Web 全栈大会上的演讲,内容有删改。 完整PPT 可从 Github 上查看:https://leinue.github.io/webfullstack-2019/index.html 那么在开始之前呢,我先按照惯例自我介绍下。我目前在创业,我们公司的名字叫做蒸汽记忆,取自工业革命的开始,我们想做提高社会的生产力的事情,并将全球的公开信息变成知识图谱。我们的使命是在一个身份下互联全人类的文化基因,构建全球互联的生产力平台。同时,我是 SoLiD 中文网的发...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7设置SWAP分区,小内存服务器的救世主