Содержание
1. Общие сведения о файловых системах
2. Файловая система FAT
3. Файловая система FAT 32
4. Файловая система HPFS
5. Файловая система NTFS
6. Файловая система ОС семейства UNIX
Список литературы
1. Общие сведения о файловых системах
Совокупность каталогов и системных структур данных, отслеживающих размещение файлов на диске и свободное дисковое пространство, называется файловой системой. Основной структурной единицей любой файловой системы является файл и каталог.
Файл – минимальная структурированная именованная последовательность данных. Каталог (папка) является своеобразной объединяющей структурой для расположенных на диске файлов. Каталог может содержать в себе файлы и другие (вложенные) каталоги. Каталоги и файлы образуют на диске древовидную иерархическую структуру – дерево каталогов. Единственный каталог не входящий ни в одну из директорий называется корневым каталогом.
Все файлы в компьютере хранятся на магнитных дисках, которые являются частью его конструкции. Магнитные диски являются устройствами произвольного доступа. В них каждая запись данных имеет свой уникальный адрес, обеспечивающий непосредственный доступ к ней, минуя все остальные записи. Для хранения данных служит диск (пакет из нескольких дисков), покрытый ферромагнитным слоем. Запись на магнитный диск и считывание данных с него осуществляется головками чтения/записи.
Рис. 1 Структура поверхности магнитного диска
Поверхность диска разбита на дорожки представляющие собой окружности (рис. 1). Дорожки разделены на секторы. Размер сектора обычно составляет 512 байт.
В большинстве файловых систем пространство на диске выделяется кластерами, которые состоят из нескольких секторов. Кластер – минимальный размер места на диске, которое может быть выделено для хранения одного файла. Перед тем, как диск может быть использован для записи данных, он должен быть размечен — на его дорожки должны быть записаны заголовки секторов с правильными номерами дорожки и сектора, а также, если это необходимо, маркеры. Как правило, при этом же происходит тестирование поверхности диска для поиска дефектов магнитного слоя. Не следует путать эту операцию — физическое форматирование диска — с логическим форматированием, заключающемся в создании файловых систем. Современные жесткие диски обычно требуют физической разметки при их изготовлении.
Один физический жесткий диск может быть разделен на несколько разделов – логических дисков (томов). Каждый логический диск представляет собой как бы отдельное устройство. Следовательно, на нем может быть своя файловая система и свой корневой каталог.
В операционных системах MS-DOS и Windows каждое дисковое устройство обозначается латинской буквой. Для имени логического диска используются буквы от A до Z. Буквы A и B обозначают дисководы гибких магнитных дисков (FDD). Начиная с буквы C, именуются разделы жесткого диска (HDD), дисководы оптических дисков и виртуальные диски. Для обращения к файлу используется следующая спецификация:
устройство:\путь\имя файла.расширение
Здесь путь – список каталогов, входящих друг в друга, в последнем из которых и содержится указанный файл. Если путь не указан, следует что, файл находится в корневом каталоге данного диска. В MS-DOS имя файла состоит из 8 символов, точки и 3 символов расширения имени файла. Точка отделяет собственно имя от расширения. Имя файла может состоять из латинских букв, цифр 0 – 9, некоторых других символов, и не может содержать пробел. В Windows поддерживаются длинные имена файлов (от 1 до 255 символов), имя может содержать пробелы. При использовании файловых систем HPFS и NTFS имя файла может содержать несколько точек.
В именах файлов нельзя использовать символы “ * ” и “ ? ”, так как они используются в масках имен при поиске файлов.
Расширение имени необходимо для определения типа файла и связывания файла с определенной программой, с помощью которой он может быть открыт. Хотя имя файла может и не иметь расширения.
Различают следующие типы файлов:
Текстовые файлы. Текстовые файлы могут содержать простой или размеченный текст, в кодировке ASCII, ANSI или UNICODE. Текст без разметки содержит только отображаемые символы и простейшие управляющие символы (возврат каретки и табуляции). Размеченный текст содержит бинарную и символьную разметку (межстрочный интервал, новая страница и т.п.), может содержать таблицы и рисунки;
Графические файлы – файлы, содержащие точечные или векторные изображения;
Файлы мультимедиа – различают файлы содержащие оцифрованный звук (файлы аудио) и фалы видео (содержат изображение и звук);
Исполняемые файлы – программы готовые к исполнению (файлы с расширением exe и com).
Архивные файлы – файлы архивов rar, tar, zip, cab и т.п.
Файлы библиотек – файлы с расширением DLL, OCX и LIB;
Файлы данных – бинарные или текстовые файлы с различным расширением, используемые программами во время работы.
Информация о логической организации физического жесткого диска
(числе логических дисков, их размере) расположена в главной загрузочной записи (MBR). MBR расположена в самом первом секторе жесткого диска и не входит в структуру файловой системы.
В операционных системах семейства UNIX разделение на логические диски отсутствует, а используется понятие корневого каталога файловой системы. Спецификация обращения к файлу выглядит следующим образом:
/путь/имя файла.тип
В операционной системе RSX (RSX-11) дисковые устройства идентифицируются кодами: групповой идентификатор, порядковый номер в группе, двоеточие (например, DKx, DMx или DPx). Спецификация обращения к файлу выглядит следующим образом:
устройство:[g,n] имя.расширение
где:
устройство – идентификатор устройства (DKx, DMx, DPx – магнитные диски; MTx – магнитные ленты; ТТх – терминал ЭВМ, LPx - принтер);
[g,n] – каталог.
Современные операционные системы имеют возможность работать с несколькими файловыми системами одновременно. Прежде чем операционная система сможет использовать файловую систему, она должна выполнить над этой системой операцию, называемую монтированием. В общем случае операция монтирования включает следующие шаги:
Проверку типа монтируемой файловой системы; проверку целостности файловой системы;
Считывание системных структур данных и инициализацию соответствующего модуля файлового менеджера (драйвера файловой системы). В некоторых случаях — модификацию файловой системы с тем, чтобы указать, что она уже смонтирована;
Включение новой файловой системы в общее пространство имен. Многие пользователи MS DOS никогда не сталкивались с понятием монтирования. Дело в том, что эта система (как и многие другие ДОС, например RT-11) выполняет упрощенную процедуру монтирования при каждом обращении к файлу.
2. Файловая система FAT
Файловая система FAT представляет собой таблицу размещения файлов, в которой указываются:
непосредственно адреса участков логического диска, предназначенные для размещения файлов;
свободные области дискового пространства;
дефектные области диска.
В этой таблице каждому блоку, предназначенному для хранения данных, соответствует 16-битовое значение. Если блок свободен, то значение будет нулевым. Если же блок принадлежит файлу, то значение равно адресу следующего блока этого файла. Если это последний блок в файле, то значение — OxFFF (рис. 2). Существует также специальный код для обозначения плохого блока, не читаемого из-за дефекта физического носителя. В каталоге хранится номер первого блока и длина файла, измеряемая в байтах. Емкость диска при использовании 12-битовой FAT ограничена 4096 блоками (2 Мбайт), что приемлемо для дискет, но совершенно не годится для жестких дисков и других устройств большой емкости. На таких устройствах DOS использует FAT с 16-битовыми элементами. На еще больших (более 32 Мбайт) дисках DOS выделяет пространство не блоками, а кластерами из нескольких блоков.
Рис. 2 Структура файловой системы FAT
В таблице FAT кластеры, принадлежащие файлу или каталогу, связываются в цепочки. В 16-разрядной FAT можно иметь до 65536 кластеров. В операционных системах Windows NT/2000/XP разделы FAT могут иметь до 4097 Мб. В этом случае кластер занимает 128 секторов диска.
Логическое объединение секторов в кластеры позволяет уменьшить размер таблицы FAT и ускорить доступ к файлу. Однако слишком большой размер кластера приводит к неэффективному использованию области данных, особенно при большом количестве маленьких файлов. Например, при размере кластера в 32 сектора (16 Кб) средняя величина потерь на файл составляет 8 Кб. Поэтому в современных файловых системах размер кластера не превышает 4 Кб.
Поскольку файлы на диске подвержены изменению (удаляются, перемещаются, увеличиваются или уменьшаются), то выделение первого свободного кластера для новой порции данных приводит к фрагментации файлов. Данные одного файла могут располагаться не в смежных кластерах, а в удаленных друг от друга.
Таблица FAT является основой данной файловой системы, поэтому она хранится на диске в двух экземплярах. Обновляются копии FAT одновременно, а для работы используется только первый экземпляр. Если он окажется поврежденным, то произойдет обращение ко второму экземпляру. Утилиты проверки и восстановления файловой системы при обнаружении несоответствия первичной и резервной таблицы FAT осуществляет восстановление основной таблицы, используя данные из её копии.
Система FAT очень проста и имеет одно серьезное достоинство: врожденную устойчивость к сбоям. В то же время у нее есть и ряд серьезных недостатков. Первый недостаток состоит в том, что при каждой операции над файлами система должна обращаться к FAT. Это приводит к частым перемещениям головок дисковода и в результате к резкому снижению производительности. Действительно, исполнение программы на одной и той же машине под MS DOS и под DOS-эмулятором систем UNIX или OS/2 различается по скорости почти в 1,5 раза. Особенно это заметно при архивировании больших каталогов.
Файловая система FAT 16 может иметь не более 65535 кластеров на логический диск, и это приводит к ограничению размера логического диска. С увеличением размера диска приходится увеличивать размер кластеров, что приводит к крайне неэффективному и бесполезному расходу дискового пространства.
В файловой системе FAT дисковое пространство логического диска делится на системную область и область данных. Системная область создается и инициализируется при форматировании диска, а в последующем обновляется при работе. Область данных содержит файлы и каталоги, которые образуют на диске иерархическое дерево каталогов, с единственной директорией не входящей в другие – корневым каталогом. Область данных доступна через пользовательский интерфейс операционной системы. Системная область содержит загрузочную запись, зарезервированные сектора, таблицу размещения файлов и корневой каталог. Для каждого файла и каталога в файловой системе хранится справочная информация. Каждый элемент такого справочника занимает 32 байта и содержит: имя файла или каталога, расширение имени файла, атрибуты файла – системный, архивный, только для чтения и др., дату и время создания и последнего изменения файла, номер начального кластера, размер файла.
3. Файловая система FAT 32
По мере развития операционных систем к 16-разрядной FAT добавились ещё две файловые системы, используемые в широко распространенных операционных системах от Microsoft: VFAT (виртуальная система FAT), используемая в Windows 95 и Windows NT, и FAT 32 используемая в Windows 98 и одной из версий Windows 95 (OEM Service Release 2, она же Windows 95 OSR2). В настоящее время файловая система FAT 32 поддерживается современными операционными системами
Windows ME/2000/XP. Имеются реализации FAT 32 для Windows NT и Linux.
Файловая система VFAT впервые появилась в Windows 3.11 (Windows for Workgroups). С появлением Windows 95 в VFAT добавилась поддержка длинных имен файлов.
Файловая система VFAT имеет совместимость с FAT 16. Поэтому при работе с VFAT необходимо использовать утилиты обслуживающие именно её. Более ранние файловые утилиты DOS запросто модифицируют то, что кажется им исходной структурой FAT. Это может привести к потере длинных имен файлов. Основными недостатками файловых систем FAT 16 и VFAT, которые привели к необходимости создания новой файловой системы, являются большие потери на кластеризацию и ограничения на размер логического диска.
Файловая система FAT 32 является полностью самостоятельной 32-разрядной файловой системой и имеет более совершенную структуру.
FAT 32 намного эффективнее расходует дисковое пространство. Кластеры в этой файловой системе меньше, чем кластеры в предыдущих версиях FAT. Следовательно, для дисков размером до 8 Гб FAT 32 может использовать кластеры размером 4 Кб. Таблица размещения файлов в FAT 32 может содержать до кластеров (в 32-разрядном коде, используемом для представления номера кластера, фактически используются только 28 разрядов). Система FAT 32 также может перемещать корневой каталог и использовать резервную копию FAT вместо стандартной. Расширенная загрузочная запись позволяет создавать копии важных структур данных. Это повышает устойчивость файловой системы к нарушениям структуры таблицы размещения данных. Корневой каталог представлен в виде обычной цепочки кластеров и может находиться в произвольном месте диска. Файловая система FAT 32 имеет ряд усовершенствований структуры корневого каталога. Для представления длинных имен используются элементы корневого каталога.
Для этого число файлов в нем увеличено с 512 до 2048. Кроме того, для того чтобы снизить расход элементов каталога на описание файлов с длинными именами, рекомендуется не давать файлам слишком длинные имена.
Длинное имя файла в VFAT представлено следующим образом.
Первые 11 байт элемента каталога DOS используются для хранения имени файла. Такое имя состоит из двух частей: в первых восьми байтах хранятся символы собственно имени, а в последних трех – символы расширения имени файла. Если имя состоит менее чем из восьми символов, то в элементе каталога оно дополняется символами пробела, для того чтобы полностью заполнить все восемь байтов. При работе с именем файла необходимость в отображении точки, которая используется для отделения имени файла от расширения, отпадает. В 12-ом байте элемента каталога хранятся атрибуты файла:
А – архив. Показывает, что файл был открыт программой имеющей возможность изменить его содержимое.
D – каталог. Показывает, что данный элемент указывает на подкаталог (папку), а не на файл.
V – том (volume). Применяется только к одному элементу каталога в корневом каталоге. В нем собственно и хранится имя дискового тома.
S – системный. Показывает, что файл является частью операционной системы или специально помечен подобным образом.
H – скрытый. К скрытым файлам относятся также системные файлы.
R – только для чтения. Указывает, что данный файл не следует изменять. Этот атрибут используется для примитивной защиты от ошибок пользователя.
На дисках с FAT 12 или FAT 16 следующие 10 байт не используются. На диске с FAT 32 они содержат различную информацию о файле. Тринадцатый байт зарезервирован для Windows NT и в подсистеме DOS не используется.
Для длинного имени файла используется несколько элементов каталога. Таким образом, применение длинных имен приводит к уменьшению количества файлов, находящихся в корневом каталоге. Длинное имя может содержать до 256 символов и всего один файл с полным длинным именем займет до 25 элементов таблицы FAT. При этом на диске с файловой системой FAT 16 максимальное число файлов в корневом каталоге сократится до 21. Поэтому необходимо избегать длинных имен файлов в корневом каталоге. Длинна полной спецификации файла, включающая в себя путь к файлу и его имя, также ограничена. В файловой системе FAT 32 успешно решена проблема длинных имен в корневом каталоге, но проблема с ограничением длинны полной файловой спецификации остается. Поэтому рекомендуется ограничивать длинные имена 75-80 символами, для того чтобы оставить достаточно места для пути к файлу.
4. Файловая система HPFS
Файловая система HPFS (высокопроизводительная файловая система) впервые появилась в операционной системе OS/2. HPFS является файловой системой для многозадачного режима работы, поддерживает длинные имена файлов, и обеспечивает высокую производительность при работе с дисками большого объема. Она, как и FAT, имеет древовидную структуру каталогов, но в ней еще предусмотрены автоматическая сортировка каталогов и специальные расширенные атрибуты, упрощающие обеспечение безопасности на файловом уровне и создание множественных имен. Расширенные атрибуты позволяют хранить дополнительную информацию о файле. Например, каждому файлу может быть сопоставлено его индивидуальное графическое изображение (значок).
По сравнению с FAT HPFS обладает более высокой производительностью, надежностью, и эффективнее использует дисковое пространство. Еще одна особенность заключается в том, что пространство, освобожденное стертым файлом, обычно используется не сразу и файл можно восстановить.
Для достижения более этого в HPFS применяется:
- размещение каталогов в середине дискового пространства;
- используется метод бинарных сбалансированных деревьев, для ускорения поиска информации о файле;
- информация о местоположении файловых записей рассредоточена по всему диску, при размещении самого файла (по возможности) в смежных секторах и вблизи от данных об их местоположении.
Прежде всего, HPFS пытается расположить файл в смежных кластерах, а если такой возможности нет, поместить его таким образом, чтобы фрагменты файла расположенные в смежных секторах диска, физически были как можно ближе друг к другу. Это существенно сокращает время позиционирования головок чтения/записи жесткого диска.
Все эти преимущества обусловлены структурой диска с файловой системой HPFS.
В начале диска расположено несколько управляющих блоков. Все остальное дисковое пространство разбито на множество областей из смежных секторов, или полос. В каждой области располагаются сами файлы и служебная информация о свободных и занятых секторах в этой области. Каждая полоса занимает на диске 8 Мб и имеет собственную битовую карту распределения секторов. Эти битовые карты показывают, какие секторы данной полосы заняты, а какие свободны. Каждому сектору полосы данных соответствует один бит в её битовой карте. Битовые карты двух полос располагаются на диске рядом, как и сами полосы (рис. 3). Такое расположение полос и битовых карт позволяет непрерывно разместить на диске файл размером до 16 Мб, без отдаления от самого файла информацию об его местонахождении. Если бы на весь логический диск была бы только одна адресная структура данных (как в FAT), то для работы с ней приходилось бы перемещать головки чтения/записи в среднем через половину диска. Именно для исключения таких потерь диск в HPFS разделен на полосы.
Дисковое пространство в HPFS выделяется не кластерами, а блоками. Размещение файлов в таких небольших блоках позволяет экономить дисковое пространство. Так потери составляют в среднем всего 256 байт на файл.
Загрузочный блок | Дополнительный блок | Резервный блок | Полоса 1 | Битовая карта 1 | Битовая карта 2 | Полоса 2 | Полоса 3 | Битовая карта 3 | Битовая карта 4 | Полоса 4 |
Рис. 3 Структура раздела HPFS
Кроме полос с записями файлов и битовых карт на томе (логическом диске) HPFS имеются еще загрузочный блок, дополнительный блок и резервный блок. Загрузочный блок содержит имя тома, его серийный номер, блок параметров BIOS и программу начальной загрузки. Блок параметров BIOS содержит информацию о жестком диске – количестве цилиндров и головок диска, числе секторов на дорожке. Эта информация используется программными модулями HPFS для поиска нужного сектора.
В дополнительном блоке содержится указатель на список битовых карт. В этом списке перечислены все блоки на диске, в которых расположены битовые карты. Также в дополнительном блоке хранятся указатели на список дефектных блоков и полосу каталогов, указатель на файловый узел корневого каталога, а также дата последней проверки раздела. В списке дефектных блоков перечислены все поврежденные секторы диска. Когда операционная система обнаруживает поврежденный блок, он вносится в этот список и для записи информации больше не используется. Еще в дополнительном блоке содержится информация о размере полосы.
Резервный блок содержит указатель на карту аварийного замещения, указатель на список свободных запасных блоков каталогов, используемых для операций на почти переполненном диске, и ряд системных флагов и дескрипторов. Резервный блок обеспечивает высокую отказоустойчивость файловой системы HPFS, позволяя восстанавливать поврежденные данные.
Файлы и каталоги в HPFS базируются на файловом узле. Файловый узел – это структура, содержащая информацию о расположении файла и о его расширенных атрибутах. Каждый файл и каталог имеет свой файловый узел. Каждый файловый узел занимает один сектор и всегда располагается вблизи своего файла (обычно непосредственно перед файлом).
Файловый узел содержит размер файла и первые 15 символов имени файла, специальную служебную информацию, статистику доступа к файлу, расширенные атрибуты файла и список управления доступом.
Сокращенное имя файла используется, когда файл с длинным именем копируется на диск с файловой системой FAT, не допускающей подобных имен. В этом случае используются первые восемь символов оригинального имени и первые три символа расширения. Если имя файла содержит несколько точек, что допустимо в HPFS, то используются три символа после последней из этих точек.
Файловая система HPFS при записи файла на диск стремится избежать фрагментации. Если файл непрерывен то, его размещение описывается двумя 32-разрядными числами. Первое число представляет собой указатель на первый блок файла, а второе – длину экстента, то есть число следующих друг за другом блоков, принадлежащих файлу. Из этого следует, что максимальный объем диска в HPFS составляет 2 Тб. Если файл фрагментирован, то размещение его экстентов описывается дополнительными парами 32-разрядных чисел. Фрагментация происходит, когда на диске нет непрерывного свободного участка, достаточного для размещения файла целиком. В этом случае файл делится на несколько частей и располагается в разных местах диска. Файловая система HPFS старается поместить части фрагментированного файла как можно ближе друг к другу, для того чтобы сократить время позиционирования головок чтения/записи при чтении файла с жесткого диска. Также файловая система старается резервировать минимум 4 Кб места в конце файлов подлежащих изменению.
Пользовательская программа может указать размер файла при его создании. В этом случае система сразу попытается выделить место под файл так, чтобы он занимал как можно меньше экстентов. Если программа не сообщила размера файла, используется значение по умолчанию. Фактически, HPFS размещает место, под файл, начиная выделение с наибольшего непрерывного участка свободного пространства. В результате фрагментированными оказываются только файлы, длина которых увеличивалась многократно или же те, которые создавались при почти заполненном диске. При нормальной работе файл редко занимает больше 3—4 экстентов.
В файловом узле можно поместить информацию о 8 экстентах файла. Если их больше, то в файловый узел этого файла записывается указатель на блок размещения, который может содержать до 40 указателей на экстенты или другие блоки размещения.
Большое значение для увеличения производительности HPFS имеет метод сбалансированных двоичных деревьев, используемый для хранения и поиска информации о местонахождении файлов. В файловой системе FAT каталог имеет линейную неупорядоченную структуру и при поиске файла необходимо последовательно просматривать его с самого начала. В HPFS структура каталога представляет собой сбалансированное дерево, с записями расположенными в алфавитном порядке. Каждая запись содержит атрибуты файла, указатель на соответствующий файловый узел, информацию о времени и дате создания, последнего изменения и обращения к файлу, о размере файла, счетчик обращения к файлу, информацию о длине имени файла и само имя, и другая подобная информация. Таким образом, при поиске файла в каталоге просматриваются только необходимые ветви двоичного дерева. Записи каталога заведомо не относящиеся к искомому файлу не рассматриваются.
При переименовании файлов может возникнуть перебалансировка дерева. Попытка переименования может закончиться неудачей из-за недостатка дискового пространства, даже если файл в размере не увеличится. Для предотвращения этого HPFS имеет маленький пул свободных блоков, используемых при недостатке места. Указатель на этот пул хранится в резервном блоке.
Файловая система HPFS для исправления ошибок, возникающих при записи файлов на диск, использует механизм аварийного замещения. Информация, предназначенная для записи в сектор, оказавшийся дефектным, сохраняется в одном из запасных секторов, заранее зарезервированных на этот случай. Их список хранится в резервном блоке файловой системы. Затем происходит обновление карты аварийного замещения. Она представляет собой пары 32-разрядных чисел. Первое число такой пары указывает на дефектный сектор, а второе на сектор его замещающий. Очистка карты аварийного замещения выполняется программой CHKDISK при проверке тома HPFS. Для каждого замещенного блока (сектора) выделяется новый сектор в наиболее подходящем месте. Затем данные записываются в этот сектор, и обновляется информация о положении файла. После этого программа вносит поврежденный сектор в список дефектных блоков, и возвращает освобожденный сектор в список свободных запасных секторов резервного блока. После этого происходит удаление записей из карты аварийного замещения.
Существует еще одна реализация HPFS для работы на серверах – HPFS386.IFS. Ее отличие в том, что она позволяет посредством более полного использования расширенных атрибутов, организовать ограничение доступа к файлам, с помощью списков управления доступом. Также в этой системе нет ограничения на объем памяти, выделяемой для кэширования файловых записей. В HPFS этот объем не может превышать 2 Мб.
В HPFS386.IFS при установке режимов работы файлового кэша, есть возможность упорядочить запись на диск. Наиболее эффективен алгоритм, при котором операции записи данных из кэша на диск предварительно упорядочиваются так, чтобы сократить время, затрачиваемое на позиционирование головок чтения/записи.
5. Файловая система NTFS
Файловая система NTFS (файловая система новой технологии), как и многие другие файловые системы, делит дисковое пространство тома на кластеры размером от 512 байт до 64 Кб. На практике размер кластера обычно не превышает 4Кб. Все дисковое пространство в NTFS делится на две неравные части (рис.4). Первые 12% диска отводятся под зону MFT – главной таблицы файлов. Эта таблица представляет собой специальный файл, содержащий информацию о размещении всех остальных файлов. Остальные 88% тома представляют собой обычное пространство для записи файлов.
MFT | Зона MFT |
Зона для размещения Файлов и каталогов |
Копия первых 16 записей MFT |
Зона для размещения файлов и каталогов |
Рис. 3 Структура тома NTFS
Таблица 1. Метафайлы NTFS
Имя метафайла | Описание |
$MFT | Файл с таблицей MFT |
$MFTmirr |
Копия первых 16 записей табл.MFT, размещенная посередине тома |
$LogFile | Файл журнала |
$Volume | Служебная информация – метка тома, версия ФС и т.д. |
$AttrDef | Список стандартных атрибутов файлов на томе |
$ | Корневой каталог |
$Bitmap | Битовая карта свободного места тома |
$Boot | Загрузочный сектор (если раздел загрузочный) |
$Quota | Файл, с записями прав пользователей на работу с данными |
$Upcase |
Файл с таблицей соответствия строчных и прописных букв в именах файлов. В NTFS имена файлов в Unicode. |
Таблица файлов поделена на записи фиксированного размера в 1 Кб. Каждая запись соответствует конкретному файлу. Первые 16 файлов тома являются служебными и недоступны через интерфейс операционной системы. Эти файлы называются метафайлами, причем самый первый метафайл – это сам файл MFT. Часть диска, содержащая метафайлы, является единственной частью диска имеющей строго фиксированное положение. Копии этих файлов (для надежности, поскольку они очень важны) хранится в середине тома. Оставшаяся часть MFT может располагаться в произвольном месте диска. Определить её положение можно с помощью самого файла MFT. Метафайлы находятся в корневом каталоге тома NTFS. Их имена начинаются с символа « $ ». Основные метафайлы приведены в таблице 1.
В таблице MFT хранится вся информация о файлах: имя файла, его размер, расположение на диске и т.п. Если для размещения информации не хватает одной записи MFT, то используется несколько таких записей, причем необязательно последовательных. Если файл маленький, то информация, содержащаяся в нем, хранится прямо в соответствующей записи MFT в оставшемся от служебных данных месте. Таким образом, файлы, занимающие не более сотни байтов, обычно не записываются в основную файловую область – вся информация таких файлов хранится прямо в таблице MFT.
Файл на томе NTFS идентифицируется файловой ссылкой, которая представляет собой 64-разрядное число. Файловая ссылка состоит из номера файла, соответствующего позиции его файловой записи в таблице MFT, и номера последовательности. Номер последовательности увеличивается каждый раз, когда данная позиция в MFT используется повторно, что позволяет файловой системе NTFS выполнять внутренние проверки своей целостности.
Каждый файл в NTFS представлен с помощью потоков данных. В них содержатся собственно данные файла, атрибуты файла, дополнительная информация об авторе и содержании файла. Файлу можно назначить еще один поток данных и записать в него любые данные. Интересно, что эти дополнительные потоки не видны стандартными средствами работы с файлом: наблюдаемый размер файла – это лишь размер потока основных данных. Например, можно удалить файл нулевой длинны, и при этом освободится несколько мегабайт места на диске, просто потому, что какая-нибудь программа назначила этому файлу поток дополнительных данных такого большого объёма.
Атрибуты файлов в системе NTFS:
Стандартная информация о файле – стандартные атрибуты (только для чтения, скрытый, архивный, системный), размер файла, время и дата создания и последнего изменения;
Список атрибутов – список атрибутов файла и ссылка на запись в таблице MFT. Файловая ссылка используется, если файлу необходимо более одной записи в MFT;
Имя файла – имя в кодировке Unicode. Файл может иметь несколько имен (как в Unix) если у файла есть автоматически сгенерированное имя формата 8.3 или имеется связь POSIX к этому файлу;
Дескрипторы защиты – структура данных соответствующая списку управления доступом (ACL) и защищает файлы от неправомерного доступа;
Данные – собственно содержимое файла;
Корень индекса, размещение индекса и битовая карта (только для каталогов) – атрибуты, используемые для индексов имен файлов в больших каталогах;
Расширенные атрибуты HPFS – атрибуты для реализации расширенных атрибутов HPFS для системы OS/2, а также для OS/2 клиентов файл-серверов Windows NT.
Разрешения NTFS – это набор специальных расширенных атрибутов файла или каталога, заданных для ограничения доступа пользователей к этим объектам. Например, одному пользователю можно позволить считывать и изменять файл, другому только считывать, третьему вообще запретить доступ. Рекомендуется устанавливать разрешения, используя не учетные записи отдельных пользователей, а учетные записи групп пользователей. У каждого файла имеется два списка разрешения. Первым является DACL – дискреционный список управления доступом. Этот список описывает ограничения на доступ к файлу, перечисляя пользователей и указывая запрещенные или разрешенные для них операции. Этот список может изменить любой пользователь, имеющий разрешение на изменение разрешений для данного файла. Второй список называется SACL – системный список управления доступом. Этот список может составлять и редактировать только администратор системы. Обрабатываться элементы этого списка будут, если в системе включен аудит на доступ к файлам. Операционная система, при обращении пользователя к файлам, сравнивает записи в SACL с запросом и с записями в списке DACL и фиксирует в журнале безопасности соответствующее событие.
Файловая система NTFS рассчитана на работу с дисками большого объема. Максимально возможный теоретический размер тома – 16 экзабайт! Один экзабайт равен байт (приблизительно 16 000 миллиардов гигабайт)!
Количество файлов в корневом и других каталогах не ограничено.
Файловая система NTFS обладает высокой надежностью. Система NTFS содержит две копии MFT (аналог FAT). Но в отличие от FAT, MTF больше напоминает базу данных. Система NTFS имеет различные механизмы проверки целостности данных, включая ведение журналов транзакции, позволяющих воспроизвести операции записи файлов по специальному системному журналу. В начале операции, связанной с изменением файловой структуры, делается соответствующая пометка. Если происходит какой-либо сбой, то операция остается помеченной как незавершенная. При выполнении проверки целостности файловой системы после перезагрузки машины эти незавершенные действия отменяются, и файлы возвращаются в исходное состояние. Если запись данных в файл прошла без ошибок, запись из журнала транзакции удаляется. В NTFS, как и в HPFS имеется механизм аварийной замены дефектных секторов жесткого диска.
В файловой системе NTFS 5 в отличие от предыдущей версии (NTFS 4) имеется возможность квотирования – ограничение объема дискового пространства для пользователя, которое он сможет использовать. При этом вовсе необязательно чтобы все его файлы хранились в одном месте, они могут быть распределены по всем дискам. Другое отличие – возможность поиска файла по имени его владельца. В NTFS 5 добавлена функция точки монтирования. С помощью этой технологии можно присоединить любой дисковый ресурс в любое место файловой системы. Например, можно присоединить логический диск D:\ в любой из каталогов на диске C:\, например C:\disk. Теперь зайдя в директорию C:\disk можно будет видеть содержимое корневого каталога диска D:\. Все изменения, которые будут произведены в этой директории, будут произведены и на диске D:\.
В системе NTFS могут быть созданы динамические диски. Это физический диск, на котором созданы динамические разделы. Динамические разделы могут быть следующих видов:
Простые – разделы практически не отличаются от обычных разделов;
Составные – состоят из нескольких динамических дисков, которые представлены как один диск. Данные пишутся и читаются последовательно;
Чередующиеся – несколько динамических дисков, представленные как один диск. Данные пишутся и читаются одновременно на несколько дисков. Этот метод обеспечивает более высокую скорость дисковых операций.
Зеркальные – эти разделы состоят из двух физических дисков. Данные, записываемые на один из дисков, автоматически дублируются на другом. Это не дает никаких преимуществ по скорости, но повышает степень надежности сохранности данных.
RAID 5 – состоит из трех и более дисков. Данные пишутся на два диска, в два блока, а на третий диск и в третий блок записывается код коррекции ошибок, с помощью которого по информации любого из блоков можно восстановить содержимое второго блока. Код коррекции записывается попеременно на каждый диск. Это экономит дисковое пространство, но работает медленнее.
Обычный диск (базовый) может быть конвертирован в динамический, а обратный процесс конвертирования динамического диска в базовый не всегда возможен. Например, если диск с самого начала создавался как динамический, то на нем отсутствует привычная таблица разделов. Кроме этого, если удалить на динамическом диске несколько разделов, то свободное место не объединяется и новый раздел, равный по размеру удаленным, будет состоять из нескольких мелких разделов, объединенных под одной буквой.
6. Файловая система ОС семейства UNIX
Файл в операционной системе UNIX представляет собой множество символов с произвольным доступом. В файле могут содержаться любые данные, и файл не имеет никакой иной структуры, кроме той какую создаст в нем пользователь. В семействе UNIX трактуют понятие файла более широко — там файлом называется любой объект, имеющий имя в файловой системе. Однако файлы, не являющиеся совокупностями данных (каталоги, внешние устройства, псевдоустройства, именованные программные каналы, семафоры Xenix), часто называют не простыми файлами, а "специальными".
Информация на диске размещается блоками. Минимальный размер блока 512 байт. В современных файловых системах, разработанных для конкретной версии UNIX размер блока несколько больше. Это позволяет повысить быстродействие файловых операций. Раздел на диске разделяется на следующие области (рис.4): загрузочный блок; управляющий блок (суперблок) в котором хранится размер логического диска и границы других областей; i-список, состоящий из описаний файлов; область для хранения содержимого файлов.
Загрузочный блок |
Суперблок |
i-узел 1 |
i-узел 2 |
i-узел 3 |
. |
i-узел n |
Блок с данными файла |
Блок с данными файла |
Блок с данными файла |
Свободный блок |
Файл |
Свободный блок |
Рис. 4 Организация файловой системы в UNIX
Каждый i-узел содержит: идентификатор владельца, идентификатор группы владельца, биты защиты, физические адреса на диске, время создания файла, время его последнего изменения, время последнего изменения атрибутов файла, число связей-ссылок указывающих на файл, идентификатор типа файла – каталог, обычный или специальный файл. За i-списком расположены блоки для хранения содержимого файлов. Пространство, не заполненное файлами, образует связанный список свободных блоков.
Таким образом, файловая система UNIX содержит управляющий суперблок с описанием файловой системы в целом, массив
i-узлов, в котором определены все файлы, сами файлы и совокупность свободных блоков.
Каталоги также как и в других системах имеют древовидную структуру. Файл, не являющийся каталогом, может встречаться в различных каталогах, под разными именами. Это называется связыванием. В UNIX-системах файлы не принадлежат каталогам, а существуют как бы независимо от каталогов. Связи в каталогах указывают на реальные физические файлы. Файл “исчезает”, когда удаляется последняя связь, указывающая на него. От файловой системы не требуется, чтобы она полностью размещалась на диске содержащий корневой каталог. Имеется возможность подключения файловой подсистемы к системе таким образом, что её содержимое заменяет собой содержимое заданного каталога. Поэтому для монтирования существующего тома необходимо использовать пустой каталог. Размонтирование – обратная операция, отсоединяющая файловую систему, после чего диск можно физически извлечь из системы. Монтирование файловых систем позволяет получить единое логическое файловое пространство, в то время как реальные файлы могут находиться в разных разделах или на разных жестких дисках. Также важно, что сами файловые системы для монтируемых разделов могут быть различными.
При повреждении файловой системы могут возникнуть следующие нарушения в ее структуре:
некоторый блок может оказаться вне системы, то есть не являться частью файла и не быть в списке свободных блоков;
могут появиться дубли i-узлов – записи, описывающие один и тот же файл дважды;
какой-либо блок может быть частью файла и быть в списке свободных блоков;
некоторый файл может существовать, не будучи включенным ни в один каталог.
Но файловая система имеет некоторую избыточность, позволяющую исправить эти ошибки:
блок данных, являющийся каталогом, содержит имена файлов и номера i-узлов. То есть существует i-узел, соответствующий этому каталогу, и этот i-узел должен быть каталогом, а не обычным файлом;
блок, включенный в список свободных блоков, не может быть частью файла. Для проверки этого достаточно сравнить список занятых и свободных блоков.
блок, принадлежащий файлу должен принадлежать только одному файлу.
При проверке файловой системы производятся: проверка целостности i-узлов; проверка каталогов указывающих на i-узлы, содержащие ошибки; проверка каталогов на которые нет ссылок; проверка счетчиков связи в каталогах и файлах; проверка неверных и дублированных блоков в списках – свободных и неиспользуемых блоков, которые не включены в список свободных блоков; проверка общего числа свободных блоков.
Список литературы
1. Гордеев А.В., “Операционные системы”, СПб: Питер, 2006 г.
2. Попов И.И., “Операционные системы, среды и оболочки”, Москва: Инфра-М, 2003 г.
3. Бойс Д., “От установки до оптимизации работы Windows XP”, Москва: НТ Пресс, 2007 г.
4. Столлингс В., “Операционные системы”, Москва: Вильямс, 2002 г.