Файлові системи VFAT і FAT32
Однієї з найважливіших характеристик вихідної FAT було використання імен файлів формату “8.3”, у якому 8 символів відводиться на вказання імені файлу і 3 символи - для розширення імені. До стандартної FAT (мається на увазі реалізація FAT16) додалися ще два різновиди, що використовуються в розповсюджених операційних системах Microsoft ( Windows 95 і Windows NT): VFAT (віртуальна FAT) і FAT32, що використовуються в одній з редакцій ОС Windows 95 і Windows 98. Зараз ця файлова система (FAT32) підтримується і такими ОС, як Windows Millennium Edition, і всіма ОС сімейства Windows 2000. Є реалізації систем керування файлами для FAT32, Windows NT і ОС Linux.
Файлова система VFAT вперше з'явилася в Windows for Workgroups 3.11 і була призначена для виконання файлового вводу-виводу в захищеному режимі. З виходом Windows 95 у VFAT додана підтримка довгих імен файлів (long file name, LFN). Також VFAT зберігає сумісність з вихідним варіантом FAT, разом з довгими іменами в ній підтримуються імена формату “8.3”, а також існує спеціальний механізм для перетворення імен “8.3” у довгі імена, і навпаки. Саме файлова система VFAT підтримується вихідними версіями Windows 95, Windows NT 4. При роботі з VFAT важливо використовувати файлові утиліти, що підтримують VFAT взагалі і довгі імена зокрема. Справа в тому, що більш ранні файлові утиліти DOS модифікують те, що здається їм вихідною структурою FAT. Це може привести до втрати або псування довгих імен з таблиці FAT, що підтримується VFAT (або FAT32). Це значить, що для томів VFAT необхідно користуватися файловими утилітами, що розуміють і зберігають файлову структуру VFAT.
В початковій версії Windows 95 основною файловою системою була 32-розрядна VFAT. VFAT може використовувати 32-розрядні драйвери захищеного або режиму 16-розрядні драйвери реального режиму. При цьому елементи FAT залишаються 12- або 16-розрядними, тому на диску використовується та ж структура даних, що і в попередніх реалізаціях FAT. VFAT оброблює всі звертання до жорсткого диска і використовує 32-розрядний код для всіх файлових операцій з дисковими томами.
Основними недоліками файлових систем FAT і VFAT є великі втрати на кластеризацію при великих розмірах логічного диска і обмеження на сам розмір логічного диска. Це привело до розробки нової реалізації файлової системи з використанням тієї ж ідеї використання таблиці FAT. Тому в Microsoft Windows 95 OEM Service Release 2 (ця версія Windows 95 часто називається Windows 95 OSR2) на зміну системі VFAT прийшла файлова система FAT32.
FAT32 є цілком самостійною 32-розрядною файловою системою і вміщує вдосконалення і доповнення в порівнянні з попередніми реалізаціями FAT.
В завантажувальному секторі для тома з FAT32 у блоці DPB вміщуються додаткові поля, а ті поля, що знаходяться в звичному для системи FAT16 місці, перенесені. Тому ОС, у якій є можливість працювати з файловою системою FAT16, але немає системи керування файлами, що розуміє специфікації FAT32, не може читати дані з томів, відформатованих під файлову систему FAT32. У завантажувальному секторі для файлової системи FAT32 як і раніше байти з ООН по ОАН вміщують команду переходу і OEM ID, а в байтах з ОВН по 59Н вміщуються дані блоку DPB. Відмінність полягає саме в дещо іншій структурі блоку DBP; його вміст наведений в табл. 7.
Таблиця 7. Структура завантажувального запису boot record для FAT32
Зсув поля, байт | Довжина поля, байт | Позна-чення поля | Вміст поля |
ООН (0) | JUMP ЗЕН | Безумовний перехід на початок SB | |
ОЗН (3) | Системний ідентифікатор | ||
ОВН (11) | SectSize | Розмір сектора, байт | |
ODH (13) | ClastSize | Число секторів у кластері | |
ОЕН (14) | ResSecs | Число зарезервованих секторів, для FAT32 дорівнює 32 | |
Таблиця 7.(продовження) | |||
10Н (16) | FATcnt | Число копій FAT | |
11Н (17) | RootSize | ООООН | |
13Н (19) | TotSecs | ООООН | |
15Н (21) | Media | Дескриптор носія | |
16Н (22) | FATsize | ООООН | |
18Н (24) | TrkSecs | Число секторів на доріжці | |
1АН (26) | HeadCnt | Число робочих поверхонь | |
1СН (28) | HidnSecs | Число захованих секторів (розташовуються перед завантажувальним сектором). Використовується при завантаженні для обчислення абсолютного зсуву кореневого каталогу і даних | |
20Н (32) | Число секторів на логічному диску | ||
24Н (36) | Число секторів у таблиці FAT | ||
28Н (40) | Розширені прапори | ||
2АН (42) | Версія файлової системи | ||
2СН (44) | Номер кластера для першого кластера кореневого каталогу | ||
30Н(48) | Номер сектора з резервною копією завантажувального сектора | ||
32Н (50) | Зарезервовано |
Принципова відмінність полягає в тому, що FAT32 набагато ефективніше витрачає дисковий простір. Насамперед, система FAT32 використовує кластери меншого розміру в порівнянні з попередніми версіями, обмежувалися 65 535 кластерами на том (відповідно, зі збільшенням розміру диска приходилося збільшувати і розмір кластерів). Навіть для дисків розміром до 8 Гбайт FAT32 може використовувати 4-кілобайтні кластери. У результаті в порівнянні з дисками FAT16 економиться значний дисковий простір (у середньому 10-15 %).
FAT32 також може переміщувати кореневий каталог і використовувати резервну копію FAT замість стандартної. Розширений завантажувальний запис FAT32 дозволяє створювати копії критичних структур даних; це підвищує стійкість дисків FAT32 до порушень структури FAT у порівнянні з попередніми версіями. Кореневий каталог у FAT32 представлений у виді звичайного ланцюжка кластерів. Отже, кореневий каталог може знаходитися в довільному місці диска, що знімає діючі раніше обмеження на розмір кореневого каталогу (512 елементів).
Windows95 OSR2 і Windows98 можуть працювати і з розділами VFAT, створеними Windows NT. Tе, що говорилося раніше про використання файлових утиліт VFAT з томами VFAT, відноситься і до FAT32.
Оскільки попередні утиліти FAT (для FAT32 в цю категорію входять обидві файлові системи, FAT і VFAT) можуть пошкодити або знищити важливу службову інформацію, для томів FAT32 не можна користуватися ніякими файловими утилітами, крім утиліт FAT32.
Крім підвищення ємності FAT до величини в 4 Тбайт, файлова система FAT32 вносить ряд необхідних вдосконалень у структуру кореневого каталогу. Попередні реалізації вимагали, щоб вся інформація кореневого каталогу FAT знаходилася в одному дисковому кластері. При цьому кореневий каталог міг вміщувати не більше 512 файлів. Необхідність представляти довгі імена і забезпечити сумісність з попередніми версіями FAT привела розробників компанії Microsoft до компромісного рішення: для представлення довгого імені вони стали використовувати елементи каталогу, у тому числі і кореневого.
Розглянемо спосіб представлення довгого імені файлу (рис.5).
Перші одинадцять байтів елемента каталогу DOS використовуються для збереження імені файлу. Кожне таке ім'я розділяється на двох частин: у перших восьми байтах зберігаються символи імені, а в
Елемент каталогу для короткого імені файлу (FAT16 )
Ім'я файла ( 8 символів імені і 3 символи розширення) | Атрибути файла | Зарезервовано | Час останнього запису | Дата останнього запису | Номер початкового кластера | Розмір в байтах |
0 10 11 12 21 22 23 24 25 26 27 28 31
Елемент каталогу для короткого імені файлу (FAT32 )
Ім'я файла ( 8 символів імені і 3 символи розширення) | Атрибути файла | Зарезервовано (NT) | Час створення файла | Дата створення файла | Дата останнього доступу | Старше слово номера початкового кластера | Час останнього запису | Дата останнього запису | Молодше слово номера початкового кластера | Розмір в байтах |
0 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31
Елемент каталогу для довгого імені файлу (FAT32, FAT16 )
Номер елемента | Символи 1-5 імені файла в Unicode | Атрибути файла | Зарезервовано | Контрольна сума | Символи 6-11 імені файла в Unicode | Має дорівнювати нулю | Символи 12-13 імені файла в Unicode |
0 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31
Рис.5. Елементи каталогів для FAT, VFAT і FAT32
останніх трьох - символи розширення, за допомогою якого реалізуються механізми визначених типів. Були введені відповідні системні угоди, і файли визначеного типу необхідно іменувати з обговореним розширенням. Наприклад, виконувані файли з розширенням СОМ визначають виконувану двійкову програму з односегментною структурою. Більш складні програми мають розширення ЕХЕ. Визначені розширення для великої кількості типів файлів, і ці розширення використовуються для асоційованого запуску оброблюючих файли програм.
Якщо ім'я файлу складається менше ніж з восьми символів, то в елементі каталогу воно доповнюється символами пробілу, щоб повністю заповнити всі вісім байтів відповідного поля. Аналогічно і розширення може вміщувати від нуля до трьох символів. Інші (незаповнені) позиції в елементі каталогу, що визначає розширення імені файлу, заповнюються символами пробілу. Оскільки при роботі з іменем файлу враховуються всі одинадцять вільних місць, то відпадає необхідність у відображенні крапки, що відділяє ім'я файлу від його розширення.
У дванадцятому байті елемента каталогу зберігаються атрибути файлу. Шість з восьми вказаних розрядів використовуються DOS. До атрибутів DOS відносяться наступні:
- атрибут “архівний” (А - archive). Показує, що файл був відкритий програмою таким чином, щоб у неї була можливість змінити вміст цього файлу. DOS установлює цей розряд атрибута в стан ON (включено) при відкритті файлу. Програми резервного копіювання часто встановлюють його в OFF (виключено) при виконанні резервного копіювання файлу. Якщо застосовується подібна методика, то в наступну створювану по порядку резервну копію будуть додані тільки файли з даним розрядом, встановленим у стан ON;
- атрибут каталогу (D - directory). Показує, що даний елемент каталогу вказує на підкаталог, а не на файл;
- атрибут тому (V - volume). Застосовується тільки до одного елемента каталогу в кореневому каталозі. У ньому зберігається ім'я дискового тому. Цей атрибут також застосовується у випадку довгих імен файлів;
- атрибут “системний” (S - system). Показує, що файл є частиною операційної системи або спеціально відзначений подібним чином прикладною програмою, що іноді робиться в якості складової частини методу захисту від копіювання;
- атрибут “захований” (Н - hidden). Сюди відносяться, зокрема, файли з встановленим у стан ON атрибутом «системний» (S), які не відображаються в звичайному списку, виведеному по команді DIR;
- атрибут “тільки для читання” (R - read only). Показує, що даний файл не підлягає зміні. Оскільки це лише розряд байта, що зберігається на диску, то будь-яка програма може змінити цей розряд, після чого DOS вільно дозволила би зміну даного файлу. Цей атрибут в основному використовується для примітивного захисту від помилок користувача, тобто він дозволяє уникнути ненавмисного видалення або зміни ключових файлів.
Слід зазначити, що наявність файлу, позначеного одним або більше із зазначених вище атрибутів, може мати певний смисл. Наприклад, більшість файлів, відмічених у якості системних, відзначаються також ознаками захованих файлів і “тільки для читання”.
На дисках FAT16 наступні за іменем десять байтів не використовуються. Зазвичай вони заповнюються нулями і вважаються резервними значеннями. А на диску з файловою системою FAT32 ці 10 байт вміщують різноманітну інформацію про файл. При цьому байт, відзначений як "зарезервовано для NT", являє собою поле, що не використовується в DOS або Windows 9x, але використовується у Windows NT.
Із міркувань сумісності поля, що зустрічаються в елементах каталогу для коротких імен формату FAT16, знаходяться на тих же місцях і в елементах каталогу для коротких імен формату FAT32. Інші поля, що зустрічаються тільки в елементах каталогу для коротких імен формату FAT32, відповідають зарезервованій області довжиною в десять байтів в елементах каталогу для коротких імен формату FAT16.
Як видно з рис.5, для довгого імені файлу використовується декілька елементів каталогу. Таким чином, поява довгих імен фактично привела до подальшого зменшення кількості файлів, які можуть знаходитися в кореневому каталозі. Оскільки довге ім'я може вміщувати до 256 символів, всього один файл із повним довгим іменем займає до 25 елементів FAT (1 для імені 8.3 і ще 24 для найбільш довгого імені). Кількість елементів кореневого каталогу VFAT зменшується до 21. Компанія Microsoft радить уникати довгих імен у кореневих каталогах FAT при відсутності FAT32, у якої кількість елементів каталогу відповідно просто збільшена. Слід пам'ятати і про те, що довжина повної файлової специфікації, яка включає шлях та ім'я файлу (довге або у форматі 8.3), також обмежується 260 символами. FAT32 успішно справляється з проблемою довгих імен у кореневому каталозі, але проблема з обмеженням довжини повної файлової специфікації залишається. З цієї причини Microsoft рекомендує обмежувати довгі імена 75-80 символами, щоб залишити досить місця для шляху (180-185 символів).
Дата добавления: 2016-07-27; просмотров: 1805;