此前,微软表示正探索将 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 很快将会开源。

微软正在开发基于Rust的安全编程语言相关推荐

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

    此前,微软表示正探索将 Rust 作为 C 和 C++ 的安全替代方案,并且也对外展示了使用 Rust 重写 Windows 组件的体验,根据微软的说法,Rust 是一种从根本上考虑安全性的编程语言, ...

  2. 基于c的语言开发,基于CC++等高级编程语言开发电子系统的设计自动化系统.doc

    基于CC等高级编程语言开发电子系统的设计自动化系统 基于CC++等高级编程语言开发电子系统的设计自动化系统 摘 要:当前电子系统设计自动化技术已广泛地应用于各个领域,随着科技的发展,对电子系统设计自动 ...

  3. C、C++ 不得宠,微软正开发新的编程语言!

    76 年迭代与更新,编程语言界,谁主沉浮? 在六百多种编程语言中,对于开发者而言,其主观印象中或只有几种主流的编程语言,如 Java.C.C++.C#.新贵 Python 等,而之所以它们能够成为主流 ...

  4. 《安富莱嵌入式周报》第278期:基于RUST编程语言RTOS,固态继电器芯片,微软发布物联网组件框架,支持多款蜂窝,LoRa和WiFi芯片工业物联网4.0书籍

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  5. 基于Rust的Web开发,actix的基本使用

    基于Rust的Web开发,actix的基本使用 rust-web 环境搭建 url路径参数传递 get请求参数传递 post请求表单参数传递 post请求Json参数传递 rust-web Rust语 ...

  6. Warp:一款融资 23000000 美元,基于 Rust 开发、支持 GPU 加速的 21 世纪终端工具...

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! Warp 是一个完全原生的.GPU 加速的基于 Rust 开发的终端工具,速度非常快,完全从头重新设计,Warp ...

  7. CodeFx: 微软一站式开发技术框架解决方案 2009-7-30 新增sample code简介

    微软一站式开发技术框架解决方案 2009年7月30号更新: http://cfx.codeplex.com/Wiki/View.aspx?title=All-In-One%20Code%20Frame ...

  8. 选择 Go 还是 Rust?CloudWeGo-Volo 基于 Rust 语言的探索实践

    本文整理自 CloudWeGo 开源一周年技术沙龙活动中字节跳动基础架构服务框架资深研发工程师吴迪的演讲分享,技术沙龙主题为<字节高性能开源微服务框架:CloudWeGo>. 本文将从以下 ...

  9. NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用

    场景 NuGet NuGet(读作New Get)是用于微软.NET开发平台的软件包管理器,是一个Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework ...

最新文章

  1. 跨模态学习在三维语义分割领域适应中的应用
  2. 赛门铁克卸载工具_神奇的安卓恶意软件 xHelper:自卸载且无法删除
  3. 开多个bitset和bitset的基本使用
  4. Leet Code OJ 88. Merge Sorted Array [Difficulty: Easy]
  5. ZOJ - 3591 NIM
  6. 软件测试模型-敏捷模型
  7. [Windows]win10时间同步错误的解决方法
  8. DenseNet解析
  9. 什么软件可以测试QQ特别关心,qq特别关心查询工具
  10. 国足2-0击败菲律宾,重获出线主动权,下次对战叙利亚做了哪些准备?
  11. Python 网络编程
  12. 游戏服务器经常被DDOS攻击应该怎么办?
  13. 安装并使用EVE模拟器
  14. 企业上云业务系统上云是怎么回事儿?
  15. html中scr作用,车用尿素在SCR系统中的作用讲解?
  16. Microsoft Word 实用功能
  17. 普通人要赚钱,真的需要换一换方法了
  18. linux cred管理
  19. C++ 常用的STL库
  20. 反向跟单——越亏越喜欢

热门文章

  1. 增加FiroFox3对迅雷的支持
  2. 计算机专业单元测试卷答案,银保监会考试题库:计算机类模拟试题练习(六)答案...
  3. 国内是否可以安装alexa_Alexa可以听到您无法听到的命令,哪些黑客可以利用
  4. BZOJ1823:[JSOI2010]满汉全席——题解
  5. 电脑内部录音教程Virtual Audio Cable使用教程
  6. linux下简单的备份的脚本 2 【转】
  7. pb 动态改变DW的WHERE子句
  8. paip.提升用户体验--提升java的热部署热更新能力
  9. 放弃winform的窗体吧,改用html作界面,桌面应用程序UI的新的开发方式。
  10. WPF 实现截屏控件之移动(二)(仿微信)