Введення у файлові системи, страница 29

Хоча відносні номери секторів структур Backup Boot Sector і FSinf є константами, значення цих констант ще зберігаються в полях BPB_BkBootSec і BPB_FSInfo завантажувального сектора.

Щоб прочитати значення елементу будь-якої структури даних, потрібно спочатку одержати доступ до самої структури (визначити її місце розташування на диску), а потім прочитати з диску в буфер оперативної пам'яті всю структуру, або тільки той сектор, у якому знаходиться потрібний елемент. Місце розташування основних структур даних на фізичному диску, тобто абсолютні номери початкових секторів, можна обчислити по наступним формулах:

BS_StartSect = LDisk_StartSect

FSInfo_StartSect = BS_StartSect + BPB_FSInfo

FATl_StartSect = BS_StartSect + BPB_RsvdSecCnt

FAT2_StartSect = FATl_StartSect + BPB_FATSz

RDir_StartSect = FATl_StartSect + BPB_FATSz * BPB_NumFATs

Data_StartSect = RD1r_StartSect + (32 x BPB_RootEntCnt)/512

У приведених формулах використані наступні позначення:

BS_StartSect – номер завантажувального сектора логічного диску;

LDisk_StartSect – номер початкового сектора диску;

FAT1_S tart Sect – номер початкового сектора першої FAT;

BPB_RsvdSecCnt – число секторів у «резервній» області (32 для системи FAT32 і 1 для інших систем);

FAT2_StartSect – номер початкового сектора другої FAT;

BPB_FATSz - розмір однієї копії FAT (BPB_FATSz32 для FAT32 і ВРВ_ FATSzl6 для інших систем);

BPB_NumFATs – число копій FAT на диску;

RDir_StartSect – номер початкового сектора кореневого каталогу;

Data_StartSect – номер початкового сектора області даних;

BPB_RootEntCnt — число записів у кореневому каталозі (0 для FAT32 і 512 для інших систем).

4.3 Каталоги файлів

Файлова система має деревоподібну структуру, яка містить каталоги і файли. Головний каталог диску, з якого починається дерево підкаталогів, називається кореневим каталогом (Root Directory). Для кореневого каталогу в FAT 12 і FAT 16 виділено в системній області логічного диску спеціальне місце фіксованого розміру (16 Кбайт), розраховане на збереження 512 елементів. У системі FAT32 кореневий каталог є файлом довільного розміру.

Каталог файлів для FAT 16 містить масив 32-байтных елементів, які називаються дескриптором чи піддиректорії (directory entry), які описують властивості файлів та піддиректоріїв: ім'я файлу чи піддиректорії, його атрибути (архівний, схований, системний і “тільки для читання”), дату і час створення чи внесення в нього останніх змін, а також іншу інформацію. Розмір каталогу має обмеження в 2097152 байта. Обмеження зв'язані з тим, що дискові операційні системи використовують як лічильник елементів каталогу 16-и розрядне слово, що дозволяє визначити максимально 65536 елементів каталогу в 32 байта. Структура елемента каталогу файлів приведена в табл. 4.5.