Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СПО

.pdf
Скачиваний:
41
Добавлен:
31.05.2015
Размер:
2.9 Mб
Скачать

5.4. Каталоговые системы

Связующим звеном между системой управления файлами и набором файлов служит файловый каталог. Простейшая форма системы каталогов состоит в том, что имеется один каталог, в котором содержатся все файлы. Каталог содержит информацию о файлах, включая атрибуты, местоположение, принадлежность. Пользователи обращаются к файлам по символьным именам. Однако способности человеческой памяти ограничивают количество имен объектов, к которым пользователь может обращаться именам. Иерархическая организация пространства имен позволяет значительно расширить эти границы. Именно поэтому каталоговые системы имеют иерархическую структуру. Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог и сеть, ли файл может входить в несколько каталогов (рис. 22).

Рис. 22. Общий вид древовидной и сетевой структуры каталогов

Например, в MS DOS и Windows каталоги образуют древовидную структуру, UNIX / Linux - сетевую.

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

Другим решением является такая организация хранения файлов, при котором пользователю предоставляется возможность объединить файловые системы, находящиеся на разных устройствах, в единую файловую систему, описываемую единым деревом каталогов. Такая операция называется монтиро-

ванием.

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

(рис. 23).

Файловая система, расположенная на системном диске, называется корневой. Для связи иерархий файлов в корневой файловой системе выбирается некоторый существующий каталог, в данном примере - каталог loc. После выполнения монтирования выбранный каталог loc становится корневым каталогом второй файловой системы. Через этот каталог монтируемая файловая система подсоединяется как поддерево к общему дереву.

Рис. 23. Пример монтирования файловой системы

5.5. Основные возможности файловой системы NTFS

При проектировании системы New Technology File System (NTFS) особое внимание было уделено следующим характеристикам:

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

нении процедуры проверки целостности файловой системы после перезагрузки машины эти незавершенные операции будут отменены и файлы будут приведены к исходному состоянию. Если же операция изменения данных в файлах завершается нормальным образом, то в этом самом служебном файле поддержки журналирования операция отмечается как завершенная);

расширенная функциональность. NTFS проектирова-

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

поддержка POSIX (Portable operating system for computing environments). С 1990 года POSIX является международ-

ным стандартом на машинно-независимый интерфейс компь-

ютерной среды. Поскольку правительство США требовало, чтобы все закупаемые им системы хотя бы в минимальной степени соответствовали стандарту POSIX, такая возможность была предусмотрена и в NTFS. К числу базовых средств файловой системы POSIX относится необязательное использование имен файлов с учетом регистра, хранение времени последнего обращения к файлу и механизм так называемых «жестких ссылок» – альтернативных имен, позволяющих ссылаться на один и тот же файл по двум и более именам;

гибкость. Модель распределения дискового пространства в NTFS отличается чрезвычайной гибкостью. Размер кластера может изменяться от 512 байт до 64 Кбайт. NTFS также поддерживает длинные имена файлов, набор символов Unicode

иальтернативные имена формата 8.3 для совместимости с

FAT.

NTFS превосходно справляется с обработкой больших массивов данных и достаточно хорошо проявляет себя при работе с томами объемом от 300-400 Мбайт и выше. Максималь-

но возможные размеры тома (и размеры файла) составляют 16 Эбайт (экзабайт – 1 Эбайт=264 Гбайт). Количество файлов в корневом и некорневом каталогах не ограничено.

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

Файловая система NTFS поддерживает объектную модель безопасности NT и рассматривает все тома, каталоги и файлы как самостоятельные объекты. NTFS обеспечивает безопасность на уровне файлов; это означает, что права доступа к томам, каталогам и файлам могут зависеть от учетной записи пользователя и тех групп, к которым он принадлежит. Каждый раз, когда пользователь обращается к объекту файловой системы, его права доступа проверяются по списку разрешений данного объекта. Если пользователь обладает достаточным уровнем прав, его запрос удовлетворяется; в противном случае запрос отклоняется. Эта модель безопасности применяется как при локальной регистрации пользователей на компьютерах, так и при удаленных сетевых запросах.

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

5.6. Структура тома с файловой системой NTFS

Одним из основных понятий, используемых при работе с NTFS, является понятие тома (volume). Возможно также создание отказоустойчивого тома, занимающего несколько разделов, то есть использование RAID-технологии. Как и многие другие системы, NTFS делит все полезное дисковое пространство тома на кластеры – блоки данных, адресуемые как едини-

цы данных. NTFS поддерживает размеры кластеров от 512 байт до 64 Кбайт; стандартом же считается кластер размером 2 или 4 Кбайт.

Все дисковое пространство в NTFS делится на две неравные части (рис. 24). Первые 12 % диска отводятся под так называемую MFT-зону – пространство, которое может занимать, увеличиваясь в размере, главный служебный метафайл MFT. Запись каких-либо данных в эту область невозможна. MFTзона всегда держится пустой – это делается для того, чтобы самый главный, служебный файл (MFT) по возможности не фрагментировался при своем росте. Остальные 88 % тома представляют собой обычное пространство для хранения файлов.

Рис. 24. Структура тома NTFS

MFT (master file table, общая таблица файлов) представляет собой централизованный каталог всех остальных файлов диска, в том числе и себя самого. MFT поделен на записи фиксированного размера в 1 Кбайт, и каждая запись соответствует какому-либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны операционной системе – они называются метафайлами, причем самый первый метафайл – сам MFT. Эти первые 16 элементов MFT – единственная часть диска, имеющая строго фиксированное положение. Копия этих же 16 записей хранится в середине тома для надежности, поскольку они очень важны. Остальные части MFT-файла могут располагаться, как и любой другой

файл, в произвольных местах диска – восстановить его положение можно с помощью его самого, «зацепившись» за самую основу – за первый элемент MFT.

Упомянутые первые 16 файлов NTFS (метафайлы) носят служебный характер; каждый из них отвечает за какой-либо аспект работы системы. Метафайлы находятся в корневом каталоге NTFS-тома. Все они начинаются с символа имени «$», хотя получить какую-либо информацию о них стандартными средствами сложно. В табл. 4 ниже приведены основные известные метафайлы и их назначение.

 

Таблица 4

 

Основные метафайлы NTFS

 

 

Имя мета-

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

файла

 

SMFT

Сам Master File Table

SMFTmirr

Копия первых 16 записей MFT, размещенная посе-

 

редине тома

$LogFile

Файл поддержки операций журналирования

$Volume

Служебная информация — метка тома, версия

 

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

SAttrDef

Список стандартных атрибутов файлов на томе

$.

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

$Bitmap

Карта свободного места тома

$Boot

Загрузочный сектор (если раздел загрузочный)

$Quota

Файл, в котором записаны права пользователей на

 

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

$Upcase

Файл — таблица соответствия заглавных и про-

 

писных букв в именах файлов. В NTFS имена фай-

 

лов записываются в Unicode (что составляет 65 ты-

 

сяч различных символов) и искать большие и ма-

 

лые эквиваленты в данном случае — нетривиаль-

 

ная задача

Все файлы тома упоминаются в MFT. В этой структуре хранится вся информация о файлах, за исключением собственно данных. Имя файла, размер, положение на диске отдельных фрагментов и т. д. – все это хранится в соответствующей записи. Если для информации не хватает одной записи MFT, то используется несколько записей, причем не обязательно идущих подряд. Файлы могут иметь не очень большой размер. Тогда применяется довольно удачное решение: данные файла хранятся прямо в MFT, в оставшемся от основных данных месте в пределах одной записи MFT. Файлы, занимающие сотни байт, обычно не имеют своего «физического» воплощения в основной файловой области – все данные такого файла хранятся в одном месте, в MFT.

Файл в томе с NTFS идентифицируется так называемой файловой ссылкой (File Reference), которая представляется как 64-разрядное число. Файловая ссылка состоит из номера файла, который соответствует позиции его файловой записи в MFT, и номера последовательности. Последний увеличивается всякий раз, когда данная позиция в MFT используется повторно, что позволяет файловой системе NTFS выполнять внутренние проверки целостности.

Каждый файл в NTFS представлен с помощью потоков (streams), то есть у него нет как таковых «просто данных», а есть «потоки». Для правильного понимания потока достаточно указать, что один из потоков и носит привычный нам смысл – данные файла. Но большинство атрибутов файла – это тоже потоки. Таким образом, получается, что базовая сущность у файла только одна – номер в MFT, а все остальное, включая и его потоки, – опционально. Данный подход может эффективно использоваться – например, файлу можно «прилепить» еще один поток, записав в него любые данные. В Windows 2000 (и далее) таким образом записана информация об авторе и содержании файла (одна из закладок в свойствах файла, просматриваемых, например, из проводника). Эти дополнительные потоки не видны стандартными средствами работы с фай-

лами: наблюдаемый размер файла – это лишь размер основного потока, который содержит традиционные данные.

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

 

Таблица 5

Атрибуты файлов в системе NTFS

 

 

Системный

Описание атрибута

атрибут

 

Стандартная ин-

Традиционные атрибуты Read Only,

формация о файле

Hidden, Archive, System, отметки времени,

 

включая время создания или последней

 

модификации, число каталогов, ссылаю-

 

щихся на файл

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

Список атрибутов, из которых состоит

 

файл, и файловая ссылка на файловую за-

 

пись и MFT, в которой расположен каждый

 

из атрибутов. Последний используется, ес-

 

ли файлу необходимо более одной записи в

 

MFT

Имя файла

Имя файла в символах Unicode. Файл мо-

 

жет иметь несколько атрибутов – имен

 

файла, подобно тому как это имеет место в

 

UNIX-системах. Это случается, когда име-

 

ется связь POSIX с данным файлом или ес-

 

ли у файла есть автоматически сгенериро-

 

ванное имя в формате 8.3

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

Структура данных защиты (ACL), предо-

ты

храняющая файл от несанкционированного

 

доступа. Атрибут «дескриптор защиты»

 

определяет, кто владелец файла и кто име-

 

ет доступ к нему

 

Продолжение табл. 5

Данные

Собственно данные файла, его содержи-

 

мое. В NTFS у файла по умолчанию есть

 

один безымянный атрибут данных, и он

 

может иметь дополнительные именован-

 

ные атрибуты данных. У каталога нет ат-

 

рибута данных по умолчанию, но он может

 

иметь необязательные именованные атри-

 

буты данных

Корень индекса,

Атрибуты, используемые для индексов

размещение ин-

имен файлов в больших каталогах

декса, битовая кар-

 

та (только для ка-

 

талогов)

 

Расширенные ат-

Атрибуты, используемые для реализации

рибуты HPFS

расширенных атрибутов HPFS для подсис-

 

темы OS/2 и OS/2-клиентов файл-серверов

 

Windows NT

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

Имя файла в NTFS, в отличие от файловых систем FAT и HPFS, может содержать (почти) любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode – 16-битном представлении, которое дает 65 535 разных символов. Максимальная длина имени файла в NTFS – 255 символов.

Большой вклад в эффективность файловой системы вносит организация каталога. Каталог в NTFS представляет собой