用 Rust 开发 Linux 驱动?内核维护者表示愿意接受
我们曾报道过微软有意选择 Rust 作为 C 和 C++ 的安全替代方案,Rust 是由 Mozilla 主导的系统编程语言,专注于安全、速度和并发,它最初是 Mozilla 的一个研究项目,用于更安全、更快速地重写 Firefox 浏览器。微软表示之所以考虑 Rust,除了它能够以内存安全的方式编写系统级程序外,性能、精细的控制以及健康发展的社区都是他们青睐 Rust 的原因。
如上图所示,微软每年约有 70% 的漏洞仍然是内存安全问题,如果这些程序用 Rust 编写,那么这 70% 的安全问题很可能就不存在。
微软展示了拥抱 Rust 的意向,那么另一边的 Linux 对于 Rust 又是怎样的想法呢?
开发者就此询问了 Linux 内核稳定版维护者 Greg Kroah-Hartman,Greg 表示愿意接受用 Rust 开发 Linux 内核的驱动程序,但前提是:1)以可选的方式存在,而不是默认启用,这样其他开发者就不需要使用 Rust 去构建内核;2)Rust 驱动需要体现出比 C 驱动具有优势,比如针对内核 API 的安全封装器。
不过底下有开发者指出了目前使用 Rust 实现驱动程序(https://github.com/fishinabarrel/linux-kernel-module-rust)的不便之处:
- Linux 内核不保证 API/ABI 的稳定性,因此很难设计通用的 Rust 接口。至少几乎不可能使它适用于所有版本的 Linux。
- 许多 C 语言特性没有相应的 Rust 支持。例如,构造具有位域(bitfield)的结构体似乎是无法实现的。
当然大多数开发者都同意 Rust 是一门很有前途的用于内核编程的语言,不过这需要大家的努力才能实现。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Windows 10 添加云重置功能,从云中重装系统
上个月,我们曾发过一篇“云下载 Windows 10”的相关报道,未来的 Windows 10 系统更新可能可以让人们使用存储在云中的系统镜像来重新安装操作系统。当时向内部人员更新提供了两个重新安装 Windows 的选项:1)云下载;2)本地重装。 最近微软透露,它正在尝试一种通过云重置 Windows 10 PC 的方法(Reset this PC),让用户使用从云端下载的 Windows 文件重置他们的 PC,而不是使用本地恢复镜像。 以前,重新安装需要将软件备份副本存储在驱动器或恢复分区中。在 Windows 10 1507 中,增加了从现有 Windows 文件运行本地重新安装和构建新 Windows 安装的选项,而不需要其他的磁盘空间来存储 Windows 的压缩备份副本。 现在,作为 Windows 10 Insider Preview18970 的一部分,该公司增加了通过 Wi-Fi 进行本地重新安装的选项。Dona Sarkar 和 Brandon LeBlanc 在微软的一篇博客中说: 我们听到的反馈意见是,你们中的一些人更喜欢使用高速互联网连接,通过下载 Wind...
- 下一篇
每日一博 | IoT 时代:Wi-Fi “配网”技术剖析总结
导读 近年来,物联网市场竞争激烈,从物联网平台厂商,设备生产商,到服务提供商,都在涌入这片红海。预计到2020年,全球联网设备数量将达到260亿个,年复合增长率达到20%;全球联网设备带来的数据将达到44ZB,这一数据将是2012年的22倍,年复合增长率48%。 物联网时代对网络的需求 物联网系统层次 物联网系统从架构上划分为三个层次:感知层、网络层、应用层: 感知层:解决的是人类世界和物理世界的数据获取问题,由各种传感器以及传感器网关构成。该层被认为是物联网的核心层,主要是物品标识和信息的智能采集,它由基本的感应器件(例如RFID标签和读写器、各类传感器、摄像头、GPS、二维码标签和识读器等基本标识和传感器件组成)以及感应器组成的网络(例如RFID网络、传感器网络等)两大部分组成。该层的核心技术包括低速和中高速短距离传输技术、自组织组网技术、协同信息处理技术,传感器网络中间件技术等,涉及的核心产品包括传感器、电子标签、传感器节点、无线路由器、无线网关等。 传输层:也被称为网络层,解决的是感知层所获得的数据的接入和传输功能,是进行信息交换、传递的数据通路。物联网传输层分为有线通信传输层...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题