首页 > 系统相关 >【发现】Rust-for-Linux_的成败得失

【发现】Rust-for-Linux_的成败得失

时间:2024-07-19 20:50:59浏览次数:14  
标签:内核 代码 成败得失 开发者 Linux Rust RFL

https://www.usenix.org/system/files/atc24-li-hongyu.pdf

RFL(Rust for Linux)从 2013 年开始筹备进入 Linux 内核,自从 2022 年以来,合并了 20K 行代码到 Linux 主线,成为了 Linux 除了 ebpf 和 io_uring 之外最活跃的子系统。

本文主要回答了 3 个问题:

  • RFL 现状如何:
    • RFL 的代码主要集中在驱动、netdev 和文件系统。
    • RFL 基础设施已经成熟,安全抽象和驱动程序是下一个重点。
    • RFL 发展的瓶颈不在开发,而在代码审查。
  • RFL 是否是一种炒作:
    • RFL 使内核变安全,但不是完全安全。
    • RFL 没有带来可怕的 overhead。
    • RFL 提高了代码质量和可读性。RFL 代码目前达到了 100% 的文档和代码覆盖率。而单位代码行数产生的 CI 错误也显著地比 epbf 和 io_uring 少。
    • RFL 让 Linux 社区吸取了更多新鲜血液。
  • 经验和教训:
    • 对开发者来说,应该从所有权的角度构造和管理内核数据结构,谨慎地接受 unsafe
    • RFL 社区应该在 BUG 密度更高的地方发挥影响力。BUG 越是容易出现,Rust 就越有价值。文章建议 linux-block 子系统。

此外,文章还提到 Kernal 社区对 Rust 开发驱动的感受。根据对 ycombinator 和 Iwn 的开发者文章分析,大约有 40% 持有积极态度,另外 60% 持有消极态度。持有消极态度的开发者最关心的是学习难度和复杂度。

评论

RFL 值得关注。

标签:内核,代码,成败得失,开发者,Linux,Rust,RFL
From: https://www.cnblogs.com/plus7wist/p/18312343

相关文章

  • Linux中进程间通信--匿名管道和命名管道
        本篇将会进入Linux进程中进程间通信,本篇简要的介绍了Linux中进程为什么需要通信,进程间通信的常用方式。然后详细的介绍了Linux进程间的管道通信方式,管道通信分为匿名管道和命名管道,本篇分别介绍了其实现的原理,以及使用Linux中的系统调用,用代码实现了这两......
  • Linux驱动开发-06蜂鸣器和多组GPIO控制
    一、控制蜂鸣器1.1控制原理 我们可以看到SNVS_TAMPER1是这个端口在控制着蜂鸣器,同时这是一个PNP型的三极管,在端口输出为低电平时,蜂鸣器响,在高电平时,蜂鸣器不响 1.2在Linux中端口号的控制        gpiochipX:当前SoC所包含的GPIO控制器,我们知道I.MX6UL/I.MX6ULL......
  • Linux配置jdk环境变量
     首先再官网下载jdk1.8下载地址:JavaDownloads|Oraclehttps://www.oracle.com/java/technologies/downloads/ 然后通过Mobaxtrem将文件拖到linux操作系统中,我的是放在这个位置中的 解压tar-zxvfjdk-8u291-linux-x64.tar.gz 然后我们现在去配置环境变量:我们首......
  • 秒懂LINUX之初识指令
    目录一.ls指令​编辑1.1ls-l1.2ls-a二.pwd指令三.cd指令3.1cd..3.2 cd/home/litao/linux/ 3.3cd../day02/3.4cd~3.5cd-四.touch指令五.mkdir指令5.1 mkdir–p六.rmdir指令&&rm指令6.1rmdir-p6.2rm-f6.3rm-r6.4rm-rf*......
  • 【Linux】Linux进程揭秘:从理论到实践的深度探索之旅
    目录前言:操作系统简介概念设计目的理解进程:程序的执行之魂进程和程序的联系与区别 描述进程-PCB进程的标识符 进程状态 状态转换僵尸进程孤儿进程前言:操作系统简介概念操作系统(英语:OperatingSystem,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软......
  • Linux 中sed命令限制次数匹配
     001、[root@PC1test]#lsa.txt[root@PC1test]#cata.txt##测试数据>Sequence1CCCNTCACTNNNCTTGGNNNNNNNNN>Sequence2[root@PC1test]#sed's/NNN\+//g'a.txt##N至少出现3次删除>Sequence1CCCNTCACTCTTGG>......
  • [Linux命令-网络和安全操作]
    目录Vim编辑器:网络网络配置ifconfig:netstat:wget:从指定的URL下载文件 网络安全 在Linux中,进行网络和安全操作时,我们先简单了解一下Vim编辑器Vim编辑器:vim编辑器有三种模式:命令模式、编辑模式、末行模式模式间切换方法:(1)命令模式下,输入:后,进入末行模式(2)末......
  • 【Linux】网络基础_1
    文章目录十、网络基础1.协议OSI七层模型和TCP/IP四层模型网络传输基本流程报文与封装未完待续十、网络基础1.协议“协议”是一种约定。在网络环境下,主机距离过远时,必定会引发新的问题,比如数据可靠性,主机定位问题,数据传输等问题。为了解决这些问题,让这些不同......
  • Linux环境离线安装docker&docker-compose(包含一键安装脚本和一键安装包)
    一、docker离线安装1、下载docker离线安装包下载最新版本的docker(或者选择自己想要安装的版本)到本地。1)docker下载地址:Docker版本获取备注:此地址自2024年7月无法访问下载docker版本,小编已经将可以使用的docker、docker-compose版本整理在百度网盘中如有需要可以自行获取......
  • Rust生命周期,看这一篇就够了~
    https://blog.csdn.net/vince1998/article/details/138324413生命周期为什么要提出、是什么、怎么用导航生命周期为什么要提出、是什么、怎么用一、生命周期为什么要提出二、生命周期是什么三、生命周期怎么用1、生命周期标注(1)引用类型标注(2)函数参数生命周期标注(3)结构体字段中生......