作者 | Tino Caer

译者 | Arvin,责编 | 屠敏

头图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

以下为译文:

Microsoft拥有世界上最大的C / C ++代码库之一。从Windows、Office到Azure云,微软的所有核心产品都在它上面运行。由于C ++不是一种内存安全的语言,因此在其代码库中会弹出很多内存错误,并且需要花费大量时间来修复它们。

去年,Microsoft开始研究可以帮助解决其内存安全问题的替代编程语言。作为这些努力的结果,Microsoft已开始尝试在某些情况下将Rust集成到其代码库中。

Rust是一种相对较新的编程语言,它具有与C和C ++相同的底层性能,并具有现代编程语言所期望的功能集。微软认为Rust具有潜力,下述就是他们将Rust集成到产品中的方式。

在Rust中重写Windows

其实,他们还没有在Rust中重写所有Windows;但是,他们感兴趣的是Rust将如何适应其生态系统。微软认为,70%的安全补丁都是为了修复内存相关的漏洞,并相信Rust在开发阶段就能捕捉到这些漏洞。因此,他们让一些工程师在Rust中重写Windows的一些组件,以获得一些开发人员的意见。

不幸的是,微软一直对要重写的组件名称保密,但是,一位工程师描述说他正在开发“ 低级的Windows系统”。这显示了微软对Rust潜力的信任。他们不只是想重写一些小型服务或本地Windows应用程序,还可能重写操作系统的核心组件。

工程师将他们在Rust上的工作描述为“总体上是积极的”,但确实注意到Rust中缺少C语言中可用的一些重要功能。然而,工程师们认为帮助开发Rust的这些特性是值得的。英特尔已经开始着手让Rust的功能与C语言不相上下,微软可以加入这项工作。

由于Rust缺少C语言的某些功能,因此该团队发现Rust最适合新的或最近开发的Windows组件。如果Microsoft完全致力于将其部分代码库迁移到Rust,也就不足为奇了。他们已经在为Rust构建标准的Windows库,该库将具有C ++版本的所有功能。Linux也正在考虑将其一些内核迁移到Rust,因此我对两个操作系统之间可能展开的激烈竞争不会感到震惊,究竟哪种操作系统可以将Rust代码首先投入生产,让我们拭目以待吧。

将Rust整合到Azure服务中

从Azure孵化器诞生的DeisLabs是一个专注于为Kubernetes提供构建工具的初创公司,他们最近选择了Rust来构建其新产品Krustlet,这是一项允许开发者在Kubernetes中运行多个WebAssembly模块的服务。Kubernetes由Google开发并用Go编写。因此,大多数工程师在编写其Kubernetes组件时往往会倾向于使用Go,因此DeisLabs选择Rust是相当令人惊讶的。

最终,这个决定似乎有了回报。尽管员工确实注意到向Rust过渡很困难-注意到Rust的所有权理念的独特性-但团队仅用了一个月的时间就恢复了完整的工作效率。他们发现为空值编写的测试更少,调试问题也更少。工程师们也对Rust的编译器印象深刻,他们声称该编译器可以抓住他们另一个项目中Go编译器没有发现的安全漏洞。他们的结论是,未来应该有更多的团队考虑使用Rust,它比Go更适合开发Kubernetes。

一种新的编程语言

不久前,微软曾研究过如何在Rust的启发下创建自己的编程语言。该项目的负责人之一是C#的主要维护者,因此该语言似乎是Rust的一种版本,其语法与编程语言的C系列更加相似。这种语言称为Project Verona,旨在解决系统编程中与内存相关的错误。一些人猜测,Project Verona最终可能会进入微软的很多主要产品中,比如Windows、Xbox和Azure。

目前微软仍然没有任何关于Project Verona的用例。尽管他们声称该语言已经达到“完全内存安全”。但是,Microsoft仍然赞成使用Rust。它已经有了社区,并得到了Mozilla和Intel等公司的支持。与这些公司合作将使Rust变得更强大更快。

Rust的未来非常光明。在大公司的支持下,它的社区在不断壮大,它的发展前景十分广阔。在接下来的几个月中,如果听到微软计划以不同方式将Rust纳入其公司的规划中也就不足为奇了。Rust还针对微控制器和物联网设备进行了优化,我们期待听到Rust在这些领域中的用例。

原文:https://medium.com/the-innovation/how-microsoft-is-adopting-rust-e0f8816566ba

本文为 CSDN 翻译,转载请注明来源出处。

更多精彩推荐
☞急缺芯片,高通是华为的唯一选择吗?
☞征战云时代,为什么安全是关键命题?
☞人均月薪 7.5 万,腾讯 Q2 成绩单来了,网友酸了?
☞为什么气象站和 AI 都测不准天气?
☞2019年中国IaaS公有云市场排名及份额出炉
☞马小峰:金融科技界的区块链博士
点分享点点赞点在看

继C / C ++之后,微软如何全面采用 Rust 的?相关推荐

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

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

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

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

  3. 2 年增长 1 万亿!继苹果之后,微软市值也突破 2 万亿美元

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 2018 年,苹果市值首次突破 1 万亿美元大关,随后又在去年 8  月成为美国第一家市值过 2 万亿美元的公司. 2 年时间,苹果就实 ...

  4. 微软尽然要采用谷歌Chromium开源项目开发Edge浏览器,你怎么看?

    目前微软已经确认要在未来的浏览器开发中采用谷歌的Chromium内核,而且还会降Edge浏览器功能移植过来,这意味着原来所坚持的EdgeHTML内核可能会被放弃,而且微软准备基于Chromium内核开 ...

  5. jquery过滤时采用比较_微软,诺基亚采用jQuery

    jquery过滤时采用比较 Over on the ASP.net weblogs, Microsoft has just announced that jQuery will ship with f ...

  6. ie浏览器修复_继IE之后,微软要彻底放弃它们了...

    2020年,微软的动作有点大! 先是微软放弃IE浏览器. 8月17日微软发布声明:微软将于一年后停止所有微软365(原名Office 365)办公应用中对IE 11浏览器的支持. 微软这几年一直大力推 ...

  7. 继Facebook之后,微软正式宣布:全面进军「元宇宙」

    今日话题: 在一年一度的Ignite大会上,微软正式宣布进军「元宇宙」,并将旗下混合现实会议平台Mesh融入到Teams中.CEO纳德拉表示Xbox游戏平台将来也要加入「元宇宙」.现在,微软市值突破2 ...

  8. 微软Skype开始采用全新图标 淘汰云朵图案

    微软本月早些时候公布了Skype的重新设计,新的外观具有类似Snapchat的功能,另外,微软也重新设计了Skype图标,以全新设计的分开图案取代了过去的云朵图案.Skype过去一直使用这个标志性的图 ...

  9. NPM采用Rust以消除性能瓶颈

    Npam的指数级增长促使npm工程团队从Node.js切换到Rust,以处理那些将成为性能瓶颈的CPU绑定任务.最近的一份白皮书概述了在Rust中开发这个新服务,以及将其投入生产一年多的经验. 大部分 ...

最新文章

  1. 刚刚,DeepMind被IJCAI授予杰出成就奖,因为他家把AlphaGo Zero做成了暖心的新垣结衣?
  2. 使用密钥验证方式登录linux系统
  3. Oracle性能监控脚本
  4. 【网页前端设计Front end】JavaScript教程.上(看不懂你来打我)
  5. (经典)Hibernate的一对多关系映射(三)
  6. OVS+Docker
  7. c++ 的makefile文件实例
  8. Android官方开发文档Training系列课程中文版:OpenGL绘图之环境配置
  9. pandas时间序列与自回归ARIMA模型
  10. 电大有计算机教程吗,电大教程 计算机概述.ppt
  11. Android 热敏打印机打印二维码
  12. python测验6_Python语言程序设计 - 测验6: 组合数据类型 (第6周)
  13. 网络安全界巨擘 王江民
  14. PyQt4设计UI界面并添加简单功能【python+pyqt4+opencv】
  15. .Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
  16. python 学习笔记1
  17. hiho1718(LIS)
  18. 服务器系统wlanapi,wlanapi.dll
  19. auto js实现自动截屏
  20. JAVA学习笔记---第一天(李兴华)

热门文章

  1. linux-查找某目录下包含关键字内容的文件
  2. 沉淀,再出发:docker的原理浅析
  3. 全局变量的使用【C++/Qt】
  4. NoSQL Redis的学习笔记
  5. HDU 1262 寻找素数对 模拟题
  6. 跟闺密逛街 越逛越穷
  7. leetcode 1154 一年中的第几天
  8. pyqt5 python2.7_python2.7 安装pyqt5
  9. 内联滴灌行业调研报告 - 市场现状分析与发展前景预测
  10. docker mysql8.0挂载_Docker安装MySQL 8.0.17 并挂载数据及配置文件,修改时区