Rust for Linux 这个项目是希望今后可以使用 Rust 编程语言来编写内核代码,该项目已经进行了几年,有越来越多的开发者认为是时候将这项工作合并到主线中了。在 2022 年的 Linux 内核维护者峰会上,Miguel Ojeda 向大家更新了此项目的最新状况,希望能达成一致来确定何时可以完成合并。
“我坚信内核开发的未来就是内存安全语言。我并不能预知未来,但如果 Linux 不能将这个优势内化,恐怕其他内核也终将像取代 Unix 那样对 Linux 造成冲击。” https://www.theregister.com/2024/09/02/rust_for_linux_maintainer_steps_down/ https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.co...
Rust for Linux 这个项目是希望今后可以使用 Rust 编程语言来编写内核代码,该项目已经进行了几年,有越来越多的开发者认为是时候将这项工作合并到主线中了。在 2022 年的 Linux 内核维护者峰会上,Miguel Ojeda 向大家更新了此项目的最新状况,希望能达成一致来确定何时可以完成合并。 他得到的答案是很清晰的:内核中...
linux_kernel_module::KernelModule for HelloWorldModule { fn init() -> linux_kernel_module::KernelResult<Self> { println!("Hello kernel module from rust!"); Ok(HelloWorldModule { message: "on the heap!".to_owned(), }) } } // 提供内核模块卸载方法 impl Drop for HelloWorldModule { fn ...
它是一个包含 32 位整数值的 Vec。本身 Rust 允许为结构类型添加接口("trait")实现。因此,这个示例模块为 RustMinimal 类型实现了 kernel::Module trait。impl kernel::Module for RustMinimal { fn init(_module: &'staticThisModule) -> Result<Self> { pr_info!("Rust minimal sample (init)...
IT之家 4 月 2 日消息,微软工程师 Wedson Almeida Filho 近日发布邮件,通过和 Rust for Linux 项目密切合作,已经发布新的补丁来彻底改变内核中的模块初始化。图源:Windows Report AI 生成 Filho 表示微软为履行在 Linux 生态中推动 Rust 发展的承诺,通过发布新的补丁,来完善 Rust 内核代码的分配应用程序接口...
这个问题在Linus Torvalds on the Linux kernel's Rust support patch[12]中提到的。 我们来看看Arc::new()[13]的定义,一个创建线程安全参考计数指针的构造器: pub fn new(data: T) -> Arc<T> 1. 看起来超级直观,对吧?然而,它有一个隐含的 panic 情况:内部缓冲分配失败。
首先,下载 Rust for Linux。 gitclonehttps://github.com/Rust-for-Linux/linux.git 其他依赖项安装以及内核编译等详细内容可以参考这篇文章:[Rust Kernel Module: Getting Started](https://wusyong.github.io/posts/rust-kernel-module-00/) 。或者查看视频:Mentorship Session: Writing Linux Kernel Modules in...
在linux-kernel-module-rust 项目中,进入用户空间的指针被 wrap 成 UserSlicePtr 类型,这确保了 copy_to_user或 copy_from_user的可以正确使用。这个 wrapper 在 Rust 代码中提供了一定程度的安全性功能(因为这类指针不能直接 dereference),同时也使 Rust 代码更加地道。要想写入用户空间指针的话,代码看起来就像是...
近日,Linux内核和 Rust on Linux 的主要开发者 Miguel Ojeda 向 LinuxKernel邮件列表提交了一个新补丁 (v2),进一步推进了 Rust for Linux 的工作进展。 邮件内容表示,新的补丁将为 Linux 内核增加对 Rust 作为第二语言的支持,并且在多个方面改进了 Rust 的整体支持,例如: ...