Операционные системы
В сфере персональных компьютеров в 1987 г. возник кризис. Возможности файловой системы FAT, разработанной фирмой Microsoft за десять лет до этого для интерпретатора Standalone Disk Basic и позднее приспособленной для операционной системы DOS, были исчерпаны. FAT предназначалась для жестких дисков емкостью не свыше 32 Мбайт, а новые НЖМД большей емкости оказывались совершенно бесполезными для пользователей PC. Некоторые независимые поставщики предлагали собственные способы решения этой проблемы, однако лишь с появлением DOS 4.0 этот кризис был преодолен - на некоторое время.
Значительные изменения структуры файловой системы в DOS 4.0 позволили операционной системе работать с дисками емкостью до 128 Мбайт; с внесением в последующем незначительных дополнений этот предел был поднят до 2 Гбайт. В то время казалось, что такой объем памяти превышает любые мыслимые потребности. В настоящее время в продаже имеются жесткие диски емкостью, как правило, 2,5 Гбайт и выше.
Для систем Windows 95 фирма Microsoft разработала новое расширение системы FAT - FAT32, без каких-либо громких заявлений предусмотренное в пакете OEM Service Pack 2. Система FAT32 устанавливается только в новых PC.
Области диска
Эта файловая система предусматривает ряд специальных областей на диске, выделенных для организации пространства диска в процессе его форматирования - головную запись загрузки, таблицу разбиения диска, запись загрузки, таблицу размещения файлов (от которой система FAT и получила свое название) и корневой каталог. На физическом уровне пространство диска разбивается на 512-байт области, называемые секторами. В системе FAT место для файлов выделяется блоками, которые состоят из целого числа секторов и именуются кластерами. Число секторов в кластере должно быть кратно степени двойки. (Узнать размер кластера в своей системе можно с помощью программ CHKDSK или SCANDISK.) В Microsoft называют эти кластеры единицами выделения памяти (allocation unit), а в отчете SCANDISK указывается их размер, например "16 384 байт в каждой единице выделения памяти". Обычно размер кластера можно определить, поделив объем памяти диска на 64 Кбайт (65 536 байт) и округлив результат до ближайшего числа, кратного степени двойки. Так, размер кластеров 1,2-Гбайт диска составляет 32 Кбайт - если 1,2 Гбайт (1 258 291,2 Kбайт) поделить на 65 536, получим 19,2 Кбайт, а после округления - 32 Кбайт.
Цепочка FAT
FAT представляет собой базу данных, связывающую кластеры дискового пространства с файлами. В этой базе для каждого кластера предусматривается только один элемент. Первые два элемента содержат информацию о самой системе FAT. Третий и последующие элементы ставятся в соответствие кластерам дискового пространства, начиная с первого кластера, отведенного для файлов. Элементы FAT могут содержать несколько специальных значений, указывающих, что
· кластер свободен, т.е. не использован ни одним файлом (для FAT16 это значение составляет 0000H);
· кластер содержит один или несколько секторов с физическими дефектами и не должен использоваться (для FAT16 это значение составляет FFF7H);
· данный кластер - последний кластер файла (для FAT16 это значение составляет FFF8 FFFFH).
Для любого используемого файлом, но не последнего кластера элемент FAT содержит номер следующего кластера, занятого файлом.
Каждый каталог - независимо корневой или подкаталог - также представляет собой базу данных. В каталоге DOS для каждого файла предусмотрена одна главная запись (В среде Windows 95 для длинных имен файлов введены дополнительные записи). В отличие от FAT, где каждый элемент состоит из единственного поля, записи для файла в каталоге состоят из нескольких полей (см. рис. 1). Некоторые поля - имя, расширение, размер, дата и врем - могут быть выведены на экран по команде DIR. Но в системе FAT предусмотрено поле, которое не отображается командой DIR, - поле с номером первого кластера, отведенного под файл.
Рис. 1. 32-байт запись в каталоге для файла состоит из восьми полей, содержащих основную информацию о файле, например его размер, начальный кластер на диске, время и дату последнего внесения изменений в него.
Структура записи в каталоге
Смещение | 0-7 | 8-10 | 11 | 12-21 | 22-23 | 24-25 | 26-27 | 28-31 |
Имя файла | Расширение | Атрибут | Не используется | Время | Дата | Начальный кластер | Размер файла | |
Размер | 8 байт | 3 байт | 1 байт | 10 байт | 2 байт | 2 байт | 2 байт | 4 байт |
Подобные работы: