ФС NTFS.

В ОС Windows присутствует система ввода/вывода. Задача этой системы – скрыть особенности работы с дисками и предоставить в распоряжение ФС используемое дисковое пространство в виде непрерывной последовательности блоков фиксированного размера.

 

Диски разбиваются на блоки размером 512 байт. Принято работать с блоками более крупного размера – кластерами. Размер кластера = размер сектора * кластерный множитель. Величина множителя устанавливается во время форматирования. От размера кластера зависит производительность ОС. Если кластер большой, то возникнет проблема фрагментации. Исследования показали, что оптимальный размер = 1-8 Кб. Существуют кластеры диска (volume cluster), кластеры, принадлежащие файлу (logical cluster). Основная функция ФС – связь символьного имени с блоками диска, принадлежащими файлу. Эта функция реализуется с помощью ссылки из записи каталога о данном файле на запись в таблице, формат которой определяется типом ФС на диске. У FAT имеется таблица размещения файлов, в которой поддерживаются списки кластеров, которые занимает файл. У NTFS существует такая же таблица (MFT). Такая таблица имеет следующую структуру:

18 – Файлы пользователя
17 – Файлы пользователя
16 – Файлы пользователя
15 – Зарезервирован
14 – Зарезервирован
13 – Зарезервирован
12 – Зарезервирован
11 – Расширения метода данных и квоты
10 – Преобразование регистра
9 – Файл описателей защиты
8 – Список плохих кластеров
7 – Загрузочный сектор
6 – Битовый массив учета занятых кластеров
5 – Битовый массив учета занятых кластеров
4 – Корневой каталог
3 – Таблица определения атрибутов
2 – Файл тома
1 – Файл журнала для восстановления
0 – Зеркальная копия MFT

Вся структура представляется файлом, в котором содержится до 248 записей, размер каждой – 1 Кб. Если файл имеет несколько записей, то первая из них называется базовой. Каждая запись содержит «заголовок» и пары «заголовок атрибуты, значение». Атрибуты бывают 2 типов: если атрибут целиком вмещается в MFT, он считается резидентным, резидентными всегда будут имя файла и стандартная информация; если атрибут помещается в разные блоки диска, а в заголовке хранится информация о его местонахождении, обычно нерезидентные – поток данных файла, индекс.

Битовый массив – представляет набор единиц и нулей, каждому из которых соответствует блоку. Он сам хранится в файле.

Директория или каталог – это файл, имеющий вид таблицы и хранящий список входящих в него файлов и каталогов. Основная задача этих директорий – поддержка иерархической структуры ФС. Ей соответствует 1 запись MFT – имя, метка, размер и ссылка на запись. Пример: стандартная информация – имя файла-каталога – ссылки на записи MFT. Для больших каталогов совокупность записей о файлах не помещается в одну запись MFT и организована в виде В+-дерева. MFT-запись содержит корень дерева, а ветви размещаются в отдельных кластерах.