Linux之父发话:Rust即将出现在Linux内核中

最新更新时间:2022-06-22来源: phoronix关键字:Linux  Rust 手机看文章 扫描二维码
随时随地手机看文章

今天早上,Linus Torvalds 在 Linux 基金会开源峰会上发言称,Rust 有可能很快就会出现在 Linux 的内核中,最快是下一个内核周期。


Linus Torvalds 和 Dirk Hohndel 在开源峰会上的常规演讲 / 对话中,Linus 评论了内核中的 Rust 编程语言代码。


Torvalds 称,他们希望很快能将 Rust 编写的代码合并到内核中,甚至 Rust 可能出现在下一个版本中,即 Linux 5.20。


目前,还没有任何 Rust for Linux 拉取请求被发送或合并,但是用于基础设施、一些基本的示例驱动程序中时,内核的 Rust 启动代码已经开始稳定下来。


上个月看到最新发布的 Rust Linux 内核补丁使更多功能成型,此外还完成了审查。如之前多次提到,Linux 内核中的 Rust 支持在构建时仍然是可选的,具体取决于你是否需要支持或仅仅是在 Rust 代码中实现某些内核性能。


Linux 5.20 合并窗口将在 7 月底左右 Linux 5.19 稳定版发布后打开,届时我们就能知道 Rust PR 是否已经提交并登录到下一个内核版本中了。事情后续的进展如何并不会让大家感到惊讶,因为 Linus 已经送出了祝福。


Liunx 5.20 已经有了一些值得注意的性能优化,包括新的硬件支持、更多的 AMD 支持工作、RDNA3 有望在这一版内核中处于良好状态,我们也有可能会看到 MGLRU 主线以及其他一些预期的功能。


早在 2021 年底,Linux 内核和 Rust on Linux 的主要开发者 Miguel Ojeda 向 Linux Kernel 邮件列表提交了一个 新补丁 (v2),推进了 Rust for Linux 的工作进展。


邮件内容指出,新的补丁将为 Linux 内核增加对 Rust 作为第二语言的支持,并且对 Rust 的整体支持进行了多项改进。具体来说,Rust 代码现在已经依赖于稳定的 Rust 编译器而不是之前的 beta 版本状态。Ojeda 称,接下来每次发布新的稳定 Rust 编译器时,Linux 上的 Rust 都会进行迁移。


展望未来,Ojeda 继续提到 “通过升级编译器,我们已经能够把我们使用的一些不稳定的特性从列表中删除。我们将继续升级,直到我们不再依赖任何不稳定的特性,到那时,我们可能要开始宣布支持 Rust 的最低版本,就像对 GCC 和 Clang 那样。”


现在看来,Ojeda 的想法距离成真不远了。


学术界和工业界的支持

随着 Rust 的兴起,许多开发人员越来越有兴趣在 Linux 内核中尝试 Rust。


2019 年,Alex Gaynor 和 Geoffrey Thomas 在 Linux Security Summit 安全峰会上进行了演讲,他们介绍了 Rust 内核模块的一个原型,并提出了在内核中采用 Rust 的理由。此次演讲重点是在安全问题上,其中指出在 Android 和 Ubuntu 中,约有三分之二的内核漏洞被分配到 CVE 中,这些漏洞都是来自于内存安全问题。原则上,Rust 可以通过其 type system 和 borrow checker 所提供的更安全的 API 来完全避免这类错误。


在 2020 Linux Plumbers Conference 上,Thomas 、Gaynor、Rust 语言团队的联合领导者 Josh Triplett 以及其他一些对此感兴趣的开发者以“Barriers to in-tree Rust”为主题,讨论了想要把 Rust 引入到 Linux 内核项目中作为一种可选的开发语言还需要解决的一些问题。其中 in-tree 是 Linux 术语,意思是与内核源代码树本身一起存储并与之一起构建内核模块。


与会者强调,他们并不是提议将 Linux 内核重写成 Rust,只是关注于走向一个可以用 Rust 编写新代码的世界。本次讨论集中在 Rust 支持的三个潜在关注点上:

  • 对现有 C API 的绑定(Binding to existing C APIs);

  • 架构支持(Architecture support);

  • 关于 Rust 和 C 之间 ABI 与内核的兼容性(ABI compatibility with the kernel)。对此,Linux 之父 Linus Torvalds 也曾发表看法:Linux 最终不会用 Rust 编写,没有人会用 Rust 重写内核的 2500 万行 C,但是他也看到了 Rust 的优势,鼓励采用缓慢但稳定的方法将 Rust 引入 Linux,同时他表示将 Rust 接口用于驱动程序和其他非核心内核程序是有道理的。


此外,Ojeda 还在邮件中透露继 ARM、谷歌和微软之后,红帽方面也表达了他们对该项目的支持意向。


有关 Rust 基金会

去年二月份,Rust 基金会宣布正式成立。


Rust 基金会是一个新的独立的非盈利组织,负责管理 Rust 编程语言及生态。该组织将致力于为那些管理和开发该项目的维护者提供支持。


Rust 基金会由 AWS、华为、谷歌、微软和 Mozilla 联合成立,并承诺在两年的时间里,投入 100 万美元的预算,用于 Rust 项目的开发、维护和推广。


Rust 基金会临时执行董事,核心团队成员 Ashley Williams 当时表示,“这标志着 Rust 在多维度上都迈出了一大步,更重要的是,一些全球行业领先的公司做出了正式的财务上的预判:Rust 将是未来企业生产中不可缺少的技术。”


关键字:Linux  Rust 编辑:王兆楠 引用地址:http://news.eeworld.com.cn/qrs/ic614395.html

上一篇:IAR for Arm集成开发环境全面支持芯驰科技9系列SoC和E3系列MCU
下一篇:IAR Systems 支持 Visual Studio Code 扩展以满足开发者需求

推荐阅读

at91sam9g45 mcp2515 linux3.6.9驱动移植要点
平台at91sam9g45 linux版本 3.6.91 board-sam9m10g45ek.c 文件添加如下结构体staticstruct mcp251x_platform_data mcp251x_info = {.oscillator_frequency = 8000000,.board_specific_setup = NULL,//&mcp251x_setup,.power_enable = NULL, //mcp251x_power_enable,.transceiver_enable = NULL,};staticstructspi_board_info can_spi_devices[] = {{.modalias
发表于 2022-06-29
AT91SAM9X 修改MAC驱动增加eeprom支持 Linux2.6.39
使用 ethtool 工具 可以查看mac 地址启动logNAND read: device 0 offset 0x200000, size 0x6000006291456 bytes read: OK## Booting kernel from Legacy Image at 22000000 ... Image Name: Linux-2.6.39.2.15 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2224708 Bytes = 2.1 MiB Load Address: 20008000 Entry Point: 20008000 Verify
发表于 2022-06-29
研华科技发布AIM-Linux社区并邀请用户加入
2022年6月,研华科技(Advantech)宣布启动一个技术支持论坛,即AIM-Linux社区。这是一个在线社区,旨在为研华科技和用户提供一个交流平台,在上面基于Arm和Linux的开发人员可与研华科技及其合作伙伴的工程师保持联系。研华科技一直以来由研发工程师向用户提供丰富且直接的技术支持,然而我们也意识到,很多用户往往具有类似的疑问。因此,研华科技希望提供一个在线论坛——AIM-Linux社区,用户可以在这里发布问题、公开列出工程师反馈和技术解决方案。这样做的目的是通过共享集体知识、技术和活动造福社区。研华科技副总裁Aaron Su表示,“研华科技投入了大量时间来了解我们的客户希望访问哪些信息,以及如何以简化、用户友好和及时的方
发表于 2022-06-28
研华科技发布AIM-<font color='red'>Linux</font>社区并邀请用户加入
mini2440 u-boot linux 内核启动,移植较新(Linux3.19)内核至mini2440开发板(一)
s3c24xx-nand s3c2440-nand: Tacls=1, 9ns Twrph0=3 29ns, Twrph1=2 19nss3c24xx-nand s3c2440-nand: NAND soft ECCnand: device found, Manufacturer ID: 0xec, Chip ID: 0xdanand: Samsung NAND 256MiB 3,3V 8-bitnand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64Creating 5 MTD partitions on "nand":0x00
发表于 2022-06-24
mini2440 u-boot linux 内核启动,u-boot.2012.10——mini2440(二、启动流程分析)
参考资料:https://blog.csdn.net/suiyuan19840208/article/details/7239949https://blog.csdn.net/pugu12/article/details/47011159http://tscsh.blog.163.com/blog/static/200320103201312645149965/https://blog.csdn.net/winheroii58/article/details/68033271、第一阶段功能* 硬件设备初始化* 加载u-boot第二段代码到RAM空间* 设置好栈* 跳转到第二段代码入口2、第二段代码的功能* 初始化本阶段使用的硬件设备
发表于 2022-06-24
mini2440 u-boot <font color='red'>linux</font> 内核启动,u-boot.2012.10——mini2440(二、启动流程分析)
mini2440 u-boot linux 内核启动,Mini2440 uboot,kernel,根文件系统搭建
按照mini2440的手册,我所学到的uboot,kernel以及根文件系统的搭建过程分别如下,具体细节暂时不考虑,只考虑整个编译烧写的过程。首先我们的宿主机一定要有nfs服务器,tftp服务器,具体搭建的过程,可以自己参考1. mini 2440 编译uboot过程下载u-boot-2010.03-embedclub-201111.tar.gz,1:tar zxf u-boot-2010.03-embedclub-201111.tar.gz2:cd u-boot-2010.033:make disclean #执行清理工作4:make smdk2440a_config #Makefile的对应项5:make编好的u-boot.bi
发表于 2022-06-23
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved