正如标题所说,我正在寻找如何在linux内核空间中直接读取/写入块(绕过文件系统)并直接与块IO层交互。
在阅读了一些内核代码之后,我意识到bio是我应该用来在块IO层实现这样的目标的结构。但我不太了解生物的结构,也没弄清楚我究竟能做到这一点。
有什么帮助吗?谢谢
答案 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