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

Номер першого кластера файлу, що визначає «точку входу» у таблицю FAT, задається полями DIR_FstClusLO і DIR_FstClusHI, які містять молодше слово і старше слово номера кластера відповідно. Для FAT 12 і FAT 16 визначене тільки поле DIR_FstClusLO, a DIR_FstClus1 є зарезервованим і повинне містити нульове значення.

Поле розміру файлу DIR_FileSize є 32-розрядним числом і містить точну довжину файлу в байтах, що дозволяє задавати розмір до 4 Гбайт (4 294 967 295 байт). Для каталогів у поле довжини записане нульове значення.

Дескриптори вилучених файлів. При видаленні файлу перший байт його імені заміняється на байт E5h (символ "х"). Усі кластери, які розподілені файлу, відзначаються в FAT як вільні. Якщо після видалення файлу на диск не було зроблено записів нових файлів, його можна відновити, тому що в дескрипторі збереглися всі поля, крім першого байта імені файлу. Але якщо на диск записати нові файли, то вміст кластерів вилученого файлу буде змінене і відновлення стане неможливим.

Усі каталоги, за винятком кореневого, містять у двох перших елементах каталогу замість описувача файлів спеціальні посилання. В елементі з номером 0 розміщається покажчик на сам каталог, а в поле імені знаходиться одна крапка (“.”). В елементі з номером 1 розміщається покажчик на “батьківський” каталог, який має більш високий рівень, а в полі імені знаходиться дві крапки (“..”). Якщо в елемента 1 посилання має нульове значення, то поточний каталог знаходиться в кореневому каталозі.

4.4 Організація таблиць розміщення файлів

Таблиця розміщення файлів знаходиться відразу за завантажувальним сектором і містить адреси послідовності кластерів, які відносяться до вибраного файлу. Елементи таблиці FAT починаючи з другого номеру містять інформацію про використання кластерів: вільний кластер, дефектний, зарезервований, наступний номер, ознака кінця списку використовуваних кластерів файлом. Номер початкового кластеру зберігаються в каталозі файлів, який описує даний файл. Значення кодів елементів кластерів представлені в таблиці 4.7. Різні операційні системи можуть використовувати свої значення.

Перші два елементи таблиці FAT є «резервними». Значення елемента FAT[0] (перший елемент таблиці FAT) є сигнатурою. Він має таке ж значення, як і байт-описувач середовища, що знаходиться в завантажувальному секторі логічного диску. У жорсткого диску для FAT12, FAT16 і FAT32 ці значення дорівнюють FF8h, FFF8h та FFFFFF8h