Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс_лекций_ОС_П+И_2012.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
413.07 Кб
Скачать

Физическая организация данных ntfs

Файловая система NTFS была разработана в качестве основной файловой системы для ОС WINDOWS NT в начале 90 – ых годов с учетом опыта разработки файловых систем FAT и HPFS (основная файловая система для OS / 2), а также других существовавших в то время файловых систем.

Основными свойствами NFTS являются:

  • Поддержка больших файлов и больших дисков до 2 64 байт;

  • Восстанавливаемость после сбоев и отказов программ и аппаратуры;

  • Высокая скорость операций при работе с дисками, в том числе и для больших дисков;

  • Низкий уровень фрагментации, в том числе и для больших дисков;

  • Устойчивость к отказам дисков;

  • Поддержка длинных символьных имен до 255 символов

  • Использование для имен файлов кодировки Unicode, что позволяет пользователям стран, где не используется латинский алфавит, писать имена файлов на родном языке;

  • Контроль доступа к каталогам и отдельным файлам;

Логический диск в NFTS принято называть томом. Основная структура тома – это главная таблица файлов (Master File Table, MFT), которая представляет собой линейную последовательность записей фиксированного размера. Длина записи зависит от объема диска – 1, 2 или 4 Кбайта. По умолчанию принято 2 Кбайта. Каждая запись описывает один файл или один каталог. В записи содержатся атрибуты файла: имя, стандартная информация и адреса кластеров, которые занимает файл. Если файл большой, то он может занимать несколько записей в таблице MFT.

Адресация файлов

Все файлы NFTS идентифицируются (определяются) номером файла, который соответствует позиции файла в таблице MFT. Идентификации файла с помощью номера похожа на определение файла в файловых системах UNIX, где используется понятие индексного дескриптора.

Весь том состоит из последовательности кластеров, что отличает файловую систему NFTS от FAT, где на кластеры делилась только область данных.

Порядковый номер кластера на томе называется логический номер кластера (Logical Cluster Number, LCN).

Файл может занимать на диске несколько последовательных кластеров, при этом порядковый номер кластера внутри файла называется виртуальный номер кластера (Virtual Cluster Number, VCN).

Непрерывная (последовательная) цепочка кластеров называется отрезком. Отрезок – это базовая единица распределения дискового пространства.

Для адресации отрезка используется пара (LCN , K), то есть логический номер первого кластера отрезка и количество кластеров в отрезке.

Для адресации файла или части файла используется три числа (VCN, LCN, K), где VCN – виртуальный номер кластера.

vcn

lcn

k

vcn

lcn

k

vcn

lcn

k

0

10

4

4

110

2

6

200

3

Структура тома NFTS

Загрузочный блок

Содержит параметры необходимые для загрузки диска (BIOS)

0

16 стандартных, создаваемых при форматировании, записей о системных файлах NFTS

1

1 –ый

2

Отрезок

MFT

15

Системный файл 1

Сами системные файлы

Системный файл 2

……

Системный файл N

Копия MFT

(первые три записи)

Файл 1

Файл данных

Копия загр. блока

MFT

2 отрезок

Запись о файле

Файл 2

Файл данных

MFT

3 отрезок

Запись о файле

Файл 3 и т.д.

Назначение стандартных записей о системных файлах

№ записи

Системный файл

Имя файла

Назначение файла

0

Главная таблица файлов

$Mft

Содержит полный список файла тома

1

Копия главной таблицы

$MftMirr

Копия первых 3 записей MFT

2

Файл журнала

$LogFile

Список транзакций, для восстановления файловой системы после сбоя

3

Том

$Volume

Имя тома, информация о томе

4

Таблица определения атрибутов

$AttrDel

Таблица имен, номеров и описания атрибутов

5

Индекс корневого каталога

$.

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

6

Битовая карта кластеров

$BitMap

Содержит номера использованных кластеров тома

7

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

$Boot

Адрес загрузочного сектора тома

8

Файл плохих кластеров

$BadClus

Список всех плохих кластеров

9

Таблица квот

$Quota

Квота дискового пространства для каждого пользователя

10

Таблица преобразования регистра символов

$Upcase

Используется для преобразования символов для кодировки Unicode

11 - 15

Зарезервированы для будущего использования

Файл может целиком размещаться в записи таблицы MFT, если это позволяет размер. Если файл больше размера записи (более 2 Кбайт), то в записи размещаются некоторые атрибуты файла, а остальная часть в отдельном отрезке тома или нескольких отрезков. Часть файла, которая размещается в отрезке MFT называется резидентной частью, а остальные части – нерезидентными. Адресная информация об отрезках, которая содержит нерезидентные части, размещается в резидентной части.

Каждый файл и каталог состоит из набора атрибутов. Причем имя файла и данные также рассматриваются как атрибуты, то есть кроме атрибутов, у файла нет других компонент. Каждый атрибут состоит из полей: тип, длина, значение и имя. Есть системный набор атрибутов, в котором определен формат этих полей. Могут быть пользовательские атрибуты. Существуют резидентные атрибуты, которые хранятся в записи таблицы MFT и нерезидентные.

Системный набор включает следующие атрибуты:

Attribute List (список атрибутов)

Список атрибутов, из которых состоит файл; содержит ссылки на номера записей MFT, в которых расположен каждый атрибут. Используется только в том случае, если атрибуты файла не умещаются в основной записи и занимают дополнительные записи MFT

File Name (имя файла)

Длинное имя файла в формате Unicode, а также номер записи MFT для родительского каталога, если файл содержится в нескольких каталогах, то будет несколько атрибутов Имя файла, всегда должен быть резидентным

MS DOS Name (Имя MS DOS)

Имя файла в формате 8.3

Version (версия)

Номер последней версии файла

Security Descriptor (дескриптор безопасности)

Информация о защите файла: список прав доступа и поле аудита, в котором определяется какие операции над этим файлом нужно регистрировать в журнале аудита

Volume Version (версия тома)

Версия тома – только для системных файлов

Volume Name ( имя тома)

Имя тома

Data (данные)

Обычные данные файла

MFT BitMap (битовая карта MFT)

Номера кластеров, в который записан данный файл

Index Root (корень индекса)

Корень бинарного дерева, используется для поиска файлов в каталоге

Index Allocation (размещение индекса)

Нерезидентные части индексного списка бинарного дерева

Standard Information (стандартная информация)

Время создания, время обновления, время последнего обращения и т.д.

Типы файлов NTFS

Файлы в зависимости от способа размещения делятся на небольшие, большие, очень большие и сверхбольшие.

Небольшие файлы (small) целиком располагаются в одной записи MFT и имеют, как минимум, следующие атрибуты:

  • Стандартная информация – SI

  • Имя файла – FN

  • Данные – Data

  • Дескриптор безопасности – SD

Запись MFT

SI

FN

Data

SD

Из-за переменного количества атрибутов и переменного размера самих атрибутов файл может не поместиться в одной записи и стать большим.

Большие файлы (Large). Если файл не умещается в одной записи, то атрибут Data содержит адресную информацию (LCN, VCN, k), то есть адреса, тех отрезков данных, в которых находятся сами данные. Простая косвенная адресация.

Запись MFT

SI

FN

Lcn,vcn,k lcn,vcn,k

SD

Отрезок данных 1

Отрезок данных 2

Очень большие файлы (huge). В атрибуте Attribute List указывается, где располагается адресная информация о данных (одна запись). Применяется двойная косвенная адресация.

Запись MFT

SI

FN

AL

SD

Lcn,vcn,k lcn,vcn,k lcn,vcn,k

Отрезок данных 1

Отрезок данных 2

В сверхбольших файлах (extremely huge) в резидентной части указывается номер записи MFT в которой содержится атрибут Attribute List , в котором располагаются адресная информация об отрезках данных. Тройная косвенная адресация.

Для контроля использования кластеров существует специальный системный файл – битовая карта кластеров. Каждый кластер на диске имеет свой порядковый номер, которому соответствует бит в этом файле. Если кластер занят, то соответствующий бит устанавливается в 1. При размещении файлов на диске соответствующие биты устанавливаются в 1, при удалении в 0.