Учитывая все это, можно сказать, что применение второй копии FAT ограничивается только операциями по восстановлению дефектных данных. Но даже в такой ситуации использовать вторую копию FAT можно только в том случае, когда проблема решается немедленно, не дожидаясь очередного обновления FAT.
Кластер (ячейка размещения)
Термин кластер в DOS 4.0 был заменен термином ячейка размещения (allocationunit). Новый термин — синоним старого, так как кластер является наименьшей ячейкой на диске, которой может оперировать система при чтении или записи файла на диск. Кластер соответствует одному или (чаще всего) нескольким секторам. Это позволяет уменьшить размер FAT и ускорить работу операционной системы, так как ей приходится оперировать меньшим числом распределяемых ячеек. В то же время с увеличением размера кластера на диске растет и размер неиспользуемого дискового пространства, так как его распределение происходит с дискретностью в один кластер.
В табл. 10 приведены стандартные размеры кластеров для различных форматов дискет.
Довольно странным является то обстоятельство, что некоторые дискеты высокой плотности имеют меньший размер кластера, чем дискеты низкой плотности. Увеличивается размер FAT, увеличивается количество записей, которые должна обрабатывать операционная система, и замедляется работа самой системы. Меньший размер кластера позволяет уменьшить размер неиспользуемого дискового пространства. Все пространство между концом файла и концом последнего занимаемого кластера не используется, и в результате, чем больше размер кластера, тем больше потери дискового пространства. Кроме того, дисководы высокой плотности работают быстрее, чем их "родственники" низкой плотности. Все это позволило IBM и Microsoft пойти на уменьшение размера кластера в дискетах высокой плотности, хотя при этом и увеличивается FAT.
Таблица 10. Стандартные размеры кластеров для дискет
Для жестких дисков размер кластера может варьироваться в зависимости от размера раздела диска. В табл. 11 приведены размеры кластеров в зависимости от размера логического диска.
Таблица 11. Стандартные размеры кластеров
Использование кластеров больших размеров ощутимо сказывается на работе системы. Например, на диске емкостью 2 Гбайт, содержащем 5 000 файлов, со средней потерей дискового пространства в полкластера на один файл суммарные потери дискового пространства составят около 78 Мбайт [5000х(0,5х32)].
Размер кластера и структура FAT определяют максимально возможный размер раздела. Поскольку FAT использует записи размером 16 байт для ссылки на кластер в разделе, максимально возможное число кластеров может равняться 65 536 (216). Максимальный размер кластера — 32 Кбайт, следовательно, максимально возможный размер раздела — 2 047,6875 Мбайт.
Операционные системы Windows 95 OSR2x и Windows 98 поддерживают 32-разрядную FAT с размером кластера до 64 Кбайт. С одной стороны, использование большего количества маленьких кластеров позволяет уменьшить потери дискового пространства, а с другой — большие кластеры необходимы для больших логических дисков. Так, использование 32-разрядных FAT позволяет превысить существующий на данный момент лимит в 2 Гбайт для одного раздела до 2 Тбайт (2 048 Гбайт). Вообще же, предел в 2 Гбайт существует только для DOS; такие операционные системы, как Windows9xи WindowsNT, давно уже его преодолели.
Область данных
Область данных диска — это область, следующая за загрузочным сектором, таблицами размещения файлов и корневым каталогом на любом логическом диске. Эта область контролируется с помощью FAT и корневого каталога и делится на ячейки размещения, называемые кластерами. В этих кластерах и располагаются сохраняемые на диске файлы.
Цилиндр для диагностических операций чтения и записи
Программа разбиения диска на разделы Fdisk всегда резервирует последний цилиндр жесткого диска для выполнения диагностических операций. Из-за этого Fdisk указывает меньшее количество цилиндров, чем существует на самом деле. Операционная система не использует этот цилиндр, поскольку он находится вне разделов.
В системах с дисковыми интерфейсами IDE или SCSI контроллер должен выделить дополнительную область после разделов для хранения таблицы испорченных дорожек и запасных секторов. В этом случае разница между фактическим числом цилиндров и тем, что показывает Fdisk, будет еще больше.
Область диагностики позволяет выполнять тестирование чтения/записи жесткого диска, не повреждая данных на диске. Программы форматирования жестких дисков на низком уровне обычно используют этот цилиндр для тестирования чередования диска либо для хранения необходимой во время форматирования информации.
VFAT и длинные имена файлов
В оригинальной операционной системе Windows 95 используется та же файловая система, что и в DOS, но с важными улучшениями. В Windows 95 поддерживается файловая система FAT, переписанная в 32-разрядный код и названная виртуальной таблицей размещения файлов (virtualfileallocationtable— VFAT). VFAT используется вместе с 32-разрядной программой VCACHE (заменившей 16-разрядную программу SMARTDrive из DOS и Windows 3.1), что обеспечивает более высокую производительность файловой системы. Однако основное существенное улучшение новой файловой системы — это поддержка длинных имен файлов. Системы DOS и Windows 3.1 ограничивались стандартом "восемь-точка-три" при именовании файлов, поэтому добавление поддержки длинных имен файлов было приоритетной задачей, которую необходимо было решить разработчикам Windows 95, тем более что пользователи операционных систем Macintosh и OS/2 уже вовсю применяли эти возможности. Таким образом, создатели Windows 95 должны были обеспечить обратную совместимость, т.е. необходимо было реализовать в файловой системе все новые свойства и, кроме того, не "обделить" пользователей предыдущих версий DOS и Windows. Кстати, обратная совместимость — одна из самых распространенных проблем в мире персональных компьютеров.
В системе VFAT файлу или каталогу можно присваивать имя длиной до 255 символов (включая путь к этому файлу или каталогу). В Windows 95 от трехсимвольного расширения не отказались, поскольку в этой операционной системе (как и в предыдущих версиях Windows) с помощью расширения создается ассоциация типа "файл-приложение". В длинных именах файлов можно использовать пробелы, а также символы + ,; = [], которые нельзя было использовать в стандартных (восемь-точка-три) именах файлов DOS.
При создании длинного имени файла создается его псевдоним, удовлетворяющий стандарту "восемь-точка-три". В Windows9х файловая система VFAT выполняет это следующим образом.
1. Первых три символа после последней точки в длинном имени файла становятся рас ширением псевдонима.
Первых шесть символов длинного имени файла (за исключением пробелов, которые игнорируются) преобразуются в символы верхнего регистра и становятся первымишестью символами стандартного имени файла. Недопустимые в стандартном имени файла символы (+,; = []) преобразуются в символы подчеркивания.
3. VFAT добавляет символы ~1 (седьмой и восьмой) к псевдониму имени файла. Если первых шесть символов нескольких файлов одинаковы, то для разрешения конфликтов имен добавляются символы ~2, ~3 и т.д.
VFAT хранит псевдонимы длинных имен в поле стандартных имен файлов записи каталога файлов. Таким образом, все версии DOS и Windows могут получить доступ к файлу под длинным именем с помощью его псевдонима. Остается еще одна проблема: как хранить 255 символов имени файла в 32 байтах записи каталога, ведь каждый символ имени файла — это один байт? Модифицировать структуру записи каталога нельзя, поскольку тогда предыдущие версии DOS не смогут использовать ее.
Разработчики файловой системы решили эту проблему следующим образом: были добавлены дополнительные записи каталога для хранения длинных имен файлов. Чтобы предыдущие версии DOS не повредили этих дополнительных записей каталога, VFAT устанавливает для них атрибуты, которые нельзя использовать для обычного файла: только для чтения, скрытый, системный и метка тома. Такие атрибуты DOS игнорирует, а следовательно, длинные имена файлов остаются "нетронутыми".
Существует еще одна проблема, связанная с длинными именами файлов: приложения, не умеющие работать с длинными именами файлов, при открытии такого файла и его последующем сохранении будут записывать его псевдоним в дополнительные записи каталога, следовательно, длинное имя файла будет утрачено.
Старые программы для работы с диском, такие как NortonDiskDoctor, не могут работать с VFAT. Эти программы игнорируют дополнительные записи каталога. Поэтому после "восстановления" диска с помощью таких программ вы можете не найти длинных имен файлов.
Существует еще одна проблема с длинными именами файлов, которая заключается в следующем. VFAT создает новый псевдоним всякий раз при создании или копировании файла в новый каталог. Например, файл Expenses- January98 . doc сохраняется в папке под псевдонимом EXPENS~1.DOC. Если с помощью программы Windows9xExplorer скопировать этот файл в папку, в которой уже существует файл Expenses-December97 . doc с псевдонимом EXPENS~1. DOC, то VFAT создаст в этой папке для копируемого файла новый псевдоним EXPENS~2 .DOC. Причем пользователь не будет уведомлен о таком "самоуправстве". Для программ, поддерживающих длинные имена файлов, такое копирование не проблема: все длинные имена файлов сохраняются. Если же запустить приложение, которое не поддерживает длинных имен файлов, то, открыв файл EXPENS~1.DOC, пользователь обнаружит, что это файл Expenses-December97.doc, а не Expenses-January98.doc.