Как стать автором
Обновить

Комментарии 12

Написали бы хотя бы зачем это нужно, а то кроме виртуальных машин ничего в голову не приходит. Про сжатие это просто смешно — есть более эффективные алгоритмы сжатия.

В свое время участвовал в создании драйвера для NTFS и оказалось, что таких файлов в системе достаточно много. Зачем нужно не скажу, предположу, что автоматом не записывались места файла, где одни нули (области данных) в целях сокращения необходимого дискового пространства. Таки были времена, когда диски были не резиновые

Ага, я понял, это мануал по штуке, которую используют те кто пишут ОС, виртуалку или очень специфичные вещи.


PS для системы первое что приходит в голову, это файл подкачки, что в целом логично.

Ага, я понял, это мануал по штуке, которую используют те кто пишут ОС, виртуалку или очень специфичные вещи.

Например, базы данных. Не особо специфичная вещь.

Например, в MySQL сжатие реализовано через разреженные файлы. Допустим, страница занимает 16 блоков файловой системы. Она сжимается до 11, 5 блоков остаются пустыми и «разреженными», а следующая страница начинается с правильного смещения в файле.
Как-то все очень путано в статье.
(ИМХО) Секция про «преимущества» смысла не имеет: как написано выше, про «сжатие» — не аргумент, и, очевидно, что это может привести к медленному чтению если пометить разряженным файл который не так уж и разряжен (подозреваю что таких большинство в системе). При этом заявляется «Преимущества ограничены лишь приложениями, которые их поддерживают».
Лучше было бы ответить на вопрос каким именно приложениям это может быть нужно: как писали в комментах: Виртуальные машины, MySQL это как-то использует…

Для хранения сильно разреженных матриц?

Все эти ФС полностью поддерживают такой тип, но в тоже время не предоставляют прямой доступ к их функциям по средством своего стандартного интерфейса. Управлять их свойствами можно только через команды командной строки.

что такое «стандартный интерфейс файловой системы»?

Мышетык, видимо. А командная строка — уже нестандартный.
Новая реальность, что поделать.
Мышетык


Возьмите любой язык программирования, на ваш выбор. Создайте обычный файл. Создайте разреженный файл. Только без запуска внешних программ, плз.
Вы так шутите, что ли? Ну вот вам C:
HANDLE hFile = CreateFile(fileName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
DWORD dummy;		
DeviceIoControl(hFile, FSCTL_SET_SPARSE, NULL, 0, NULL, 0, &dummy, NULL);
что такое «стандартный интерфейс файловой системы»?


POSIX?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий