据我了解,无法在没有文件系统的介质上执行 VFS 操作。
鉴于此,像这样的实用程序如何fio
在原始设备上执行类似 VFS 的读/写/查找操作?
答案1
据我了解,无法在没有文件系统的介质上执行 VFS 操作。
问题变成“我们正在谈论哪些操作?”您在下面澄清...
鉴于此,像 fio 这样的实用程序如何在原始设备上执行类似 VFS 的读/写/查找操作?
虽然读/写/查找可以在具有 VFS 的事物上完成,但它们是不是VFS 独占操作 - 将它们发布给也理解适当系统调用的设备是可以接受的。
正如@andy-dalton 所说Linux块设备接受像read()
/这样的系统调用write()
,并且fio
只对它们发出标准读/写库调用(最终将变成系统调用)(就像文件系统中的文件一样),内核会处理差异。看https://github.com/axboe/fio/blob/2dd96cc46fa83a73acc1c9238c3ac59203e10213/engines/sync.c#L226-L229举个例子。这是一种简化,但说明了总体概念。