微软正在开发基于 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++ 中,可以获得指针,并且它是基于对象的。但这与我关于数据和语法的思考不同,我认为数据结构是对象的集合,而对象的集合则是生命周期。 因此,通过在对象的所有权级别获得所有权,我们就可以更接近人们正在使用的抽象级别,它使我们能够构建数据结构而不会超出安全范围。”

相关文章
|
1月前
|
Rust 安全 Java
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第27天】Rust语言以其独特的特性和优势在编程领域迅速崛起。本文介绍Rust的核心特性,如所有权系统和强大的并发处理能力,以及其性能和安全性优势。通过实战示例,如“Hello, World!”和线程编程,帮助读者快速入门Rust。
59 1
|
1月前
|
Rust 安全 编译器
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第26天】Rust语言诞生于2006年,由Mozilla公司的Graydon Hoare发起。作为一门系统编程语言,Rust专注于安全和高性能。通过所有权系统和生命周期管理,Rust在编译期就能消除内存泄漏等问题,适用于操作系统、嵌入式系统等高可靠性场景。
59 2
|
2月前
|
Rust 安全 开发工具
探索 Rust:系统编程语言的新纪元
【10月更文挑战第17天】介绍了 Rust 语言的核心特性,如内存安全、强大的并发编程模型和接近 C/C++ 的性能。文章还涵盖了 Rust 的开发工具,如 Cargo 和 Rustup,以及其在业界的应用,包括微软 Azure 和 Firefox 浏览器。Rust 正在成为系统编程领域的新星,为开发者带来高性能和安全性。
|
2月前
|
Rust 资源调度 安全
为什么使用 Rust over C++ 进行 IoT 解决方案开发
为什么使用 Rust over C++ 进行 IoT 解决方案开发
77 7
|
2月前
|
Rust 安全 Java
软件工程师,是时候了解下Rust编程语言了
2024年年初,美国政府发布了一份网络安全报告,呼吁软件开发人员停止使用容易出现内存安全漏洞的编程语言,比如:C和C++,转而使用内存安全的编程语言。这份报告由美国网络空间总监办公室 (ONCD) 发布,旨在落实美国总统拜登的网络安全战略,目标是“保护网络空间的基石”。 内存安全指的是程序在访问内存时,能够避免出现错误和漏洞,比如:缓冲区溢出、野指针等。Java由于其运行时错误检测机制,被认为是一种内存安全的语言。然而,C和C++允许直接操作内存地址,并且缺乏边界检查,容易出现内存安全问题。
79 10
|
3月前
|
Rust 安全 Java
探索 Rust:系统编程语言的新纪元
Rust 是一种由 Mozilla 研究院开发的开源系统编程语言,以其内存安全、高性能和现代并发工具著称,已连续多年被评为 Stack Overflow 最受喜爱的编程语言。Rust 通过所有权系统和借用检查等机制确保内存安全,并具备无垃圾回收、强大类型系统及高效并发编程特性。它广泛应用于系统级应用、WebAssembly、区块链技术和游戏开发等领域。Rust 提供丰富的学习资源和开发工具,包括官方文档、书籍、Cargo 包管理器和活跃社区支持,正逐渐成为系统编程领域的新力量。
|
4月前
|
数据采集 Rust 安全
Rust在网络爬虫中的应用与实践:探索内存安全与并发处理的奥秘
【8月更文挑战第31天】网络爬虫是自动化程序,用于从互联网抓取数据。随着互联网的发展,构建高效、安全的爬虫成为热点。Rust语言凭借内存安全和高性能特点,在此领域展现出巨大潜力。本文探讨Rust如何通过所有权、借用及生命周期机制保障内存安全;利用`async/await`模型和`tokio`运行时处理并发请求;借助WebAssembly技术处理动态内容;并使用`reqwest`和`js-sys`库解析CSS和JavaScript,确保代码的安全性和可维护性。未来,Rust将在网络爬虫领域扮演更重要角色。
85 1
|
4月前
|
Rust 安全 JavaScript
探索Rust在系统编程领域的前景:虚拟机和编译器开发的新篇章
【8月更文挑战第31天】在系统编程领域,性能与安全性至关重要。Rust作为一种新兴语言,凭借其独特的内存安全和并发特性,正逐渐成为虚拟机和编译器开发的首选。本文通过案例分析,探讨Rust在这些领域的应用,例如Facebook的Compiler VM (CVM)项目和实验性的JavaScript JIT编译器Mithril。Rust的静态类型系统和所有权模型确保了高性能和安全性,而其强大的包管理和库生态则简化了虚拟机的开发。随着Rust社区的不断成熟,预计未来将有更多基于Rust的创新项目涌现,推动系统编程的发展。对于追求高性能和安全性的开发者而言,掌握Rust将成为一个重要战略方向。
85 1
|
4月前
|
Rust 安全 程序员
Rust 语言的防错机制太惊人了!安全编码从此不再是难题,快来一探究竟!
【8月更文挑战第31天】《安全编码原则:Rust 语言中的防错机制》探讨了代码安全的重要性,并详细介绍了Rust语言如何通过内存安全模型、所有权与借用规则等特性,在编译阶段检测并阻止潜在错误,如缓冲区溢出和悬空指针。文章还讨论了类型安全、边界检查等其他安全特性,并提出了遵循不可变引用、避免裸指针及充分测试等实用编码原则,以进一步提升代码质量和安全性。随着Rust在软件开发中的应用日益广泛,掌握其安全编码原则变得尤为重要。
64 0
|
4月前
|
Rust 安全 算法
揭秘Rust语言如何重塑区块链安全:打造坚不可摧的分布式账本新篇章!
【8月更文挑战第31天】自比特币诞生以来,区块链技术凭借其去中心化和不可篡改的特点备受关注。为了应对安全性挑战,Rust 语言凭借其内存安全特性逐渐成为区块链开发的优选。本文探讨了 Rust 如何助力区块链实现更安全的分布式账本。通过示例展示了 Rust 在避免内存泄漏、空指针引用及数据竞争等方面的优势,预示着 Rust 在高性能、高安全性需求的区块链应用中拥有广阔前景。
103 1