logo
ZH ос 20 вопр 36 стр

Атрибуты файла.

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

Каждый атрибут файла хранится в файле как отдельный поток байтов. Строго говоря, 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.

$LOGGED_UTILITY_STREAM

Информация EFS

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

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

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

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