Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft.doc
Скачиваний:
522
Добавлен:
16.03.2016
Размер:
4.36 Mб
Скачать

Файловые системыVfaTиFat32

Одной из важнейших характеристик исходной FATбыло использование имён файлов формата «8.3», в котором 8 символов отводится на указание имени фай­ла и 3 символа – для расширения имени. К стандартнойFAT(имеется в виду прежде всего реализацияFAT16) добавились ещё две разновидности, используе­мые в широко распространенных операционных системахMicrosoft(конкретно – вWindows95 иWindowsNT):VFAT(виртуальнаяFAT) и FAT32, используемая в одной из редакций ОСWindows95 иWindows98. Ныне эта файловая система (FAT32) поддерживается и такими ОС, какWindowsMillenniumEdition, и все­ми ОС семействаWindows2000. Имеются реализации систем управления фай­лами для FAT32,WindowsNTи ОСLinux.

Файловая система VFAT впервые появилась в WindowsforWorkgroups3.11 и была предназначена для выполнения файлового ввода/вывода в защищённом режиме (см. раздел «Реальный и защищенный режимы работы процессора», глава 3). С выходомWindows95 в VFAT добавилась поддержка длинных имён файлов (longfilename,LFN). Тем не менее, VFAT сохраняет совместимость с ис­ходным вариантомFAT; это означает, что наряду с длинными именами в ней поддерживаются имена формата «8.3», а также существует специальный меха­низм для преобразования имен «8.3» в длинные имена, и наоборот. Именно фай­ловая система VFAT поддерживается исходными версиямиWindows95,Win­dowsNT4. При работе с VFAT крайне важно использовать файловые утилиты, поддерживающие VFAT вообще и длинные имена в частности. Дело в том, что более ранние файловые утилитыDOSзапросто модифицируют то, что кажется им исходной структуройFAT. Это может привести к потере или порче длинных имен из таблицыFAT, поддерживаемой VFAT (или FAT32). Следовательно, для томов VFAT необходимо пользоваться файловыми утилитами, которые понима­ют и сохраняют файловую структуру VFAT.

В исходной версии Windows95 основной файловой системой была 32–разрядная VFAT. VFAT может использовать 32-разрядные драйверы защищённого режима или 16-разрядные драйверы реального режима. При этом элементыFATостают­ся 12- или 16-разрядными, поэтому на диске используется та же структура дан­ных, что и в предыдущих реализацияхFAT.VFATобрабатывает все обращения к жёсткому диску и использует 32-разрядный код для всех файловых операций с дисковыми томами.

Основными недостатками файловых систем FATи VFAT являются большие по­тери на кластеризацию при больших размерах логического диска и ограничения на сам размер логического диска. Это привело к разработке новой реализации файловой системы с использованием той же идеи использования таблицыFAT. Поэтому вMicrosoftWindows95OEMServiceRelease2 (эта версияWindows95 часто называетсяWindows95OSR2) на смену системе VFAT пришла файловая система FAT32. FAT32 является полностью самостоятельной 32-разрядной файловой системой и содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациямиFAT.

Принципиальное отличие заключается в том, что FAT32 намного эффективнее расходует дисковое пространство. Прежде всего, система FAT32 использует кластеры меньшего размера по сравнению с предыдущими версиями, которые ограничивались 65 535 кластерами на том (соответственно, с увеличением размера диска приходилось увеличивать и размер кластеров). Следовательно, даже для дисков размером до 8 Гбайт FAT32 может использовать 4-килобайтные класте­ры. В результате по сравнению с дисками FAT16 экономится значительное дис­ковое пространство (в среднем 10-15 %) [53].

FAT32 также может перемещать корневой каталог и использовать резервную ко­пию FATвместо стандартной. Расширенная загрузочная запись FAT32 позволя­ет создавать копии критических структур данных; это повышает устойчивость дисков FAT32 к нарушениям структурыFATпо сравнению с предыдущими вер­сиями. Корневой каталог в FAT32 представлен в виде обычной цепочки класте­ров. Следовательно, корневой каталог может находиться в произвольном месте диска, что снимает действовавшее ранее ограничение на размер корневого ката­лога (512 элементов).Windows95OSR2 иWindows98 могут работать и с разделами VFAT, созданны­миWindowsNT. То, что говорилось ранее об использовании файловых утилитVFATс томамиVFAT, относится и кFAT32. Поскольку прежние утилитыFAT(для FAT32 в эту категорию входят обе файловые системы,FATи VFAT) могут повредить или уничтожить важную служебную информацию, для томов FAT32 нельзя пользоваться никакими файловыми утилитами, кроме утилит FAT32.

Кроме повышения ёмкости FATдо величины в 4 Тбайт, файловая система FAT32 вносит ряд необходимых усовершенствований в структуру корневого каталога. Предыдущие реализации требовали, чтобы вся информация корневого каталогаFATнаходилась в одном дисковом кластере. При этом корневой каталог мог содержать не более 512 файлов. Необходимость представлять длинные имена и обеспечить совместимость с прежними версиямиFATпривела разработчиков компанииMicrosoftк компромиссному решению: для представления длинного имени они стали использовать элементы каталога, в том числе и корневого. Рас­смотрим способ представления в VFAT длинного имени файла (рис. 4.9).

Первые одиннадцать байтов элемента каталога DOSиспользуются для хранения имени файла. Каждое такое имя разделяется на две части: в первых восьми бай­тах хранятся символы собственно имени, а в последних трех – символы так называемого расширения, с помощью которого реализуются механизмы предопределенных типов. Были введены соответствующие системные соглашения, и файлы определенного типа необходимо (желательно) именовать с оговоренным расширением. Например, исполняемые файлы с расширением СОМ определяют исполняемую двоичную программу с простейшей односегментной структурой1. Более сложные программы имеют расширение ЕХЕ. Определенны расширения для боль­шого количества типов файлов, и эти расширения используются для ассоцииро­ванного запуска обрабатывающих файлы программ.

Рис.4.9. Элементы каталогов дляFAT,VFATи FAT32

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

В двенадцатом байте элемента каталога хранятся атрибуты файла.Шесть из восьми указанных разрядов используютсяDOS1. К атрибутам DOSотносятся следующие:

 атрибут «архивный» (А – archive). Показывает, что файл был открыт про­граммой таким образом, чтобы у неё была возможность изменить содержимое этого файла.DOSустанавливает этот разряд атрибута в состояниеON(вклю­чено) при открытии файла. Программы резервного копирования нередко ус­танавливают его вOFF(выключено) при выполнении резервного копирования файла. Если применяется подобная методика, то в следующую создаваемую по порядку резервную копию будут добавлены только файлы с данным раз­рядом, установленным в состояниеON;

 атрибут каталога (D–directory). Показывает, что данный элемент каталога указывает на подкаталог, а не на файл;

 атрибут тома (V – volume). Применяется только к одному элементу каталога в корневом каталоге. В нём, собственно, и хранится имя дискового тома. Этот атрибут также применяется в случае длинных имён файлов, о чём можно бу­дет узнать из следующего раздела;

 атрибут «системный» (S–system). Показывает, что файл является частью операционной системы или специально отмечен подобным образом прикладной программой, что иногда делается в качестве составной части метода за­щиты от копирования;

 атрибут «скрытый» (Н – hidden). Сюда относятся, в частности, файлы с уста­новленным в состояниеONатрибутом «системный» (S), которые не отобража­ются в обычном списке, выводимом по командеDIR;

 атрибут «только для чтения» (R–readonly). Показывает, что данный файл не подлежит изменению. Разумеется, поскольку это лишь разряд байта, хра­нящегося на диске, то любая программа может изменить этот разряд, после чегоDOSсвободно разрешила бы изменение данного файла. Этот атрибут в основном используется для примитивной защиты от пользовательских оши­бок, то есть он позволяет избежать неумышленного удаления или изменения ключевых файлов.

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

На дисках FAT12 илиFAT16 следующие за именем десять байтов не используют­ся. Обыкновенно они заполняются нулями и считаются резервными значения­ми. А на диске с файловой системойFAT32 эти 10 байт содержат самую разную информацию о файле. При этом байт, отмеченный как «зарезервировано дляNT», представляет собой, как подразумевает его название, поле, не используемое вDOSилиWindows9x, но применяемое вWindowsNT.

Из соображений совместимости поля, которые встречаются в элементах катало­га для коротких имен формата FAT12 и FAT16, находятся на тех же местах и в элементах каталога для коротких имен формата FAT32. Остальные поля, кото­рые встречаются только в элементах каталога для коротких имен формата FAT32, соответствуют зарезервированной области длиной в десять байт в элементах ка­талога для коротких имен форматов FAT12 и FAT16.

Как видно из рис.4.9, для длинного имени файла используется несколько эле­ментов каталога. Таким образом, появление длинных имён фактически приве­ло к дальнейшему уменьшению количества файлов, которые могут находиться в корневом каталоге. Поскольку длинное имя может содержать до 256 символов, всего один файл с полным длинным именем занимает до 25 элементов FAT,(1 для имени 8.3 и ещё 24 для самого длинного имени). Количество элементов корневого каталогаVFATуменьшается до 21. Очевидно, что это не самое изящ­ное решение, поэтому компанияMicrosoftсоветует избегать длинных имен в корневых каталогахFATпри отсутствии FAT32, у которой количество элемен­тов каталога соответственно просто увеличено. Помните и о том, что длина пол­ной файловой спецификации, включающей путь и имя файла (длинное или в формате 8.3), тоже ограничивается 260 символами. FAT32 успешно справляется с проблемой длинных имён в корневом каталоге, но проблема с ограничением длины полной файловой спецификации остаётся. По этой причинеMicrosoftре­комендует ограничивать длинные имена 75–80 символами, чтобы оставить дос­таточно места для пути (180–185 символов).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]