Ром, ну речь же не о том что файлы состоят из байт и килобайт)
речь о том что в линуксе по твоим словам - кэш диска ничего не знает о файловой системе и о назначении тех блоков которые он хранит.
а в винде запрос на чтение файла фактически поступает в Кэш, который догружает необходимые участки файла через драйвер файловой системы. то есть они более тесно связаны и трудно сказать кто выше кто ниже.
Тут видимо дело в том, что в Windows предполагается использовать одну файловую систему, а в Linux множество под VFS, в том числе через FUSE.
По этому если давать каждой ФС буферный пул, может получиться ненужная множественная повторная буферизация.
Если же буферный пул давать VFS, то это может быть не оптимально для файловых систем со сжатием. Лучше хранить в ОЗУ сжатые блоки, чем распакованные куски файлов. Тем более это нужно делать если ФС с шифрованием, держать шифрованные никаких проблем, а расшифрованные в памяти не есть гуд.
Кстати, а кто-нибудь делал и насколько легко реализуется собственная ФС под Windows?
Я так понимаю легкого механизма типа FUSE там нету, есть только виртуальный слой "устанавливаемой файловой системы" (Installable File System) и нужно использовать WDK Драйвер файловой системы (Kernel mode drivers (high-level))
Добавлено через 4 минуты и 52 секунды:И ещё, в файловых системах NTFS, ext2/3, XFS, ZFS файлы всегда хранятся последовательным набором блоков на диске или односвязным списком блоков (один файл может быть фрагментирован) и где тогда хранятся метаданные о последовательности блоков, в конце каждого из этих блоков?