русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 1767; Нарушение авторских прав


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

Тома.

Структура NTFS на диске.

Новые возможности NTFS.

Особенности NTFS.

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

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

3. Избыточность данных и отказоустойчивость. В Windows файловая система NTFS организована с помощью драйвера отказоустойчивого диска. Данные дублируются на несколько дисков, создают-ся зеркальные диски.

4. Сжатие данных.

5. Шифрование данных, хранимых на диске.

 

1. Множественные потоки данных. В NTFS файл – это набор атрибутов, причём данные – это один из атрибутов файла. В файле можно создавать несколько атрибутов данных.

myfile.dat: stream2

2. Имена в UNICODE. Это 16-разрядная кодировка символов. В FAT используется 8-рязрядная кодировка символов. В UNICODE 65536 символов. Имена файлов могут содержать до 255 симво-лов, и содержать несколько точек и пробелов.

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

4. Переназначение плохих кластеров. Позволяет динамически помечать плохие кластеры.

 

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



Структура NTFS начинается с тома. Том соответствует логическому разделу на диске и созда-ется при форматировании диска или его части под NTFS. Оснастка Disk Management (Управление дисками) консоли ММС также позволяет со­здать том RAID, охватывающий несколько дисков.

На диске может быть один или несколько томов. NTFS обрабатывает каждый том независимо от других. Три примера конфигурации 150-мегабайтного жесткого диска показаны на рисунке.

 

           
     


С: С:

С: (75 Мб) (60 Мб)

(150 Мб)

D: D:

(75 Мб) (90 Мб)

 

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

Кластеры.

Размер кластера на томе NTFS, или кластерный множитель (cluster factor), уста­навливается при форматировании тома командой format или в оснастке Disk Management. Размер кластера по умолчанию определяется размером тома, но всегда содержит целое число физических секторов с дискретностью N2 (т.е. 1 сектор, 2 сектора, 4 сектора, 8 секторов и так далее). Кластерный множитель выражается числом байт в кластере, например 512 байт, 1 Кб или 2 Кб.

Внутренне NTFS работает только с кластерами. (Однако NTFS инициирует низкоуровневые операции ввода-вывода на томе, выравнивая передаваемые дан­ные по размеру сектора и подгоняя их объем под значение, кратное размеру секторов.) NTFS использует кластер как единицу выделения пространства для поддержания независимости от размера физического сектора. Это позволяет NTFS эффективно работать с очень большими дисками, используя кластеры большего размера, и поддерживать нестандартные диски с размером секторов, отличным от 512 байт. Применение больших кластеров на больших томах умень­шает фрагментацию и ускоряет выделение свободного пространства за счет небольшого проигрыша в эффективности использования дискового простран-ства. Команда format или оснастка Disk Management выбирает кластерный мно­житель в зависимости от размера тома, но Вы можете изменить это значение.

NTFS адресуется к конкретным местам на диске, используя логические номе­ра кластеров (logical cluster numbers, LCN). Для этого все кластеры на томе про­сто нумеруются по порядку — от начала до конца. Для преобразования LCN в физический адрес на диске NTFS умножает LCN на кластерный множитель и получает байтовое смещение от начала тома, воспринимаемое интерфейсом драйвера диска. На данные внутри файла NTFS ссылается по виртуальным но­мерам кластеров (virtual cluster numbers, VCN), нумеруя кластеры, которые при­надлежат конкретному файлу (от 0 до т). VCN не обязательно должны быть физически непрерывными.

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

Главная таблица файлов (MFT) занимает центральное место в структуре NTFS-тома. MFT реализована как массив записей о файлах. Размер каждой запи­си фиксирован и равен 1 Кб. Логически MFT содержит по одной строке на каждый файл тома, включая строку для самой MFT. Кроме MFT на каждом томе NTFS имеется набор файлов мета­данных с информацией, необходимой для реализации структуры файловой си­стемы. Имена всех файлов метаданных NTFS начинаются со знака доллара ($), хотя эти знаки скрыты. Так, имя файла MFT –– $Mft. Остальные файлы NTFS-тома являются обычными файлами и каталогами. Обычно каждая запись MFT соответствует отдельному файлу. Но если у фай­ла много атрибутов или он сильно фрагментирован, для него может понадо­биться более одной записи. Тогда первая запись MFT, хранящая адреса других записей, называется базовой (base file record).

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

Файл

$Mft – MFT
$MftMirr – зеркальная копия MFT
$LogFile – файл журнала
$Volume – файл тома
$AttrDef – таблица определения атрибутов
\ – корневой каталог
$Bitmap – файл распределения кластеров тома
$Boot – загрузочный сектор
$BadClus – файл плохих кластеров
$Secure – файл параметров защиты
$UpCase – сопоставление имён с буквами в верхнем регистре
$Extend – каталог расширенных метаданных
Не используется
Не используется
Пользовательские файлы и каталоги

 

Найдя запсиь для МFT, NTFS получает из её атрибута данных информацию о сопоставлении VCN и LCN и сохраняет ее в памяти. В каждой группе (run) хра­нится сопоставление VCN-LCN и длина этой группы – вот и вся информация, необходимая для того, чтобы найти LCN по VCN. Эта информация сообщает NTFS, где на диске искать группы, образующие МFT. Затем NTFS обраба-тывает записи MFT еще для нескольких файлов метаданных и открывает эти файлы. Наконец, NTFS выполняет операцию восстановления файловой системы и открывает остальные файлы метаданных. С этого момента пользователь может обращаться к данному дис­ковому тому.

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

Еще один элемент MFT зарезервирован для корневого каталога (также обо­значаемого как «\»). Его запись содержит индекс файлов и каталогов, хранящих­ся в корне структуры каталогов NTFS. Когда NTFS впервые получает запрос на открытие файла, она начинает его поиск с записи корневого каталога. Открыв файл, NTFS сохраняет файловую ссылку MFT для этого файла и поэтому в следующий раз когда понадобится считать или записать тот же файл, сможет на­прямую обратиться к его записи в MFT.

NTFS регистрирует распределение дискового пространства в файле битовой карты (bitmap file) с именем $Bitmap. Атрибут данных для файла битовой кар­ты содержит битовую карту, каждый бит которой представляет кластер тома и сообщает, свободен кластер или выделен.

Файл защиты (security file) с именем $Secure хранит базу данных дескрип­торов защиты, действующих в пределах тома. Дескрипторы защиты файлов и каталогов NTFS можно настраивать индивидуально, но для экономии места хранит настройки дескрипторов защиты в общем файле, который позволяет файлам и каталогам с одинаковыми параметрами защиты ссылаться на один и тот же дескриптор защиты. Такая оптимизация даст существенную экономию в большинстве сред, потому что в них целые деревья каталогов имеют одинако­вые параметры защиты.

Другой системный файл, загрузочный (boot file), с именем $Boot хранит код начальной загрузки Windows 2000. Для успешного запуска системы код началь­ной загрузки должен находиться на диске в определенном месте. При форма­тировании команда format определяет это место в виде файла, создавая для него запись в MFT. При этом NTFS следует своим правилам, согласно которым все данные хранятся на диске в виде файлов. Загрузочный файл, как и файлы метаданных NTFS, может быть защищен индивидуальным дескриптором защиты, в такой модели «на диске есть только файлы» код начальной загрузки может быть изменен путем обычного файлового ввода-вывода, хотя загрузочный файл за­щищен от редактирования.

NTFS поддерживает файл плохих кластеров (bad-cluster file) с именем $BadClus, в котором регистрируются все сбойные участки дискового тома, и файл тома (volume file) с именем $Volume, который содержит имя тома, версию NTFS, под которую отформатирован том, и бит, устанавливае-мый при каком-либо повреждении диска. Если этот бит установлен, диск должен быть восста­новлен утилитой Chkdsk. Файл сопоставления имен с буквами в верхнем регис­тре (uppercase file) с именем $UpCase включает таблицу трансляции букв меж­ду верхним и нижним регистрами. NTFS также поддерживает файл, содержащий таблицу определения атрибутов (attribute definition table), с именем $AttrDef; в нем определяютcя типы атрибутов, поддерживаемые томом, и указывается, являются ли они индексируемыми, следует ли их восстанавливать в ходе опера­ции восстановления системы и т. д.

Некоторые файлы метаданных NTFS хранит в каталоге расширенных мета­данных $Extend, в том числе помещая туда файл идентификаторов объектов ($ObjId), файл квот ($Quota), файл журнала регистрации изменений ($UsnJrnl) и файл точек повторного разбора ($Reparse). В этих файлах содержится ин­формация, относящаяся к дополнительным возможностям NTFS. Файл иденти­фикаторов объектов хранит идентификаторы объектов «файл», файл квот – значения квот и информацию о поведении томов, на которых используются квоты, файл точек повторного разбора – список файлов и каталогов, включа­ющих данные точек повторного разбора, а в файле журнала изменений регис­трируются изменения файлов и каталогов.

 

Файл на томе 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 с именем дополнительного потока данных.

 



<== предыдущая лекция | следующая лекция ==>
NTFS (New Technology File System). | Битовая карта.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.