微软正在开发基于 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++ 中,可以获得指针,并且它是基于对象的。但这与我关于数据和语法的思考不同,我认为数据结构是对象的集合,而对象的集合则是生命周期。 因此,通过在对象的所有权级别获得所有权,我们就可以更接近人们正在使用的抽象级别,它使我们能够构建数据结构而不会超出安全范围。”
vault-client - HashiCorp Vault的Rust客户端库
Vault客户端是HashiCorp Vault的一个本地客户端库
Repo: https://github.com/Metaswitch/vault-client
enoki - Enoki:现代处理器架构上的结构化向量化和差异化
Enoki是一个C++
模板库,它支持数字码的自动转换,例如,创建在CPU或GPU上运行的算法的“宽”矢量化变体,或通过透明的正向/反向模式自动求差来计算梯度。
Repo:https://github.com/mitsuba-renderer/enoki
Rust search extension - 快速搜索 Rust 文档的浏览器插件
- 快速在浏览器地址栏检索 Rust 文档、crate 和错误码的插件,支持 Chrome/Firefox。
- 搜索基本类型和模块
- 搜索Structs, Traits和Enums
- 搜索函数, 方法和宏
- 搜索 https://crates.io 上的 crate
- 搜索 Compile Error Index 上的错误代码
- 支持离线模式,可以搜索本地 Rust 文档(rustup docs --std)
- 支持 Chrome 和 Firefox
使用方式 只需要在浏览器地址栏输入关键字 rs 然后敲击 Tab 或者 Space 键就能激活查询功能。
Repo:https://github.com/Folyd/rust-search-extension
From 日报小组 月泉
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅:
评论区
写评论还没有评论