【发布时间】:2015-05-15 15:26:01
【问题描述】:
根据我的个人经验,我正在尝试实现“简单文件系统”。为此,我创建了一个块设备驱动程序,我将使用它以块为单位执行读/写操作。现在我的问题是我应该如何从用户应用程序对块设备执行打开、读取、写入和关闭操作。
我真正在寻找的是一个函数,我可以使用它打开块设备/dev/sbd,如果成功,它会返回struct block_device。对于读/写功能,我可以向块设备struct request 发出请求,参数为“buffer,sectore_number,numbe_of_sectors”。
到目前为止,我只有 block_read() 和 block_write() 函数。但似乎它们是特定于 BSD 的。我正在使用 Debain。
有人知道吗? 谢谢。
【问题讨论】:
-
设备驱动程序由内核处理,用户应用程序永远无法直接访问。
-
可以,但是在内核中加载设备驱动后,允许用户对驱动创建的文件/设备进行读/写操作。
-
是的,但问题的编写方式并没有具体说明。此外,他没有指定这是他正在编写的用户模式代码还是内核模式代码,所以我必须假设用户模式。
-
在第一段中,我提到我已经编写了设备驱动程序,并且我正在寻找在该设备上执行操作的函数。它是用户模式。
-
这可能有点绕道,但是你知道FUSE吗?
标签: c linux-device-driver