rust-sig组成员您好:我是实习生王海涛,最近一个月在摸索openEuler 21.03 是否能支持Rust写成的模块。
但是发现linux对Rust的支持正在开发中,且基于的内核为5.12,比21.03的内核5.11要更新,因此官方可能暂不支持。
不过我在github上看到了跳过内核支持的办法,如使用bindgen,让Rust能调用内核header,进而编译出.ko。链接: fishinabarrel/linux-kernel-module-rust: Framework for writing Linux kernel modules in safe Rust (github.com) 但是这种方式使用当前nightly的Rust工具链,会编译错误。
请问大佬们是否有其他办法在21.03使用Rust编译的内核模块呢?
实习生 王海涛
目前最佳方案应该是等待 Rust for Linux 上游的工作。
如果你一定要尝试用 Rust 写 内核,建议参考下这篇文章:https://zhuanlan.zhihu.com/p/137077998
在 2021-06-15 09:30:59,"海涛" wanghaitao.ouyang@qq.com 写道:
rust-sig组成员您好: 我是实习生王海涛,最近一个月在摸索openEuler 21.03 是否能支持Rust写成的模块。
但是发现linux对Rust的支持正在开发中,且基于的内核为5.12,比21.03的内核5.11要更新,因此官方可能暂不支持。
不过我在github上看到了跳过内核支持的办法,如使用bindgen,让Rust能调用内核header,进而编译出.ko。链接: fishinabarrel/linux-kernel-module-rust: Framework for writing Linux kernel modules in safe Rust (github.com) 但是这种方式使用当前nightly的Rust工具链,会编译错误。
请问大佬们是否有其他办法在21.03使用Rust编译的内核模块呢?
实习生 王海涛
另外,还有个比较安全的方案就是使用 eBPF: 用 Rust 编写 eBPF 程序,在内核中执行。
在 2021-06-15 09:30:59,"海涛" wanghaitao.ouyang@qq.com 写道:
rust-sig组成员您好: 我是实习生王海涛,最近一个月在摸索openEuler 21.03 是否能支持Rust写成的模块。
但是发现linux对Rust的支持正在开发中,且基于的内核为5.12,比21.03的内核5.11要更新,因此官方可能暂不支持。
不过我在github上看到了跳过内核支持的办法,如使用bindgen,让Rust能调用内核header,进而编译出.ko。链接: fishinabarrel/linux-kernel-module-rust: Framework for writing Linux kernel modules in safe Rust (github.com) 但是这种方式使用当前nightly的Rust工具链,会编译错误。
请问大佬们是否有其他办法在21.03使用Rust编译的内核模块呢?
实习生 王海涛