Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО / ЛАБ_FS_2.doc
Скачиваний:
25
Добавлен:
03.03.2016
Размер:
370.69 Кб
Скачать

3.1 Дескриптори для довгих імен файлів

Стандартні записи каталогу дозволяють представити файл, ім'я якого складається з 8 символів, а розширення - з 3. Якщо ім'я має більшу довжину або містить спеціальні символи, для нього потрібні особливі записи каталогів - записи LFN (Long File Name). Крім всіх записів LFN для файлу також створюється звичайний запис, причому записам LFN повинен предшествувати звичайний запис. Поля LFN-версії запису каталогу перераховані в табл. 2.7.

Таблиця 2.7 Структура дескриптора з довгим іменем

Діапазон

Опис

0

порядковий номер

1-10

символи імені файлу 1-5 (Unicode)

11

атрибут файлу

12

Зарезервовано (0)

13

контрольна сума

14-25

Символи імені файлу 6-11 (Unicode)

26-27

Зарезервовано (0)

28-31

символи імені файлу 13-13 (Unicode)

Поле порядкового номера містить лічильник записів, необхідних для зберігання імені файлу. Першому запису відповідає порядковий номер 1. Порядковий номер збільшується на 1 для кожного запису LFN аж до останнього, ознакою якого є одиниця у шостому біті.

Записи LFN розташовуються у зворотньому порядку перед записом короткого імені файлу. Отже, перший запис, що знаходиться в каталозі, є останнім записом LFN для файлу й має найбільший порядковий номер. Невикористовуванні символи в імені доповнюються кодами Oxff, а ім'я завершується символом NULL при наявності вільного місця. Поле атрибутів запису LFN повинно дорівнювати OxOF.

4. Таблиця fat

Таблиця FAT, що займає центральне місце у файловій системі FAT, виконує дві функції. Вона використається для визначення стану виділених кластерів і для пошуку наступного виділеного кластера файлу або каталогу. Звичайно у файловій системі FAT зберігаються дві копії FAT, але їхня точна кількість вказується в завантажувальному секторі. Перша копія FAT починається після зарезервованих секторів, розмір яких вказується в завантажувальному секторі. Розмір однієї копії FAT також зберігається в завантажувальному секторі. Друга копія FAT починається в наступному секторі за першою копією. Таблиця складається із записів однакового розміру. На початку таблиці розташована службова область, розмір якої залежить від розміру одного елемента FAT, що дорівнює 2* SIZE_ELEMENT, де SIZE_ELEMENT = 1.5,2,4 байти відповідно для FAT12/16/32. Адресація записів починається з 0, і кожний запис відповідає кластеру з тією же адресою. Якщо кластер вільний, його запис дорівнює 0. Записи виділених кластерів відмінні від нуля й містять адреса наступного кластера у файлі або каталозі. Якщо кластер завершує ланцюжок кластерів файлу або каталогу, його запис містить маркер кінця файлу; в FAT 12 це будь-яке значення 0xff8, в FAT 16 -0xfff8, і в FAT32 -0x0ffffff8.Якщо запис містить значення 0xff7 в FAT12, 0xfff7 в FAT 16 або 0x,0ffffff7 в FAT32, кластер позначений як ушкоджений і не повинен виділятися системою. Записи зарезервованих кластерів містять значення 0xff0-0xff6 в FAT12, 0xfff0-0xfff6 в FAT16, або 0x0ffffff0-0x0ffffff6 в FAT32. Загальний діапазон кластерів доступних для виділення у файловій системі FAT12 0x002-0xfef, 0x0002-0xffef у FAT16, а у файловій системі FAT32 цей діапазон дорівнює 0x00000002-0x0fffffef

Інформація в таблиці FATописує однаково як файл так і каталог. Для ідентифікації об’єкту використовується дескриптор Ідентифікація об’єкту виконується тільки через атрибут дескриптора цього об’єкту. Структура файлу визначається його форматом даних. Каталог має певну структуру. При створенні нового каталогу для нього виділяється кластер, заповнюваний нулями крім перших двох записів. Перші два записи каталогу призначені для елементів з ім’ям «.» і «..».Ім'я «.» позначає поточний каталог, у полі перший кластер файлу міститься номер кластера поточного каталогу, а ім'я «..» - батьківський каталог, у полі перший кластер файлу міститься номер кластера батьківського каталогу. Поле «розмір» у запису каталога не використовується й завжди повинне дорівнювати 0. Єдиний спосіб визначення розміру каталогу – є алгоритм проходження по ланцюгу кластерів, що належать цьому каталогу.

Соседние файлы в папке СПО