虚拟块设备

9 block-device

我不确定我应该用谷歌搜索什么,或者 FUSE 是否这样做(我怀疑不是)。我想创建一个虚拟块设备,所有形式的访问(例如读取和写入)都直接进入我的应用程序。

我知道我可以通过执行创建一个文件作为块设备

dd if=/dev/zero of=~/test count=100k
Run Code Online (Sandbox Code Playgroud)

然后使用创建一个环回

losetup /dev/loop0 ~/test`
Run Code Online (Sandbox Code Playgroud)

但我希望直接访问我的应用程序而不是文件。我希望这个问题很清楚。

spu*_*puk -1

你不是在找吗mmap()

但是,我不确定如果mmap没有实际文件支持它,您会怎么做,但是您可能有一个任意大的、归零的文件(请参阅falocatetruncate)并且mmap()带有 flag MAP_PRIVATE,因此对它的写入仅对您的应用程序可见,并且不保存到磁盘。