分享好友 编程语言首页 频道列表

超33000行新代码,为Linux内核添加Rust支持的补丁已准备就绪

rust文章/教程  2023-03-08 13:220

https://mp.weixin.qq.com/s/oKw9aBJSdmRoO6-rbLAkNw

7 月 4 日,一套修订后的补丁被提交至 Linux 内核的邮件列表中,该补丁为在 Linux 内核中以 Rust 作为辅助编程语言提供了支持,借助 Rust 可以提高 Linux 内核和内存的安全。

超33000行新代码,为Linux内核添加Rust支持的补丁已准备就绪

整套补丁包含 17 个子项,不光为 Linux 内核提供了初步的 Rust 支持,还提供了一个驱动实例,总共有超过 33000 行的新代码。

Miguel Ojeda 一直在领导 "Rust for Linux" 的工作,此前我们也报道了 Google 为了提升 Linux 内核安全性对该项目进行了资助,以使这种编程语言能够在内核中使用。虽然 Linux 5.14 的内核合并目前仍在进行中,但这套补丁目前并没有被标记上 “Pull Request”,因此预计要到下一个合并周期这套补丁才会正式登陆 Linux。

超33000行新代码,为Linux内核添加Rust支持的补丁已准备就绪

Rust for Linux 的启用现在已经达到了 33000 多行代码,之所以包含这么多代码的其中一个原因是目前在数据结构中包括了 Rust 的 "alloc" 标准库的一个子集,并在此基础上添加了一些内容。这使得开发者可以根据自己的需要进行定制。同时给上游提供所需的时间来评估这项变化。最终的目标是将内核需要的所有东西都放在上游的 "alloc" 中,并将其从内核树中删除。

这些新补丁的另一个变化是,在之前的版本中想要编译 Linux 内核需要使用 Rust 编译器的 nightly 版本,而现在内核可以用 Rust 编译器的 Beta 测试版和稳定版。不过由于对内核的支持确实需要一些 Rust 编译器的最新功能,因此 Beta 版和稳定版在特定情况下会出现编译失败的情况。

除了支持 AArch64、PowerPC 和 x86_64 之外,ARM 32 位和 RISC-V 现在也被这个 Rust for Linux 所支持。想要了解更多详情,可以在 kernel mailing list (https://lore.kernel.org/lkml/20210704202756.29107-1-ojeda@kernel.org/)中找到这些最新的 Rust for Linux 内核补丁。

查看更多关于【rust文章/教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
Rust到底值不值得学--Rust对比、特色和理念
前言其实我一直弄不明白一点,那就是计算机技术的发展,是让这个世界变得简单了,还是变得更复杂了。当然这只是一个玩笑,可别把这个问题当真。然而对于IT从业者来说,这可不是一个玩笑。几乎每一次的技术发展,都让这个生态变得更为复杂。“英年早秃”已经成

0评论2023-03-08818

全栈程序员的新玩具Rust(三)板条箱
上次用到了stdout,这次我们来写一个更复杂一点的游戏rust的标准库叫做std,默认就会引入。这次我们要用到一个随机数函数,而随机数比较尴尬的一点是这玩意不在标准库中,我们要额外依赖一个库。很多编程方案都有自己的模块化库系统,rust也不例外,不过rust

0评论2023-02-10729

【Rust】标准库-Result rust数据库
环境Rust 1.56.1VSCode 1.61.2概念参考:https://doc.rust-lang.org/stable/rust-by-example/std/result.html示例main.rsmod checked {#[derive(Debug)]pub enum MathError {DivisionByZero,NonPositiveLogarithm,NegativeSquareRoot,}pub type MathResult =

0评论2023-02-09978

【Rust】标准库-引用 rust 数据库框架
环境Rust 1.56.1VSCode 1.61.2概念参考:https://doc.rust-lang.org/stable/rust-by-example/std/rc.html示例rust 使用 Rc 来实现引用计数。main.rsuse std::rc::Rc;fn main() {let rc_examples = "Rc examples".to_string();{println!("--- rc_a is created

0评论2023-02-09638

rust 打印当前时间
let now = time::now();let f_now = time::strftime("%Y-%m-%dT%H:%M:%S", now).unwrap();println!("now: {:?}", f_now);

0评论2023-02-09689

【Rust】线程 rust编程语言
环境Rust 1.56.1VSCode 1.61.2概念参考:https://doc.rust-lang.org/stable/rust-by-example/std_misc/threads.html示例main.rsuse std::thread;const N_THREADS: u32 = 10;fn main() {let mut children = vec![];for i in 0..N_THREADS {children.push(threa

0评论2023-02-09956

rust安装 rust安装在固态进不去游戏
http://blog.csdn.net/teamlet/article/details/50838996

0评论2023-02-09614

更多推荐