【发布时间】:2020-03-31 08:58:38
【问题描述】:
我已经使用 rust 在用户空间中为NRF24L01+ transceiver 实现了一个设备驱动程序。用户空间驱动程序使用内核 spi 接口驱动程序。将驱动程序编写为内核模块似乎非常困难,因为在 linux device drivers 中找到的 linux/netdevice.h 文档似乎已经过时(或者我不够聪明,无法理解复杂的细节)。
一个新的project from the TU Munich 提议使用vfio。据我了解,这种类型的驱动程序实现使用 iommu 来管理设备对受保护内存区域的隔离。 “Project Ixy”使用网络设备作为块设备,因此可以映射。 SPI 是不同的,因为它是一种流协议。
我的问题是,是否可以将用户空间 spi 网络设备驱动程序集成到 linux 网络堆栈中,例如由网络堆栈处理所有协议等。是否可以使用与 Project Ixy 类似的方法,例如在内核空间中使用一个小组件,为了安全而隔离它,从而为用户空间搭建“桥梁”?
【问题讨论】: