- SignalDesk2小时前
InfoWorld Microsoft doubles down on Rust Microsoft has promoted the Rust programming language to Tier-1 status internally and begun integrating it with the Microsoft Visual C++ tool chain for Windows development. Est. reading time: 7 minutes [!quote]+ 微软已将 Rust 编程语言在内部提升为一级编程语言,并开始将其与用于 Windows 开发的 Microsoft Visual C++ 工具链集成。 多年来,我们一直在观察微软如何开发平台以及如何向外部用户推出技术,有一点很明确:对微软内部来说重要的任何事情,很快就会对任何在 Windows 或 Azure 上构建应用程序的人变得重要。 从内部工具向外部工具的转变,通常表现为 Visual Studio 和 Visual Studio Code 中的新功能。这些功能通常在Microsoft内部已经使用多年,现在已经准备好在你自己的软件中立即使用。我们以前见过很多次类似情况,比如在C#和TypeScript的开发中。 Microsoft的一级编程语言 C# 和 TypeScript ,就像之前的 C++ 一样,是 Microsoft 内部称之为一级语言的类型。这种地位依赖于从编辑器到编译器的完整工具链支持;通过原生SDK和优化库与Windows和Azure集成;以及符合Microsoft内部软件开发生命周期要求。当你为十亿用户发布软件时,这些附加功能不是可选的,而是必不可少的。 现在,Tier-1俱乐部多了一位新成员: Rust语言 。这并不令人意外,因为Azure的首席技术官Mark Russinovich已经谈到了他们组织对Rust的承诺,以及 Rust的内存安全功能 是Microsoft安全战略中的关键组成部分。此外,Microsoft 是 Rust 基金会的创始成员,并在 Rust 的 Windows 工具和作为 Microsoft 构建平台一部分的 Rust 编译器上进行了重大投资。现在,Rust 在 Microsoft 内部享有一流的开发工具和工作流程。 Rust基金会 网站上最近发布的一篇文章 详细介绍了Microsoft如何努力将Rust与现有的Microsoft Visual C++(MSVC)平台集成。这种方式将使Microsoft能够确保博客文章所称的“语言间无缝互操作性”,Rust会继承Visual C++的特性。使用 Visual C++ 配合 Rust 可以让 Rust 构建从驱动程序到内核本身的低层 Windows 服务。 我们已经在 Windows版的Coreutils 中看到了这一点,Coreutils是对核心UNIX命令的Rust重新实现。Coreutils 允许你在 Windows 终端中使用某些 UNIX 命令,方便在 Windows 和 WSL(Windows Subsystem for Linux)托管的 Linux 发行版之间切换。现在 Rust 已经突破了 Tier-1 门槛,我们可以期待看到更多基于 Rust 的 Windows 开发者工具,在避免内存泄漏的同时,我们能够访问底层功能。 秘诀:一款新的Rust代码生成器 用 Rust 交付生产级 Windows 软件的一个关键是为 Rust 编译器 rustc 开发一个新的 代码生成工具 。RUSTC 设计用于使用不同的代码生成后端,超越默认 的 LLVM 。已经有适用于 GCC 和 Cranelift 的变体。如果你还没听说过Cranelift,它是 字节码联盟 的代码生成器,作为 wasmtime 框架的一部分使用。添加新的代码生成器就是构建一个连接 Rust 编译器 API 的工具,获取其字节码输出,生成原生代码,并传递给你选择的构建流水线。 这就是Microsoft rustc_codegen_utc工具的作用。它设计为与现有的MSVC协议栈兼容,使Rust能够访问成熟、经过充分测试、经过验证的Windows开发平台部分,而无需修改代码(兼容性已内置)。这直接连接到Visual C++编译器的后端,该编译器由Microsoft的构建系统整合,用于处理混合代码和库的复杂项目。 Microsoft称这个后端为UTC,代表 通用元叠编译器(Universal Tuple Compiler )。不过你在任何地方都看不到这个名字;实际代码是DLL,C2.DLL。代码生成并交付为 。OBJ文件,然后可以传递给MSVC链接器,并作为二进制可执行文件交付。这使得 Rust 工具能够利用 Microsoft 在编译器和构建工具上数十年积累的努力。Microsoft无需重复这些工作,确保现有的安全和韧性功能延续到Rust编译器链。而且最终生成的代码与经过同一后端传递的C和C++代码兼容。 只管理一个编译器后端也能降低支持 Rust 的成本,无需运行两个可能相互不同步、与 Windows SDK 和内核开发不同步的编译团队。减少Rust的经济影响将加快任何过渡进程,同时支持Rust与C++应用结合的长期混合交付。 这种方法也使Microsoft的Rust开发与使用GCC和LLVM编译器的平台相提并论,这些平台已经能利用Rust的GCC和Clang后端,利用对Linux和macOS应用开发的投资。无论你最终针对哪个平台,用Rust开发的代码都能获得相同的互操作性能力。 Microsoft Rust 工具,适合我们其他人 不幸的是,rustc_codegen_utc目前只能内部使用,而不像其他Rust编译器代码生成工具,这些都是开源项目。Microsoft将其描述为“生产准备”,并且被超过一百个Microsoft Rust项目使用——这很好地反映了Redmond采用Rust的规模。目前隐藏的 Rust 工具并不止于此,Microsoft 完整的 Rust 工具链还包含了核心 rustc 编译器的构建,这些都是标准库。 这并不意味着rustc_codegen_utc不会降临到我们其他人身上。以往经验表明,它以及其他 Rust 工具无疑都会对 Visual Studio 或 Visual Studio Code 进行重大更新。然而,时间点总是难以预测。即使 Microsoft 内部运行的工具非常适合外部开发者,要让它覆盖全球,还需要更多工具,包括语言服务器和 IntelliSense 支持,以及与 Visual Studio 调试器平台的完全集成。Microsoft办公室之外的代码构建还有更多内容,我们无法使用他们的定制构建工具。 在 Rust 编译器论坛的讨论 中,Microsoft 表示将首先将其测试和后端基础设施工作上游至更广泛的 Rust 项目中。这意味着公开发布可能还需要一段时间,但也表明开源项目显然已进入Microsoft的视野范围。公开rustc_codegen_utc很重要——采用Rust构建第三方设备驱动应有助于提升PC、服务器和云虚拟机的稳定性,降低安全风险。 2 个帖子 - 2 位参与者 阅读完整话题
- 情报分类:服务器与云资源
- 分类依据:内容涉及服务器、云资源或网络线路
- 信息来源:服务器 / LINUX DO - 最新话题
- 发布时间:2026/10/2 17:15:04
- 暂无回复