Файлові системи 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 набагато ефективніше витрачає дисковий простір. Насамперед, система FAT32 використовує кластери меншого розміру в порівнянні з попередніми версіями, що обмежувалися 65535 кластерами на том (відповідно, зі збільшенням розміру диска приходилося збільшувати і розмір кластерів). Отже, навіть для дисків розміром до 8 Гбайт FAT32 може використовувати 4-кілобайтні кластери. У результаті в порівнянні з дисками FAT16 заощаджується значний дисковий простір (у середньому 10-15%).
FAT32 також може переміщати кореневий каталог і використовувати резервну копію FAT замість стандартної. Розширений завантажувальний запис FAT32 дозволяє створювати копії критичних структур даних; це підвищує стійкість дисків FAT32 до порушень структури FAT у порівнянні з попередніми версіями. Корнєвий каталог у FAT32 представлений у виді звичайного ланцюжка кластерів. Отже, кореневий каталог може знаходитися в довільному місці що знімає обмеження, що раніше діяло, на розмір кореневого каталогу (512 елементів).
Windows 95 OSR2 і Windows 98 можуть працювати і з розділами VFAT, створеними Windows NT. To, що говорилося раніше про використання файлових утиліт VFAT з томами VFAT відноситься і до FAT32. Оскільки колишні утиліти FAT (для FAT32 у цю категорію входять обидві файлові системи, FAT і VFAT) можуть зашкодити чи знищити важливу службову інформацію, для томів FAT32 не можна користуватись ніякими файловими утилітами, крім утиліт FAT32. Крім підвищення ємкості FAT до величини в 4 Тбайт, файлова система FAT32 вносить ряд необхідних удосконалень у структуру кореневого каталогу. Попередні реалізації вимагали, щоб вся інформація кореневого каталогу FAT знаходилася в одному дисковому кластері. При цьому кореневий каталог міг містити не більш 512 файлів. Необхідність представляти довгі імена і забезпечити сумісність з колишніми версіями FAT привела розроблювачів компанії Microsoft до компромісного рішення: для представлення довгого імені вони стали використовувати елементи каталогу, у тому числі і кореневого. Розглянемо спосіб представлення в VFAT довгого імені файлу (мал. 10.9).
Рис. 10.9. Елементи каталогів для FAT, VFAT і FAT32.
Перші одинадцять бітів елемента каталогу DOS використовуються для збереження імені файлу. Кожне таке ім'я розділяється на дві частини: у перших восьми байтах зберігаються символи власне імені, а в останніх трьох — символи так званого розширення з допомогою якого реалізуються механізми визначених типів. Були уведені відповідні системні угоди, і файл; визначеного типу необхідно (бажано) іменувати з обговореним розширенням. Наприклад, файли, що виконуються з розширенням СОМ визначають двійкову програму, що виконується, з найпростішою односегментною структурою. Більш складні програми мають розширення ЕХЕ. Визначено розширення для великої кількості типів файлів, і ці розширення використовуються для асоційованого запуску оброблюючих файли програм.
Якщо ім'я файлу складається менш ніж з восьми символів, то в елементі каталогу воно доповнюється символами пропуску, щоб цілком заповнити усі вісім байтів відповідного поля. Аналогічно і розширення може містити від нуля до трьох символів. Інші (незаповнені) позиції в елементі каталогу, що визначає розширення імені файлу, заповнюються символами пропуску. Оскільки при роботі з ім'ям файлу враховуються всі одинадцять вільних місць, то необхідність у відображенні крапки, що звичайно вводиться між ім'ям файлу і його розширенням, відпадає. В елементі каталогу вона просто припускається.
У дванадцятому байті елемента каталогу зберігаються атрибути файлу. Шість з восьми зазначених розрядів використовуються DOS. До атрибутів DOS відносяться наступні:
· атрибут «архівний» (А — archive). Показує, що файл був відкритий програмою таким чином, щоб у неї була можливість змінити вміст цього файлу. DOS установлює цей розряд атрибута в стан ON (включено) при відкритті файлу. Програми резервного копіювання нерідко встановлюють його в OFF (виключено) при виконанні резервного копіювання файлу. Якщо застосовується подібна методика, то в наступну створювану по порядку резервну копію будуть додані тільки файли з даним розрядом, встановленим у стан ON;
· атрибут каталогу (D- directory). Показує, що даний елемент каталогу вказує на підкаталог, а не на файл;
· атрибут тому (V - volume). Застосовується тільки до одного елемента каталогу в кореневому каталозі. У ньому, власне, і зберігається ім'я дискового тому. Це атрибут також застосовується у випадку довгих імен файлів, про що можна буде довідатися з наступного розділу;
· атрибут «системні» (S — system). Показує, що файл є частина операційної системи чи спеціально відзначений подібним чином прикладною програмою, що іноді робиться в якості складеної частини методу захисту від копіювання;
· атрибут «схований» (Н — hidden). Сюди відносяться, зокрема, файли з встановленим у стан ON атрибутом «системний» (S), що не відображаються в звичайному списку, виведеному по команді DIR;
· атрибут «тільки для читання» (R — read only). Показує, що даний файл не підлягає зміні. Зрозуміло, оскільки це лише розряд байта, що зберігається на диску, то будь-яка програма може змінити цей розряд, після чого DOS вільно дозволила би зміну даного файлу. Цей атрибут в основному використовується для примітивного захисту від користувацьких помилок, тобто він дозволяє уникнути ненавмисного видалення чи зміни ключових файлів.
Слід зазначити, що наявність файлу, позначеного одним чи більш із зазначених вище атрибутів, може мати цілком визначений зміст. Наприклад, більшість файлів, відмічуваних у якості системних, відзначаються також ознаками схованих файлів і «тільки для читання».
На дисках FAT12 чи FAT16 наступні за ім'ям десять байтів не використовуються. Звичайно вони заповнюються нулями і вважаються резервними значеннями. А на диску з файловою системою FAT32 ці 10 байт містять саму різну інформацію про файл. При цьому байт, відзначений як «зарезервовано для NT», являє собою, що видно з його назви, поле, не використовуване в DOS чи Windows 9х, але застосовуване в Windows NT.
З поглядів сумісності поля, що зустрічаються в елементах каталогу для коротких імен формату FAT12 і FAT16, знаходяться на тих же місцях і в елементах каталогу для коротких імен формату FAT32. Інші поля, що зустрічаються тільки в елементах каталогу для коротких імен формату FAT32, відповідають зарезервованій області довжиною в десять байтів в елементах каталогу для коротких імен форматів FAT12 і FAT16.
Як видно з мал.10.9, для довгого імені файлу використовується кілька елементів каталогу. Таким чином, поява довгих імен фактично привело до подальшого зменшення кількості файлів, що можуть знаходитися в кореневому каталозі. Оскільки довге ім'я може містити до 256 символів, всього один файл із повним довгим ім'ям займає до 25 елементів FAT (1 для імені 8.3 і ще 24 для самого довгого імені). Кількість елементів кореневого каталогу VFAT зменшується до 21. Очевидно, що це не саме витончене рішення, тому компанія Microsoft радить уникати довгих імен у кореневих каталогах FAT при відсутності FAT32, у якого кількість елементів каталогу відповідно просто збільшений. Пам‘ятайте і про те, що довжина повної файлової специфікації, що включає шлях і ім'я файлу (довге чи у форматі 8.3), теж обмежується 260 символами. FAT32 успішно справляється з проблемою довгих імен у кореневому каталозі, але проблема з обмеженням довжини повної файлової специфікації залишається. З цієї причини Microsoft рекомендує обмежувати довгі імена 75-80 символами, щоб залишити досить місця для шляху (180-185 символів).
Дата добавления: 2016-07-27; просмотров: 1787;