网站首页 > 技术教程 正文
微软在 Github 上发布了代码,使开发人员能够用 Rust 编写 Windows 驱动程序,这是为操作系统实现内存安全编程的关键一步。Azure 首席技术官马克-鲁西诺维奇(Mark Russinovich)在 X 上发布了该链接,并附有评论:"努力实现用 Rust 开发 Windows 驱动程序"。
这项工作可以追溯到很多年前。2019 年 7 月,微软研究院发帖称,它希望"在漏洞发生之前消除一整类漏洞",提出了内存安全语言的理由,并表示"满足这些要求的最有前途的较新系统编程语言之一是最初由 Mozilla 发明的 Rust 编程语言"。
该公司推崇 Rust,不仅因为它的内存安全,还因为它的数据竞赛安全--确保"两个或多个线程不会不同步地访问一段内存"。
2022 年,Russinovich 宣布:"现在是时候停止用 C/C++ 启动任何新项目了,在需要使用非 GC 语言的情况下使用 Rust。为了安全性和可靠性起见,业界应该宣布这些语言已被淘汰。"C# 和 Java 等 GC 或垃圾回收语言适用于商业应用,但不适合底层系统代码。
虽然 Windows主要是用 C 和 C++ 编写的。"由于各种技术和历史原因,现在大部分用户模式代码都是用C++编写的,但大部分内核代码还是用C语言编写的。"2018年,长期从事软件开发的微软软件工程师陈伟明(Raymond Chen)说,虽然此后出现了Windows 11,但在开发新版本时,操作系统并没有重写。硬件制造商为使其设备能在 Windows 中运行而使用的 Windows 驱动程序工具包,仍然是一个 C/C++ 工具包。
根据基于 Rust 的新驱动程序工具包的发布说明,其目的是同时支持 WDM(Windows 驱动程序模型)和 WDF(Windows 驱动程序框架)驱动程序。WDM 驱动程序级别较低,与操作系统紧密相连,而 WDF 驱动程序则通过框架库与系统交互。初始资源库的重点是 WDK。
说明还补充说:"该项目仍处于早期开发阶段,尚不建议用于商业用途。微软鼓励进行试验和反馈,并指出开发人员可以到资源库中的 GitHub 讨论区寻求反馈。"
一个早期问题是如何处理异常。一位开发者说:"对于 Windows 内核(以及整个操作系统)来说,结构化异常处理是 Windows 开发不可或缺的一部分,也是让 Rust 成为 Windows 内核开发现实的真正障碍。Rust 没有异常,它更倾向于使用结果变量报告可恢复的错误,而在无法恢复的错误中,它会以崩溃失败的方式退出。在内核代码中,这种崩溃是不可取的,因为它会导致系统整体崩溃。"
开发者约翰尼-肖(Johnny Shaw)引用了 Linux Torvalds 在 Linux 内核(也采用了 Rust)中的一段话:"因为内核代码不同于随机的用户空间系统工具。内存耗尽绝对不能导致中止。 它只需要导致错误返回"。托瓦尔兹认为这是一个"根本性问题"。
微软新版本库中的早期代码包括以下注释:
// FIXME: Should this trigger Bugcheck via KeBugCheckEx?
这个问题说明,在底层 Windows 代码中引入 Rust 并不仅仅是为 WDK API 添加 Rust 语言绑定那么简单。不过,最初的反应总体上是积极的。内存安全问题在 Windows 的安全性和稳定性问题中占了很大比例,因此采用 Rust 是一个可行的解决方案。
猜你喜欢
- 2024-10-03 编写NDIS类驱动时如何在LWF、NDIS协议和WFP Callouts中做选择
- 2024-10-03 小ME知识讲堂:1分钟让你了解WDM波分复用技术
- 2024-10-03 QHYCCD 经典相机回顾系列:QHY5-II系列的崛起
- 2024-10-03 基于TMS320VC5410 DSP的PCI语音卡设计
- 2024-10-03 Waves 推出实时音频流处理软件 waves sg
- 2024-10-03 一台与众不同的鼓机 Analog Rytm MKII
- 2024-10-03 ESI U22XT 音频接口驱动重大更新 ex25aux接口
- 2024-10-03 “声”而不同,时尚爱乐人的数码装备
- 2024-10-03 icon艾肯umix1008声卡驱动官方版 1.35.20
- 2024-10-03 C++大神解读视频捕获程序,VC++基于Directx开发的源代码
你 发表评论:
欢迎- 01-11关于Vmware workstation的网络设置
- 01-11使用VMware Workstation虚拟机安装Windows 10详细教程
- 01-11VMware Workstation 17.5.1 Pro for Windows & Linux - 桌面虚拟化软件
- 01-11VMware? Workstation 17 Pro软件中,如何显示 “我的计算机” 选项卡
- 01-11银河麒麟桌面操作系统安装VMware workstation pro
- 01-11VmwareWorkstation17.6安装windows7x64虚拟机后安装vmtools
- 01-11发布VMware Workstation Pro 17.0稳定版
- 01-11VMware Workstation安装ESXi 7安装篇
- 最近发表
-
- 关于Vmware workstation的网络设置
- 使用VMware Workstation虚拟机安装Windows 10详细教程
- VMware Workstation 17.5.1 Pro for Windows & Linux - 桌面虚拟化软件
- VMware? Workstation 17 Pro软件中,如何显示 “我的计算机” 选项卡
- 银河麒麟桌面操作系统安装VMware workstation pro
- VmwareWorkstation17.6安装windows7x64虚拟机后安装vmtools
- 发布VMware Workstation Pro 17.0稳定版
- VMware Workstation安装ESXi 7安装篇
- 如何安装虚拟机(vmware workstation)
- VMware Workstation之网络配置
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)