例如,文件系统块大小是4k,但我只使用Direct IO向文件写入1个字节,内核会在写入之前将此块读取到页面缓存吗?
也许。 Linux上的直接IO是高度可变的,并且取决于底层文件系统。
对具有4k块大小的文件系统执行1字节直接IO写入可能会完全失败,可能会使用页面缓存重新启动,或者可能通过直接IO直接写入文件。
除非失败,否则你将无法轻易说出来。