FAT (чаще всего в главе подразумевается FAT 16) представляет собой простую файловую систему, разработанную для небольших дисков и простых структур каталогов. Ее название происходит от названия метода, применяемого для организации файлов ≈ таблица размещения файлов (File Allocation Table, FAT). Эта таблица размещается в начале тома. В целях защиты тома на нем хранятся две копии FAT. В случае повреждения первой копии FAT дисковые утилиты (например, Scandisk) могут воспользоваться второй копией для восстановления тома. Таблица размещения файлов и корневой каталог должны располагаться по строго фиксированным адресам, чтобы файлы, необходимые для запуска системы, были размещены корректно.
По принципу построения FAT похожа на оглавление книги, т. к. операционная система использует ее для поиска файла и определения кластеров, которые этот файл занимает на жестком диске. Изначально компания Microsoft разработала FAT для управления файлами на дискетах, и только затем приняла ее в качестве стандарта для управления дисками в MS-DOS. Сначала для дискет и небольших жестких дисков (менее 16 Мбайт) использовалась 12-разрядная версия FAT (так называемая FAT12). В MS-DOS v. 3.0 была введена 16-разрядная версия PAT для более крупных дисков. К настоящему моменту FAT 12 применяется на носителях очень малого объема (или на очень старых дисках). Например, все 3,5-дюймовые дискеты емкостью 1,44 Мбайт форматируются для FAT16, а все 5,25-дюймовые ≈ для FAT12.
Том, отформатированный под FAT12 и FAT16, размечается по кластерам. Стандартный размер кластера, устанавливаемый по умолчанию, определяется размером тома (более подробная информация о размерах кластеров приведена далее в этой главе). Таблица расположения файлов и ее резервная копия содержат следующую информацию о каждом кластере тома:
Unused (кластер не используется).
Clusterinusebyafile (кластер используется файлом).
Bad cluster (плохойкластер).
Last cluster in a file (последнийкластерфайла).
Корневая папка содержит записи для каждого файла и каждой папки, расположенных в корневой папке. Единственным отличием корневой папки от остальных является то, что она занимает четко определенное место на диске и имеет фиксированный размер (не более 512 записей для жесткого диска; для дискет этот размер определяется их объемом).
Папки содержат 32-байтные записи для каждого содержащегося в них файла и каждой вложенной папки. Эти записи содержат следующую информацию:
Имя (в формате 8.3).
Байт атрибутов (8 бит полезной информации, которая подробно описана ниже).
Время создания (24 бит).
Дата создания (16 бит).
Дата последнего доступа (16 бит).
Время последней модификации (16 бит).
Дата последней модификации (16 бит).
Номер начального кластера файла в таблице расположения файлов (16 бит).
Размер файла (32 бита).
Структура папки FAT не имеет четкой организации, и файлам присваиваются первые доступные адреса кластеров на томе. Номер начального кластера файла представляет собой адрес первого кластера, занятого файлом, в таблице расположения файлов. Каждый кластер содержит указатель на следующий кластер, использованный файлом, или индикатор (OxFFFF), указывающий, что данный кластер является последним кластером файла.
Информация папок используется операционными системами, поддерживающими файловую систему FAT. Кроме того, Windows 2000 может хранить в записи папки дополнительную временную информацию (time stamps). Эти дополнительные временные атрибуты указывают, когда файл был создан и когда к нему в последний раз предоставлялся доступ. Главным образом, дополнительные атрибуты используются приложениями POSIX.
Файлы на дисках имеют 4 атрибута, которые могут сбрасываться и устанавливаться пользователем ≈ Archive (архивный), System (системный), Hidden (скрытый) и Read-only (только чтение).
Примечание: В Windows 2000 все файлы, имеющие комбинацию атрибутов скрытый и системный, считаются защищаемыми файлами операционной системы (operating system protected files). Windows 2000 защищает такие файлы, не отображая их в программе Проводник и папке Мой компьютер. Чтобы увидеть эти файлы в Проводнике, вызовите утилиту Свойства папки (Folder Options) (через панель управления или через меню Сервис (Tools) Проводника или папки Мой компьютер). В ее окне перейдите на вкладку Вид (View), выберите переключатель Показывать скрытые файлы и папки (Show hidden files and folders) и снимите флажок Скрывать защищенные системные файлы (рекомендуется) (Hide protected operating system files (Recommended)). Помимо этого, защищаемые файлы операционной системы можно просматривать из командной строки с помощью команды dir /a.
В Windows NT, начиная с версии 3.5, файлы, созданные или переименованные на томах FAT, используют биты атрибутов для поддержки длинных имен файлов методом, не вступающим в конфликт с методами доступа к тому, используемыми операционными системами MS-DOS и OS/2. Для файла с длинным именем Windows NT/2000 генерирует короткое имя в формате 8.3. Кроме этого стандартного элемента Windows NT/2000 создает для файла одну или несколько дополнительных записей, по одной на каждые 13 символов длинного имени. Каждая из этих дополнительных записей содержит соответствующую часть длинного имени файла в формате Unicode. Windows NT/2000 устанавливает для дополнительных записей атрибуты тома, а также скрытого системного файла, предназначенного только для чтения, чтобы пометить их как части длинного имени файла, MS-DOS и OS/2 обычно игнорируют записи папок, для которых установлены все эти атрибуты, поэтому такие записи для них невидимы. Вместо этого MS-DOS и OS/2 получают доступ к файлу по стандартному короткому имени файла в формате 8.3.
Примечание: Windows NT/2000 и Windows 9х используют одинаковый алгоритм для генерации длинных и коротких имен файлов. На компьютерах с двойной загрузкой к файлам, созданным с помощью одной из этих операционных систем, можно получать доступ, работая под управлением другой.
Windows NT, начиная с версии 3.5, поддерживает длинные имена файлов на томах FAT. Эту устанавливаемую по умолчанию опцию можно отключить, задав значение 1 для параметра реестра Win31FileSystem, входящего в состав следующего ключа реестра:
HKEY_LOCAL_MACH IN ESystemCiirrentControlSetControlFileSystem
Установка этого значения не позволит Windows NT создавать на томах FAT файлы с длинными именами, но не повлияет на уже созданные длинные имена.
В Windows NT/2000 FAT16 работает точно так же, как и в MS-DOS, Windows 3.1х и Windows 95/98. Поддержка этой файловой системы была включена в Windows 2000, поскольку она совместима с большинством операционных систем других фирм-поставщиков программного обеспечения. Помимо этого, применение FAT16 обеспечивает возможность обновления более ранних версий операционных систем семейства Windows до Windows 2000.
Примечание: Нельзя использовать Windows NT/2000 совместно с программными средствами, осуществляющими разбиение диска на тома и сжатие дисков при помощи драйверов устройств, которые загружаются MS-DOS. Например, если требуется иметь доступ к разделу или логическому диску FAT, работая под управлением Windows NT/2000, не следует применять для них такие средства сжатия, как DoubleSpace (MS-DOS 6.0) или DriveSpace (MS-DOS 6.22). Для сканирования и восстановления томов FAT, используемых Windows NT/2000, рекомендуется ввести в командной строке команду chkdsk. Эта программа объединяет функциональные возможности, присущие программам MS-DOS Chkdsk и Scandisk, включая сканирование поверхности жесткого диска. Если требуется выполнить сканирование поверхности диска, дайте из командной строки команду chkdsk /r.
32-разрядная файловая система FAT32 была введена с выпуском Windows 95 OSR2 и поддерживается в Windows 98 и Windows 2000. Она обеспечивает оптимальный доступ к жестким дискам, CD-ROM и сетевым ресурсам, повышая скорость и производительность всех операций ввода/вывода. FAT32 представляет собой усовершенствованную версию FAT, предназначенную для использования на томах, объем которых превышает 2 Гбайт.
Том, отформатированный для использования FAT32, как и том FAT16, размечается по кластерам. Размер кластера по умолчанию определяется размером тома. В табл. 7.1 приведено сравнение размеров кластеров для FAT16 и FAT32 в зависимости от размера диска.
Таблица 7.1. Размеры кластеров по умолчанию для FAT 16 и FAT32
Размер диска | Размер кластера FAT16 | Размер кластера FAT32 |
До 32 Мбайт | 512 байт | Не поддерживается |
32-63 Мбайт | 1 Кбайт | Не поддерживается |
64-127 Мбайт | 2 Кбайт | Не поддерживается |
128-255 Мбайт | 4 Кбайт | Не поддерживается |
256-511 Мбайт | 8 Кбайт | Не поддерживается |
512-1023 Мбайт | 16 Кбайт | 4 Кбайт |
1024-2047 Мбайт (2 Гбайт) | 32 Кбайт | 4 Кбайт |
2048-8191 Мбайт (8 Гбайт) | Не поддерживается | 4 Кбайт |
8192-16383 Мбайт (16 Гбайт) | Не поддерживается | 8 Кбайт |
16384-32767 Мбайт (32 Гбайт) | Не поддерживается | 16 Кбайт |
От 32 Гбайт | Не поддерживается | 32 Кбайт |
Для обеспечения максимальной совместимости с существующими прикладными программами, сетями и драйверами устройств, FAT32 была реализована с минимумом возможных изменений в архитектуре и внутренних структурах данных. Все утилиты Microsoft, предназначенные для работы с дисками (Format, FDISK, Defrag и ScanDisk), были переработаны для обеспечения поддержки FAT32. Кроме того, Microsoft проводит большую работу по поддержке ведущих фирм-производителей драйверов устройств и утилит для работы с диском, чтобы помочь и в обеспечении поддержки FAT32 в их продуктах. В табл. 7.2 сделана попытка сравнения характеристик FAT16 и FAT32.
Таблица 7.2. Сравнение характеристик FAT16 и FAT32
FAT16 | FAT32 |
Поддерживается большинством операционных систем, в числе которых MS-DOS, Windows 98, Windows NT, OS/2 и UNIX | На текущий момент поддерживается только операционными системами Windows 98 (и Windows 98 Second Edition), Windows 95 OSR2 и Windows 2000 |
Эффективна только на логических дисках, размер которых не превышает 256 Мбайт | Не поддерживаются диски, размер которых менее 512 Мбайт |
Поддерживает сжатие диска с помощью таких утилит, как Drvspace | Не поддерживает сжатие диска |
Ограничена по размеру до 65 525 кластеров. Каждый кластер имеет фиксированный размер в зависимости от размера логического диска. Ограничения по количеству кластеров, и их размеру (32 Кбайт) приводят к общему ограничению по размеру диска (не более 2 Гбайт). Помимо этого, FAT12/16 обычно имеет ограничения по количеству файлов и папок, которые могут содержаться в корневом каталоге (в зависимости от диска максимальное значение колеблется от 200 до 400) | Максимальный размер кластера ≈ 32 Кбайт, максимальный размер диска ≈ 2 Тбайт |
Поскольку с увеличением размера диска размер кластера FAT16 увеличивается, хранение файлов на таких дисках становится неэффективным. Например, если файл размером 10 Кбайт хранится в кластере размером 32 Кбайт, то 22 Кбайт дискового пространства не используются | Для дисков размером менее 8 Гбайт размер кластера ≈ 4 Кбайт |
FAT32 обеспечивает следующие преимущества по сравнению с прежними реализациями FAT: