Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_лекция.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.49 Mб
Скачать

Файловые системы Windows

Выделяются два типа драйверов ФС:

  1. Локальная FSD (File System Driver), управляющая дисками, подключенными непосредственно к компьютеру. Например, FAT, NTFS, CDFS.

  2. Сетевые FSD, позволяющая обращаться в дисковым томам удаленного компьютера.

Локальный FSD должен зарегистрироваться у диспетчера ввода\вывода. При первом обращении к тому диспетчер ввода\вывода, вызывается драйвер для распознавания – анализа загрузочного сектора тома и метаданных ФС для проверки её целостности.

Приложения (множество) <<->> Диспетчер в/в  Драйвер ФС  Драйвера устройств <<->> Логический том (раздел)

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

01112012 Лекция 8 Файловая система fat

Чтобы уменьшить общее количество единиц хранения используется объединение смежных секторов диска - Cluster. Его размер – степень двойки и определяется размером тома при форматировании диска.

Первый сектор жесткого диска (сектор 1, дорожка 0) содержит Master Boot Record- программа, помещаемая в ОС во время загрузки. Физический диск может быть разбит на части (разделы или томы). Таблица разделов диска Partition Table располагается в конце первого сектора и содержит 4 элемента, описывающие разделы диска

Смещение

Размер

Содержимое

+0

1

Признак активного раздела

0 – не активный, 80h активный

+1

1

Номер стороны для начального сектора раздела

+2

2

Номер сектора и дорожки (первых) (формат INT 13h)

+4

1

Код файловой системы

+5

1

Номер стороны для последнего сектора раздела

+6

2

Номер сектора и дорожки (послед) (формат INT 13h)

+8

4

Относительный номер начала раздела

+16

4

Размер раздела в секторах

Для вычисления относительного номера сектора используется формула

RelSet = (Cyl * Sect * Head) + (Head * Sect) + Sect

Cyl – номер дорожки

Sect – номер сектора на дорожке

Head – номер головки

Как правило, разделы начинаются с четных номеров дорожек, за исключением первого.

Структура разделов под FAT выглядит следующим образом:

Загрузочный сектор

Параметры BIOS

FAT

FAT (копия)

Корневой каталог

Область файлов

FAT - File Allocation Table – таблица размещения файлов.

Записи в таблицы FAT определяют цепочки размещения файлов и каталогов, где отдельные звенья – это указатели на следующий кластер данного файла. Элемент каталога хранит начальный кластер файла.

FAT32 использует 32х разрядные идентификаторы кластеров, но резервируют старшие 4 бита как раз на эти ссылки. Эффективный размер – 28.

Максимальный размер файла – 4Гб.

Файловая система ntfs

Использует 64х разрядные номера кластеров.

Первые 16 секторов раздела NTFS распределены под загрузочную запись и код загрузки. Дубликат сектора загрузочной записи находит в логическом центре диска. Для хранения данных о файлах используется главная таблица файлов MFT – Master File Table.

Раздел NTFS делится на две части:

  1. Главный служебный файл файловой системы $MFT не подлежит дефрагментации и содержится на специально отведенных первых 12% процентах диска (MFT-зоне).

  2. Обычное пространство для хранения файлов.

Свободное место диска включается в себя незаполненные куски MFT зоны. Кластеры раздела имеют сквозную нумерацию от его начала до конца, это называется LCN – Logical Cluster Number.

Файл NTFS – это набор атрибутов. Структура MFT

  • $MFT – сама MFT

  • $MFTMirr – зеркало MFT

  • $logFile – журнал транзакций, в котором регистрируются все операции, влияющие на структуру тома.

  • $Volume – файл тома, содержит имя тома, версию NFTS и бит исправности.

  • $AttrDef – таблица определения атрибутов, она задает типы атрибутов, поддерживаемые на томе.

  • . – корневой каталог

  • $BitMap – это файл битовой карты, содержащей схему распределения пространства на томе.

  • $Boot – загрузочный файл с кодом начального загрузчика ОС

  • $BadClus – файл плохих кластеров, поврежденных кластеров

  • $Quota – содержит данные квот-пользователей.

  • $UpCase – таблица трансляции символов кодировки UNICODE верхнего регистра.

  • Далее – обычные файлы

Файл на томе идентифицируется 64разрядным значением (файловой ссылкой):

Номер последовательности

Номер файла

От 63 до 48

От 47 до 0

Номер файла соответствует позиции его файловой записи в MFT – 1. Номер последовательности увеличивается каждый раз, когда данная позиция в MFT используется повторно. Файл может описываться несколькими файловыми записями при нехватке места под его атрибуты. В этом случае первая запись называется основной, остальные – дополнительными.

NTFS получает адрес файла на диске из объектов файлов.