在linux内核中直接读/写块到磁盘

时间:2014-03-13 00:10:16

标签: linux io operating-system kernel block

正如标题所说,我正在寻找如何在linux内核空间中直接读取/写入块(绕过文件系统)并直接与块IO层交互。

在阅读了一些内核代码之后,我意识到bio是我应该用来在块IO层实现这样的目标的结构。但我不太了解生物的结构,也没弄清楚我究竟能做到这一点。

有什么帮助吗?谢谢

2 个答案:

答案 0 :(得分:0)

如果你只做一些简单的事情,那么你真的不需要搞砸BIO。你可以做的只是打开块设备(/dev/whatever),就像它是一个文件一样。内核将做正确的事情,并会给你"瘦"用于读/写操作的包装器。

关于从内核空间打开文件,这里有几个问题已经回答,就像这样:

How to read/write files within a Linux kernel module?

如果你想做更多花哨的事情,你将不得不研究FS驱动程序的来源(在fs /子目录中)来寻找例子。

答案 1 :(得分:0)

如果有人对使用Node.js这样做感兴趣,我们昨天发布了一个原生添加内容,其中包含用于打开和使用块设备的帮助程序:https://github.com/ronomon/direct-io