原文:https://www.jb51.net/article/194804.htm

这篇文章主要介绍了微软如何使用rust的,帮助大家了解c++和rust这两门编程语言的联系与区别,感兴趣的朋友可以了解下

微软拥有世界上最大的C/C++代码库之一。从Windows、Office到Azure云,微软的所有核心产品都在该代码库上运行。但因为C++不是内存安全的语言,代码库中自然频频出现内存漏洞,大量的时间被耗费在修补漏洞上。

微软自去年开始寻找用以替代的编程语言来解决内存安全问题,寻找终有所得——微软开始尝试使用Rust,并在一些情境下将其集成进代码库中。Rust是一种相对较新的编程语言,具有与C和C++相同的底层性能,并具备现代编程语言应有的功能集。

微软认为Rust颇具潜力,本文就将介绍微软将其用在产品中的方式。

用Rust重写Windows

微软虽然尚未使用Rust全面重写Windows,但正在致力于研究如何使Rust适应其生态系统。据微软估算,在推送给计算机的安全补丁中,有70%都是为了修补内存有关的漏洞,他们认为Rust可以在开发阶段捕获这些漏洞。因此,微软委托一些工程师用Rust重写Windows的部分组件,从而获取开发人员的一些意见。

虽然微软没有公开重写哪些组件,但一名工程师称,他正在针对性地改造部分“Windows的底层系统”,这体现出了微软对Rust的潜力颇具信心。微软不仅计划重写一些小的服务和Windows本地应用程序,还可能重写操作系统的核心组件。

工程师们称涉及Rust的工作“整体前景是乐观的”,但也明确指出Rust不具备C的一些重要功能,不过这些工程师们也认为有必要为Rust开发这些功能。

英特尔已经开始致力于让Rust实现与C相同的功能,微软也或将加入其中。由于Rust缺少C的一些功能,该团队发现Rust将最适用于新近开发的Windows组件。假如微软将部分代码库迁移到Rust,我也不会感到吃惊。

微软已经为Rust搭建了一个标准Windows库,它具备C++版本的所有功能;Linux也在考虑将一些内核迁移到Rust。这两大操作系统之间有可能展开竞争,看谁能最先将Rust代码投入生产。

将Rust整合进Azure服务

DeisLabs是Azure的孵化器项目之一,它致力于为Kubernetes构建工具。近来,它选取Rust来开发新产品Krustlet,允许开发者在Kubernetes中运行多个WebAssembly模块。

Kubernetes原本由Google开发,以Go语言写成。大多数工程师倾向于使用Go来为Kubernetes编写组件,DeisLabs选择Rust可谓惊人之举。

最终,这一决定似乎有所成效。虽然员工的确提到了由于Rust独特的所有权概念,转换为Rust的过程十分困难,但该团队仅用了一个月就回到了全速工作状态,他们发现需要为空值写的测试以及调试的问题都越来越少。

工程师们也对Rust的编译器印象深刻。他们称该编译器能够找到另一个项目中的安全漏洞,而Go的编译器则未能做到这一点。他们总结说,应该有更多的团队考虑在将来的工作中使用Rust,该语言可能比Go更适合Kubernetes的开发。

一种新的编程语言

不久之前,在Rust的启发下,微软开始着手调研创造自己的编程语言。该项目的负责人之一是C#的主要维护人员,因此这一编程语言似乎是另一种版本的Rust,但在语法上更类似C类编程语言。

这一语言被称为“Project Verona”,致力于在系统编程中解决内存漏洞。一些人推测ProjectVerona可能将在许多微软主要产品中投入使用,例如Windows、Xbox和Azure。

然而,微软最终仍没有实际应用ProjectVerona。微软的确声称该语言已经“完全内存安全”,但依旧选择使用Rust。Rust已经拥有了完善的社区,并且得到了Mozilla和英特尔等企业的支持。有了这些企业的合作,Rust将会更迅速地成长为更强大的语言。

凭借大型企业的支持和社区的不断发展,Rust的前途不可限量。在接下来的几个月中,即使微软计划以不同方式将Rust纳入企业中也不足为奇。Rust针对微控制器和物联网设备也进行了良好的优化,这些领域的企业有望将Rust投入使用。可以说,Rust的未来一片光明。

以上就是C++的替代:微软如何使用rust的详细内容,更多关于rust替代c++的资料请关注脚本之家其它相关文章!

C++的替代:微软如何使用rust?相关推荐

  1. 5款替代微软Visio的开源免费软件(转)

    5款替代微软Visio的开源免费软件 提到流程图和图表设计,自然会想到微软出品的Office Visio,它是一款强大的流程图设计工具.Visio并不在Office标准套装中,需要额外付费购买,这可能 ...

  2. Novell推出可替代微软的桌面应用软件包(转)

    Novell推出可替代微软的桌面应用软件包(转)[@more@]2006年05月11日 18:39 网界网 网界网消息 本周,Novell发布了Novell Open Workgroup软件包,该软件 ...

  3. 5款替代微软Visio的开源免费软件

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 5款替代 ...

  4. 替代微软txt文本编辑器_如何在Microsoft Excel中向对象添加替代文本

    替代微软txt文本编辑器 Alternative text (alt text) allows screen readers to capture the description of an obje ...

  5. 微软再推 Rust 语言免费中文教程,更香了!

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 在过去的几个月,Amazon.Facebook.微软以及谷歌等科技巨头正疯狂吸纳人才市场上的 Rust 语言程序员 ...

  6. 微软计划使用 Rust 取代 C和C+

    新智元推荐 来源:InfoQ 作者:王文婧 [新智元导读]微软近日提出,未来将使用 Rust 作为 C.C++ 以及其他编程语言的替代方案,以改善应用程序的安全性的计划. 近日,微软安全响应中心(MS ...

  7. 微软解释为什么Rust是系统编程的最佳选择

    上周,MSRC(微软安全响应中心)透露出拥抱 Rust 的打算,随后他们将这个话题扩展为一个系列,进一步阐述了使用安全的系统编程语言的的必要性,以及选择 Rust 的原因. 在该系列最新一篇文章中,M ...

  8. 微软解释为什么 Rust 是系统编程的最佳选择

    上周,MSRC(微软安全响应中心)透露出拥抱 Rust 的打算,随后他们将这个话题扩展为一个系列,进一步阐述了使用安全的系统编程语言的的必要性,以及选择 Rust 的原因. 在该系列最新一篇文章中,M ...

  9. python实现类似于visio_5款替代微软Visio的开源免费软件

    提到流程图和图表设计,自然会想到微软出品的Office Visio,它是一款强大的流程图设计工具.Visio并不在Office标准套装中,需要额外付费购买,这可能会带来某些不便.一方面,并不是所有人都 ...

  10. 替代微软SMS的好工具——Lansweeper

    lansweeper安装及使用指南 一. 软件介绍 Lansweeper是一款可以实现对WINDOWS网络里面的计算机软件.硬件以及与资产管理相关的信息收集,功能有点类似于微软的SMS(现在最新版本叫 ...

最新文章

  1. 设计模式 — 行为型模式 — 迭代器模式
  2. 搭建android开发环境注意事项1
  3. 使用日志记录功能查看PHP扩展的执行过程
  4. ASP.NET验证控件之RequiredFieldValidator
  5. 多线程-NSOperation
  6. 推荐系统 embedding 技术实践总结
  7. git和php的区别,Git与Github的有什么区别
  8. python saml2 认证实例程序demo
  9. 机器学习算法-随机森林之决策树R 代码从头暴力实现(2)
  10. HCIE-RS面试--P/A协商(超详细!)
  11. cmd 根据计算机名查ip地址_如何查找和更改Mac上的IP地址
  12. 删除数组对象 相同的值 制定数组对象
  13. Leader-Follower线程模型
  14. 什么软件测试电脑分辨率,分辨率测试卡
  15. walking机器人入门教程-应用-全景图
  16. android 音频切换分析,Android音频可视化操作
  17. Android中修改ScrollBar默认样式
  18. 一款自用的翻译小工具,开源了
  19. Amesim车辆仿真--制动匹配理论
  20. 简明教程:只需三步成功“硬刷”BIOS为SLIC 2.1完美激活Windows 7 / Vista / XP三大系统

热门文章

  1. python通过selenium爬取百度文库
  2. 【技术教程】网盘扩容技术原理+爆盘免删修复原理解析!扩容爆盘如何免删修复?
  3. metro样式开机启动菜单_如何在Windows 8中获取Metro风格的开始菜单和开始按钮
  4. oracle 12C 创建用户失败 解决方案
  5. 关于动态路由OSPF原理、报文
  6. 线代第二章 矩阵 +行列式与矩阵的区别
  7. [附源码]计算机毕业设计springboot公益组织登记与查询系统论文
  8. 双显卡(Intel+Nvidia)笔记本配置cuda开发环境
  9. [唯一分解定理]感谢ZLY讲解
  10. 从微信H5点击保存图片说起-微信图片下载