Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Системные структуры данных FAT32Содержание книги
Поиск на нашем сайте Как и в прежних системах в файловой системе FAT32 дисковое пространство логического раздела делится на две области – системную и область данных. Системная область создается и инициализируется при форматировании, а впоследствии обновляется при манипулировании файловой структурой. Системная область файловой системы FAT32 состоит из следующих компонентов: · загрузочная запись (boot record, BR); · резервная область, включающая дополнительную системную структуру FSInfo; · две копии таблиц размещения файлов FAT 1 и FAT 2. Корневой каталог в системной области FAT32 отсутствует и может быть расположен в любом месте области данных раздела и иметь произвольный размер. Общее число зарезервированных секторов теперь перед первой FAT равно 32. Область данных логического диска содержит файлы и каталоги, подчиненные корневому каталогу, и разделена на участки одинакового размера – кластеры. Кластер может состоять из одного или нескольких последовательно расположенных на диске секторов. Число секторов в кластере должно быть кратно 2n и может принимать значения от 1 до 64. Размер кластера зависит от объема логического диска.
Рис. 1 В первом секторе логического диска с системой FAT32 располагается загрузочный сектор (Boot Record – BR) и блок параметров BIOS (BPB). Блок параметров BIOS в FАТ32 занимает больше места, чем стандартный, и называется Big FAT BIOS Parameter Block (BF_BPB). Из-за этого загрузочный сектор теперь занимает не один, а три физических сектора, причем имеется еще дополнительный и размещается через три физических сектора в седьмом, восьмом и девятом физическом секторе. BF_BPB - это расширенная версия ВРВ, которая использовалась в 12- и 16-разрядной FAT. Он содержит те же структуры, что и стандартный BPB, но включает несколько дополнительных полей, которые используются только в FAT32. Начальный участок данного блока (табл. 1) для всех типов FAT идентичен за исключением полей со смещением 0x11 и 0x16, в которых для FAT 32 указываются нулевые значения. Таблица 1
Существенные различия в структуре загрузочных секторов для разных типов FAT начинаются со смещения 0x24. Для FAT32 структура этой части BPB (BF_BPB) имеет вид, представленный в табл. 2. Таблица 2
Кроме перечисленных полей, загрузочный сектор логического диска должен содержать в байте со смещением 0x1FE код 0x55, а в следующем байте (смещение 0x1FF) – код 0xAA. Указанные два байта являются признаком загрузочного диска. Загрузочный сектор выполняет две важные функции: описывает структуру данных на поверхности дискового носителя, а также позволяет осуществить загрузку операционной системы. На логическом диске с организацией FAT32 дополнительно присутствует структура данных FSInfo, которая размещается в первом секторе резервной области. Эта структура содержит информацию о количестве свободных кластеров на диске и о номере первого свободного кластера в таблице FAT. Формат структуры FSInfo представлен в табл 3. Таблица 3
Еще одно важное новшество в FАТ32 состоит в следующем. В прежних версиях файловой системы FAT повреждение загрузочного сектора приводило к полной потере всего содержимого диска. В FAT32 при подготовке раздела с помощью системных программ (например, программой FDISK) создается резервная копия загрузочного сектора, которая помещается в логический сектор 6 данного раздела. Если новая MBR при обращении к загрузочному сектору обнаруживает ошибку чтения или неправильную сигнатуру, она ищет сектор 6 и считывает остальную часть загрузочного кода уже из него. Предназначение FAT32 не изменилось. Она по-прежнему используется как таблица, связывающая отдельные кластеры файла. Элементы таблицы FAT теперь в 2 раза длиннее (4 байта). Старшие 4 бита каждого 32-битного значения зарезервированы и не участвуют в формировании номера кластера, поэтому максимальное число кластеров в 32-разрядной FAT равно 268 435 445. Если кластер свободен, то соответствующий элемент FAT содержит код 0. Элементы каталожного дескриптора, указывающие на первый кластер файла, теперь состоят из четырех байтов, а содержимое этих байтов является номером (адресом) следующего кластера и элемента таблицы FAT, который содержит номер следующего кластера файла, а также является номером элемента таблицы FAT и т. д. до последнего кластера файла. Элемент FAT, соответствующий последнему кластеру в цепочке, содержит сигнатуру конца файла 0xFFFFFFF8. Если элемент FAT содержит код 0x0FFFFFF7, то кластер помечается как поврежденный и не должен выделяться системой. Начальный кластер, указанный в 32-х байтном дескрипторе каталога, сообщает операционной системе, где на диске искать первую часть файла и где в таблице FAT32 искать следующий номер кластера. В показанном ниже дескрипторе каталога адрес начального кластера выделен полужирным шрифтом.
Для указания номера кластера используются два дополнительных байта. Они размещаются в зарезервированном поле дескриптора (в примере, показанном выше, это поле содержит код 00 00). Объединяя их с обычными (существующими в FAT16) двумя байтами (02 00), операционная система получает нужное значение (00 00 00 02) и ищет по нему соответствующий элемент таблицы FAT. Ниже показан пример записи с номерами кластеров файла в 32-разрядной таблице FAT: F8 FF FF 0F FF FF FF 0F - 03 00 00 0004 00 00 00 05 00 00 0006 00 00 00 - 07 00 00 00 08 00 00 00 09 00 00 00 0А 00 00 00 - 0В 00 00 00 0С 00 00 00 0D 00 00 00 0Е 00 00 00 - 0F 00 00 00 10 00 00 00 11 00 00 00 12 00 00 00 - 13 00 00 00 14 00 00 00 15 00 00 00 16 00 00 00 - 17 00 00 00 18 00 00 00 19 00 00 00 1А 00 00 00 - 1В 00 00 00 FF FF FF F8 Как и раньше в FAT 16, F8 - это байт, содержащий дескриптор носителя. Следующие семь байтов, FF FF 0F FF FF FF 0F, зарезервированы. Номера кластеров записываются как четырехбайтовые числа, в которых младшие байты указаны первыми. Их следует читать так:
Конец цепочки кластеров для файла помечается маркером FFFFFFF8. Корневой каталог в FAT32 может содержать до 65 535 элементов. В загрузочном секторе появился новый элемент, который указывает на первый кластер корневого каталога. Поэтому корневой каталог больше не привязан к строго определенному участка на диске ( раньше он должен был находиться непосредственно за второй таблицей FAT) и может расширяться точно так же, как и любой подкаталог. В файловых системах FAT32 и VFAT (виртуальная FAT, расширение FAT16) включена поддержка длинных имен файлов (long file name, LFN). Для хранения длинного имени используются дескрипторы каталога, смежные с основным дескриптором. Имя файла записывается не ASCII-символами, а в системе кодирования Unicode. В одном дескрипторе каталога можно сохранить фрагмент длиной до 13 символов Unicode. Неиспользованный участок последнего дескриптора заполняется кодами 0xFFFF. Структура дескриптора каталога для длинного имени файла представлена в табл. 4. Длинное имя записывается в каталог первым, причем дескрипторы длинного имени размещаются в обратном порядке, начиная с последнего. С целью поддержки совместимости для каждого длинного имени файла вслед за длинным (полным) именем размещается короткое имя файла, содержащий укороченный по специальному алгоритму вариант этого имени. Он называется псевдонимом имени. Таблица 4
Псевдоним удовлетворяет формату "8.3”, составляется из первых шести символов имени файла, дополняемых знаками ~n (где n - порядковый номер), и первых трех символов за последней точкой. В псевдониме используются только допустимые символы, а все буквы должны быть заглавными, чтобы соответствовать правилам формата "8.3". В качестве примера ниже приводится структура дескрипторов каталога для файла с именем "The quick brown fox". Система создала представление этого имени в формате "8.3", THEQUI~1.FOX (в элементе каталога нет "точки", поскольку предполагается, что точка следует после восьмого символа), и использовала два дополнительных 32-х байтных дескриптора для хранения длинного Unicode-имени. Каждая строка на рисунке состоит из 16 байт. Второй (и последний) элемент для длинного имени:
Первый элемент для длинного имени:
Элемент для короткого имени:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-02-06; просмотров: 3587; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.108 (0.009 с.) |