Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дисковая сист.DOC
Скачиваний:
3
Добавлен:
16.11.2019
Размер:
2.68 Mб
Скачать

Файлы и каталоги

Файловая система DOS, Windows, Unix имеет древовидную структуру. В корневом каталоге располагаются 32-байтовые элементы, которые содержат информацию о файлах и других каталогах. Для чтения корневого каталога необходимо определить его расположение и размер.

Корневой каталог находится сразу за последней копией FAT. Количество секторов, занимаемых одной копией FAT, находится в блоке параметров BIOS в BOOT-секторе в поле fatsize, количество копий FAT - в поле fatcnt блока BPB. Следовательно, перед корневым каталогом находится один BOOT-сектор и (fatcnt*fatsize) секторов таблицы размещения файлов FAT.

Размер корневого каталога можно определить исходя из значения поля rootsize. В этом поле при форматировании диска записывается максимальное количество файлов и каталогов, которые могут находиться в корневом каталоге. Для каждого элемента в каталоге отводится 32 байта, поэтому корневой каталог имеет длину (32*rootsize) байтов.

Корневой каталог занимает непрерывную область фиксированного размера. Размер корневого каталога задается при форматировании и определяет максимальное количество файлов и каталогов, которые могут быть описаны в корневом каталоге. Для определения количества секторов, занимаемых корневым каталогом, можно воспользоваться следующей формулой:

RootSecs = (32*rootsize) / sectsize

В этой формуле sectsize - размер сектора в байтах, он может быть получен из соответствующего поля BOOT-сектора.

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

Области логического

диска

Номер начального сектора

на логическом диске

BOOT-сектор и

зарезервированные

секторы

0

Первая копия FAT

ressecs – количество резервных секторов

Вторая копия FAT

ressecs+fatsize

Корневой каталог

ressecs+(fatsize*fatcnt)

Область данных

ressecs+(fatsize*fatcnt)+

(32*rootsize) / sectsize

Область данных разбита на кластеры, причем нумерация кластеров начинается с числа 2. Кластеру с номером 2 соответствуют первые секторы области данных.

Каталоги (корневой и подкаталоги) содержат 32-байтовые элементы - дескрипторы, описывающие файлы и другие каталоги. Формат дескриптора:

Смещение

Размер

Содержимое

(+0)

8

Имя файла или каталога, выравненное на левую границу и дополненное пробелами.

(+8)

3

Расширение имени файла, выравненное на левую границу и дополненное пробелами.

(+11)

1

Атрибуты файла.

(+12)

10

Зарезервировано.

(+22)

2

Время создания файла или время его последней модификации.

(+24)

2

Дата создания файла или дата его последней модификации.

(+26)

2

Номер первого кластера в цепочке, отведенной файлу.

(+28)

4

Размер файла в байтах.