Replies: 3 comments
-
r4l 学习笔记: |
Beta Was this translation helpful? Give feedback.
0 replies
-
Beta Was this translation helpful? Give feedback.
0 replies
-
现状由于R4L处于初级阶段,接口变化较快,功能支持不完善,原版内核只有module注册,缺少device、pci注册、net api 等。比如第一版 e1000驱动,在实现过程中,需要在内核中添加大量功能性的rust代码和c_bindgen_helper代码,当Linux版本更新后,必然会产生冲突,导致代码很难合并,适配不同版本内核工作量极大。 新方案所有改动放入单独的外部module项目,分为设备驱动层和系统兼容层,其中linux的兼容层由于rust驱动 api未稳定,所以直接使用成熟的C代码编写,大部分可以直接复制原有C代码,设备驱动通过FFI调用,与系统兼容层连通,这样只需修改linux兼容层即可适配各个版本。 开发流程
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
目标:
基于Rust in Linux,用Rust写Linux驱动,并且通过层次化模块设计,尽量能做到主要代码能形成crate,能被其他OS重用。
参考:
该crate可做到与具体操作系统无关
如有兴趣一起来探索,请联系我 yuchen AT tsinghua.edu.cn OR 微信 id chyyuu
Beta Was this translation helpful? Give feedback.
All reactions