Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ОС рулез.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
630.27 Кб
Скачать

Структура файловых ссылок.

Файл на томе NTFS идентифицируется 64-битным значением, которое называ­ется файловой ссылкой (file reference). Файловая ссылка состоит из номера фай­ла и номера последовательности. Номер файла равен позиции его записи в MFT минус 1 (или позиции базовой записи в МFT минус 1, если файл требует не­сколько записей). Номер последовательности в файловой ссылке увеличивает­ся на 1 при каждом повторном использовании позиции записи в MFT, что по­зволяет NTFS проверять внутреннюю целостность файловой системы. Файловую ссылку иллюстрирует рисунок.

63 47 0

Номер Номер файла

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

Записи о файлах.

NTFS рассматривает файл не просто как хранилище текстовых или двоичных данных, а как совокупность пар атрибутов и их значений, одна из которых со­держит данные файла (соответствую-щий атрибут называется наименованным атрибутом данных). Другие атрибуты включают имя файла, метку времени и, возможно, дополнительные именованные атрибуты данных. Запись MFT для не-большого файла показана на рисунке.

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

///////////////////////////////////////////

Стандартная

информация Имя файла Данные

Каждый атрибут файла хранится в файле как отдельный поток байтов. Строго говоря, NTFS читает и записывает не файлы, а потоки атрибутов. NTFS поддер­живает следующие операции над атрибутами: создание, удаление, чтение (как диапазон байтов) и запись (как диапазон байтов). Сервисы чтения и записи обычно имеют дело с неименованным атрибутом данных. Однако вызыва-ющая программа может указать другой атрибут данных, используя синтаксис имено­ванных потоков данных.

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

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

Атрибут

Имя атрибута

Описание

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

$VOLUME_

INFORMATION

$VOLUME_NAME

Эти атрибуты имеются только в файле метаданных $Volume. Они хранят версию и метку тома.

Стандартная

информация

$STANDART_

INFORMATION

Атрибуты файла «только для чтения», «архивный» и др., метки времени создания и последней модификации, число каталогов, ссылающихся на данный файл (счетчик жёстких связей).

Имя файла

$FILE_NAME

Имя файла в Unicode-символах. У файла может быть несколько атрибутов имени, например, если существует жёсткая связь с данным файлом или если для его длинного имени автоматически сгенерировано краткое имя, используемое программами MS–DOS и 16-разрядной Windows.

Дескриптор защиты

$SECURE_

DESCRIPTOR

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

Данные

$DATA

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

Корень индекса, выделенная

группа индексов и битовая карта индексов

$INDEX_ROOT,

$INDEX_

ALLOCATION,

$BITMAP

Эти атрибуты используются для выделения места под имена файлов и создания битовой карты индексов для больших каталогов (только каталогов).

Список атрибутов

$ATTRIBUTE_LIST

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

Идентификатор объекта

$OBJECT_ID

64-байтовый идентификатор файла или катало­га. в котором младшие 16 байт (128 бит) уникальны для тома. Сервисы отслеживания связей назначают идентификаторы объектов ярлыкам оболочки и файлам – источникам OLE-связей. NTFS предоставляет API-функции, позволяющие открывать файлы и каталоги не по именам, а по идентификаторам.

Информация повторного разбора

$REPARSE_POINT

Этот атрибут хранит данные точки повторного разбора, сопоставленной с файлом; присутствует в точках соединения и монтирования.

Расширенные атрибуты

$EA, $EA_

INFORMATION

Расширенные атрибуты, иногда используемые для обратной совместимости с приложениями OS/2.

Информация

EFS

$LOGGED_

UTILITY_STREAM

В этом атрибуте EFS хранит данные, используе­мые для управления шифрованием файла, например шифрованную версию ключа, необхо­димого для расшифровки файла, и список пользователей, имеющих право на доступ к этому файлу, Слово logged в имени атрибута означает, что изменения этого атрибута регистрируются в файле журнала тома.

Каждый атрибут в записи о файле идентифицируется кодом типа атрибута, имеет значение и необязательное имя. Значение атрибута представляет собой байтовый поток. Так, значением атрибута $FILE_NAME является имя файла, зна­чением атрибута $DATA – произвольный набор байтов, сохранённых пользователем в файле.

У большинства атрибутов нет имени, хотя у $DATA и атрибутов, связанных с индексом, они обычно есть. Имена позволяют различать атрибуты файла, отно­сящиеся к одному типу. Например, в файле с именованным потоком данных есть два атрибута $DATA: неименованный атрибут $DATA, хранящий неименованный по умолчанию поток данных, и именованный атрибут $DATA с именем дополнительного потока данных.

Лекция.

Обычно нерезидентным является содержимое файла и дескриптор защиты. Рассмотрим.

Стандартная Имя файла Дескриптор

информация защиты

Стартовый Стартовый Число

VCN LCN кластеров

0 1355 4

4 1588 3

Данные

VCN 0 1 2 3

////// //////// /////// //////

LCN 1355 1356 1357 1358

Данные VCN 4 5 6 7

///// /////// //////

LCN 1588 1589 1590

Данные