Характеристика файлової системи FAT. Файлова система fat. Опис файлової системи FAT16

До виникнення операційної системи Microsoft Windows NT у користувачів персональних комп'ютерів рідко виникала проблема вибору файлової системи. Усі власники операційних систем (ОС) MS-DOS і Microsoft Windows застосовували один із різновидів файлової системи з назвою FAT (FAT-12, FAT-16 або FAT-32).

Тепер ситуація змінилася. Встановлюючи ОС Microsoft Windows NT/2000/XP, при форматуванні диска Вам необхідно зробити вибір між трьома файловими системами – FAT-16, FAT-32 чи NTFS.

У цій статті ми розповімо про внутрішньому пристроїперерахованих файлових систем, розглянемо властиві їм недоліки та переваги. Озброївшись цими знаннями, Ви зможете зробити усвідомлений вибір на користь тієї чи іншої файлової системи для Microsoft Windows.

Коротко про файлову систему FAT

Файлова система FAT з'явилася на зорі розвитку персональних комп'ютерів і спочатку призначалася для зберігання файлів на дискетах.

Інформація зберігається на дисках та дискетах порціями, у секторах розміром 512 байт. Весь простір дискети поділялося області фіксованої довжини, звані кластерами. Кластер може містити один або більше секторів.

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

Крім кореневого каталогу, у файловій системі FAT можуть створюватися інші каталоги. Разом з кореневим каталогом вони утворюють дерево каталогів, що містять інформацію про файли та каталоги. Що ж до розташування кластерів файлу на диску, то ця інформація зберігається в початковій області дискети, званої таблицею розміщення файлів (File Allocation Table, FAT).

Для кожного кластера в таблиці FAT є свій індивідуальний осередок, в якому зберігається інформація про те, як цей кластер використовується. Таким чином, таблиця розміщення файлів – це масив, що містить інформацію про кластери. Розмір цього масиву визначається загальною кількістю кластерів на диску.

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

Під час створення формату таблиці FAT стояло завдання економії місця, т.к. дискета має дуже невеликий об'єм (від 180 Кбайт до 244 Мбайт). Тому для зберігання номерів кластера було відведено лише 12 двійкових розрядів. В результаті таблицю FAT вдалося запакувати так щільно, що вона займала лише один сектор дискети.

Таблиця FAT містить критично важливу інформаціюпро розташування каталогів та файлів. Якщо в результаті збою апаратури, програмного забезпеченняабо шкідливого впливу вірусів таблиця FAT виявиться пошкодженою, доступ до файлів та каталогів буде втрачено. Тому для підстрахування на диску зазвичай створюються дві копії таблиці FAT.

Різні версії FAT

Після появи жорстких дисків великого об'єму (на той час великими вважалися диски розміром 10-20 Мбайт) кількість кластерів збільшилася, і 12 розрядів стало замало зберігання їх номерів. Було розроблено новий 16-розрядний формат таблиці розміщення файлів, де для зберігання номера одного кластера виділялося два байти. Стара файлова система, розроблена для дискет, стала називатися FAT-12, а нова – FAT-16.

Збільшена у розмірах таблиця FAT-16 перестала поміщатися в одному секторі, проте при великих обсягах диска цей недолік не відігравав суттєвої ролі. Як і раніше, для страховки на диску зберігалося дві копії таблиці FAT.

Однак коли об'єм диска почав вимірюватися в сотнях Мбайт і навіть у гігабайтах, файлова система FAT-16 знову стала неефективною. Щоб номери кластерів містилися у 16 ​​розрядів, при форматуванні дисків великого обсягу доводиться збільшувати розмір кластера до 16 Кбайт і більше. Це викликало проблеми при необхідності зберігання на диску великої кількостіМаленьких файлів. Так як простір для зберігання файлів виділяється кластерами, навіть для маленького файлу доводиться відводити дуже багато дискової пам'яті.

В результаті була зроблена ще одна, мабуть, остання спроба вдосконалення файлової системи FAT - розмір комірки таблиці розміщення файлів був збільшений до 32. Це дозволило форматувати диски розміром сотні Мбайт і одиниці Гбайт з використанням відносно невеликого розміру кластера. Нова файлова система стала називатися FAT-32.

Стандарт 8.3

До появи ОС Microsoft Windows 95 користувачі персональних комп'ютерів були змушені використовувати для іменування файлів вельми незручний стандарт 8.3, в якому ім'я файлу мало складатися з 8 символів плюс 3 символи розширення. Це обмеження накладалося як програмним інтерфейсом операційної системи MS-DOS, а й структурою запису каталогу файлової системи FAT.

Після модифікації структури записів каталогу обмеження кількості символів в імені файлу було практично знято. Тепер довжина імені файлу може сягати 255 символів, що, очевидно, досить у більшості випадків. Однак така модифікована файлова система FAT стала несумісною з операційною системою MS-DOS, а також з оболонкою Microsoft Windows версій 3.1 і 3.11, що працює в її середовищі.

Детальніше про формати внутрішніх структур FAT Ви можете прочитати у нашій статті "Відновлення даних у розділах FAT", опублікованих на цьому сайті.

Обмеження файлової системи FAT

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

Максимальний розмір логічного диска FAT-16 складає 4 Гбайт, що дуже мало за сучасними поняттями. Компанія Microsoft, однак, не рекомендує створювати диски FAT-16 розміром понад 200 Мбайт, т.к. при цьому дисковий простір використовуватиметься дуже неефективно.

Теоретично максимальний розмір диска FAT-32 може становити 8 Тбайт, що має вистачити для розгортання будь-яких сучасних програм. Це значення виходить шляхом перемноження максимальної кількості кластерів (268435445) на максимальний розмір кластера, допустимий в FAT-32 (32 Кбайт).

Однак на практиці ситуація виглядає дещо по-іншому.

Через внутрішні обмеження утиліта ScanDisk в ОС Microsoft 95/98 не здатна працювати з дисками, що перевищують за своїм обсягом значення 127.53 Гбайт. Ще рік тому таке обмеження не викликало б проблем, проте сьогодні на ринку вже з'явилися недорогі диски об'ємом 160 Гбайт, і скоро їх буде ще більшим.

Що ж до нових операційних систем Microsoft Windows 2000/XP, то вони не здатні створювати розділи FAT-32 з об'ємом, що перевищує 32 Гбайт. Якщо вам потрібні розділи такого чи більшого обсягу, компанія Microsoft запропонує використовувати файлову систему NTFS.

Інше суттєве обмеження FAT-32 накладається на розмір файлів – він не може перевищувати 4 Гбайт. Це обмеження позначатиметься, наприклад, під час запису на диск відеофрагментів або створення об'ємних файлів баз даних.

У каталозі FAT-32 може зберігати трохи більше 65534 файлів.

Недоліки FAT

Крім розглянутих вище обмежень, файлової системи FAT притаманні інші недоліки. Найбільш суттєвими, мабуть, є повна відсутністьзасобів розмежування доступу, і навіть можливість втрати інформації про розміщення всіх файлів після руйнації досить компактної таблиці FAT та її копії.

Завантаживши комп'ютер із системної дискети, зловмисник легко отримає доступ до будь-яких файлів, що зберігаються на дисках із файловою системою FAT. Йому не важко скопіювати потім ці файли на пристрій ZIP або будь-який інший зовнішній носій даних.

У разі використання FAT на дисках сервера неможливо забезпечити надійне та гнучке розмежування доступу користувачів до каталогів. Саме тому, а також через свою низьку стійкість до збоїв, FAT зазвичай не використовується на серверах.

Наявність компактних таблиць розміщення файлів FAT робить цю файлову систему вразливою мішенню для комп'ютерних вірусів- Досить знищити початковий фрагмент диска FAT, і майже всі дані будуть втрачені.

Файлова система NTFS

Сучасна файлова система NTFS, розроблена компанією Microsoft для своєї операційної системи Microsoft Windows NT, позбавлена ​​обмежень та недоліків FAT. З моменту свого виникнення файлова система NTFS, що розвивається, зазнала кількох удосконалень, останні з яких (на момент створення цієї статті) були зроблені в ОС Microsoft Windows XP.

У файловій системі NTFS всі атрибути файлів (ім'я, розмір, розташування екстентів файлу на диску тощо) зберігаються в прихованому системному файлі $MFT. На зберігання інформації про кожен файл (і каталог) у $MFT відводиться від одного до декількох Кбайт. При великій кількості файлів, що зберігаються на диску, обсяг $MFT може досягати десятків або навіть сотень Мбайт.

Файли невеликого розміру (близько сотень байт) зберігаються у $MFT, що значно прискорює доступом до них.

Зауважимо, однак, що накладні витрати NTFS на зберігання системної інформації, хоч і перевищують накладні витрати FAT, все ж таки не дуже великі в порівнянні з обсягом сучасних дисків. Через те, що файл $MFT зазвичай знаходиться ближче до середини диска, руйнування перших доріжок диска NTFSне призводить до таких фатальних наслідків, як руйнування початкових областей диска FAT.

Файлова система NTFS має численні можливості, відсутні в FAT. Вони дозволяють досягти набагато більшої гнучкості, надійності та захищеності в порівнянні з FAT.

Перерахуємо деякі найцікавіші можливості NTFS сучасних версій.

Засоби розмежування доступу

Засоби розмежування доступу NTFSдосить гнучкі і дозволяють керувати доступом на рівні окремих файлів та каталогів, надаючи (або блокуючи) доступ до них окремим користувачам чи групам користувачів.

Хоча на перший погляд може здатися, що засоби розмежування доступу потрібні лише для файлових серверів, вони будуть потрібні і в тому випадку, якщо до комп'ютера мають доступ кілька користувачів.

Шифрування файлів

Зазначені вище засоби розмежування доступу виявляться марними, якщо фізичний диск NTFS потрапить до рук зловмисника. З використанням сучасних утиліт вміст такого диска може бути без особливих зусиль прочитаний в середовищі будь-якої операційної системи - DOS, Microsoft Windows або Linux.

З метою убезпечити фали користувачів від несанкціонованого доступу, в операційних системах Microsoft Windows 2000/XP передбачено додаткове шифрування файлів, що зберігаються у розділах NTFS. І хоча стійкість такого шифрування, можливо, не надто висока, вона цілком достатня у більшості випадків.

Програмний дисковий масив RAID

Засобами NTFS можна створити про програмний масив RAID 1 (Mirrored set). Цей масив, що складається з двох фізичних або логічних дисківоднакового об'єму дозволяє дублювати (або, як ще кажуть, "дзеркалювати") файли.

Такий масив може зберегти Ваші файли у разі фізичної поломки одного з дисків, що складають масив, тому часто застосовується для збільшення надійності дискової системи.

Набори Volume Set

Файлова система NTFS дозволяє об'єднати до одного логічного тома кілька розділів, розміщених одному чи кількох фізичних дисках. Це може знадобитися, наприклад, для зберігання файлів баз даних великого розміру, які не розміщуються на одному фізичному диску, або для створення каталогу з сумарним обсягом файлів, що перевищує розміри фізичного диска.

Набори, створені з кількох розділів чи фізичних дисків, називаються Volume Set (у термінології ОС Microsoft Windows NT) чи Spanned Volume (у термінології ОС Windows 2000/XP).

Упаковка файлів

Для збереження дискового простору можна використовувати здатність NTFS упаковувати (стискати) файли. Крім цього NTFS дозволяє створювати так звані розріджені (sparse) файли, які містять області нульових даних. Такі файли можуть мати великий обсяг, але при цьому займати мало місця на диску, оскільки фактично зберігаються лише байти файлу.

Зауважимо, що упаковка файлів призведе до деякого уповільнення роботи. Ця обставина, однак, матиме значення далеко не завжди. Наприклад, офісні документи можна упаковувати без помітного зниження швидкості роботи, а про файли баз даних, до яких одночасно звертається велика кількість користувачів, цього не можна сказати. З урахуванням появи на ринку щодо недорогих дисків величезного обсягу засобу упаковки потрібно використовувати лише тоді, коли вони справді необхідні. Це, однак, стосується інших можливостей NTFS.

Багатопотокові файли

За необхідності, в одному файлі, записаному на диску NTFS, можна зберігати кілька потоків інформації. Це дозволяє, зокрема, постачати файли документів додатковою інформацією, зберігати в одному файлі кілька версій документів (наприклад, різними мовами), зберігати в окремих потоках одного файлу програмний код і дані тощо.

Жорсткі зв'язки

Жорсткі зв'язки (hard links) дозволяють призначати одного фізичного файлу кілька різних імен, маючи ці імена (тобто посилання файл) у різних каталогах. При видаленні зв'язку не відбувається видалення файлу. Тільки коли всі зв'язки файлу будуть знищені, буде видалено і сам файл.

Зауважимо, що подібні можливості характерні для файлових систем, що застосовуються в Unix-подібних ОС, наприклад, Linux, FreeBSD і т.д.

Точки перевизначення

Такі системні об'єкти NTFS, як точки перевизначення (reparse points), дозволяють перевизначити будь-який файл або каталог. При цьому, наприклад, перевизначені файли або каталоги, що рідко використовуються, фактично можуть зберігатися на магнітній стрічці, завантажуючись на диск тільки при необхідності.

Переходи

Використовуючи переходи NTFS, можна змонтувати в каталог диска інший жорсткий дискабо компакт-диск. Ця можливість спочатку існувала у файлових системах Unix-подібних ОС.

Квотування дискового простору

Файлова система NTFS, використана в ОС Microsoft Windows 2000/XP, дозволяє квотувати або обмежувати дисковий простір, що надається в розпорядження користувачів. Така можливість особливо корисна під час створення файлових серверів.

Ведення журналу змін

У процесі своєї роботи операційна системавиконує різні дії над файлами (створення, зміна, видалення). Усі такі зміни зберігаються у спеціальному журналі, створеному на томі NTFS, та можуть використовуватись програмами резервного копіювання, системами індексації тощо. Протоколування змін підвищує надійність файлової системи, дозволяючи часом продовжити роботу після некритичних відмов операційної системи та устаткування. Хоча, звичайно, більшість серйозних збоїв призводить до необхідності відновлювати дані з резервної копіїабо із застосуванням спеціальних утиліт відновлення даних.

Обмеження NTFS

Незважаючи на велику кількість можливостей, файловій системі NTFS також притаманні деякі обмеження. Втім, у більшості випадків вони не відіграють суттєвої ролі.

Максимальний розмір логічного диска NTFS становить приблизно 18446744 Тбайт, що, очевидно, достатньо для всіх сучасних додатків, а також додатків, які з'являться в найближчому майбутньому. Максимальний розмір файлу ще більший, так що це обмеження також несуттєве.

Кількість файлів, що зберігаються в одному каталозі NTFS, нічим не обмежена, тому тут теж є перевага перед FAT.

Порівняння NTFS і FAT за швидкістю доступу до файлів

З погляду перспективності, функціональних можливостей, безпеки та надійності NTFS набагато випереджає FAT. Однак порівняння продуктивності цих файлових систем не дає однозначного результату, оскільки продуктивність залежить від багатьох різних факторів.

Так як принципи роботи та внутрішні структури FAT набагато простіше, ніж NTFS, при роботі з невеликими каталогами FAT буде швидше за все швидше. Однак якщо вміст каталогу настільки мало, що він повністю поміщається в один або кілька записів файлу $MFT, або навпаки, якщо каталог дуже великий, "переможе" NTFS.

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

Для збільшення продуктивності NTFS можна збільшити розмір кластера, однак це може призвести до неекономного використання дискового простору при зберіганні великої кількості файлів, розмір яких перевищує 1-2 Кбайт і становить десятки Кбайт. При збільшенні розміру кластера до 64 Кбайт можна отримати максимальне підвищення продуктивності, проте доведеться відмовитися від пакування файлів та застосування утиліт дефрагментації.

При пакуванні файлів, розташованих на дисках невеликого розміру (порядка 4 Гбайт), продуктивність може зрости, а при стисненні дисків великого розміру зменшитися. У будь-якому випадку упаковка призведе до додаткового навантаження на центральний процесор.

Так що ж вибрати – FAT чи NTFS?

Як бачите, NTFS має численні переваги перед FAT, а її обмеження здебільшого несуттєві. Якщо Ви стоїте перед вибором файлової системи, розгляньте в першу чергу можливість використання NTFS, а потім - FAT.

Які можуть бути перешкоди, що ускладнюють заміну FAT на NTFS?

Найбільш серйозна перешкода – необхідність використання ОС Microsoft Windows NT/2000/XP. Для нормальної роботи цієї ОС потрібно щонайменше 64 Мбайт оперативної пам'ятіі процесор із тактовою частотою не нижче 200-300 МГц. Втім, цим вимогам не задовольняють дуже старі комп'ютери, не здатні працювати під управлінням ОС Microsoft Windows сучасних версій.

Якщо ж Ваш комп'ютер може працювати в середовищі Microsoft Windows 2000/XP, і у Вас немає жодної прикладної програми, розрахованої виключно на ОС Microsoft Windows 95/98/ME, ми рекомендуємо Вам при першій же нагоді перейти до нової операційної системи, замінивши при це FAT на NTFS.

При цьому Ви отримаєте помітне збільшення надійності роботи, т.к. після встановлення всіх необхідних пакетів виправлень (Service Pack), а також коректних версій драйверів периферійних пристроїв, ОС Microsoft Windows 2000/XP працюватиме дуже стабільно.

У деяких випадках доводиться поєднувати в рамках одного диска кілька файлових систем. Наприклад, якщо на Вашому комп'ютері встановлено три операційні системи Microsoft Windows ME, Microsoft Windows XP та Linux, можна створити три файлові системи - FAT, NTFS та Ext2FS. Перша з них буде "помітна" при роботі в Microsoft Windows ME і Linux, друга - тільки в Microsoft Windows XP, і третя - тільки в Linux (зауважимо, що в ОС LINUX існує можливість доступу до розділів NTFS).

Але якщо Ви створюєте сервер (файловий, бази даних чи Web) на базі ОС Microsoft Window NT/2000/XP, то єдиним розумним вибором буде NTFS. Тільки в цьому випадку вдасться досягти необхідної стабільності, надійності та захищеності сервера.

Існує також загальноприйнята (і на наш погляд помилкова) думка, що домашнім користувачам комп'ютерів не потрібна ні ОС Microsoft Window NT/2000/XP, ні файлова система NTFS.

Звичайно, якщо комп'ютер застосовується виключно для ігор, з міркувань сумісності краще встановити Microsoft Windows 98/ME і відформатувати диски в FAT. Однак якщо Ви працюєте не тільки в офісі, а й удома, краще використовувати сучасні, професійні та надійні рішення. Це дозволить, зокрема, організувати захист від вторгнення на Ваш комп'ютер через Інтернет, обмежити доступ до каталогів і файлів з критичними даними, а також підвищить шанси успішного відновлення інформації при виникненні різних збоїв.

Вступ

2.1 Система FAT16

2.2 Система FAT32

2.3 Порівняння FAT16 та FAT32

3.1 Система NTFS

3.2 Порівняння NTFS та FAT32

Висновок

Список літератури

Вступ

В даний час на одному диску в середньому записується кілька десятків тисяч файлів. Як розібратися у всьому цьому різноманітті для того, щоб точно адресуватися до файлу? Призначення файлової системи - ефективне вирішення зазначеної задачі.

Файлова система з погляду користувача - це "простір", у якому розміщуються файли. А як науковий термін – це спосіб зберігання та організації доступу до даних на інформаційному носії чи його розділі. Наявність файлової системи дозволяє визначити як називається файл, де він знаходиться. Оскільки IBM PC - сумісних комп'ютерах інформація зберігатися переважно у дисках, то застосовувані ними файлові системи визначають організацію даних саме у дисках (точніше, на логічних дисках). Ми розглянемо файлову систему FAT.

файлова система fat ntfs

1. Історія створення та Загальна характеристикафайлової системи FAT

Файлова система FAT (File Allocation Table) була розроблена Біллом Гейтсом та Марком МакДональдом у 1977 році і спочатку використовувалася в операційній системі 86-DOS. Щоб досягти переносимості програм з операційної системи CP/M в 86-DOS, у ній було збережено раніше прийняті обмеження імена файлів. Надалі 86-DOS було придбано Microsoft і став основою ОС MS-DOS 1.0, випущеної серпні 1981 року. FAT була призначена для роботи з гнучкими дисками розміром менше 1 Мбайта, і спочатку не передбачала підтримки жорстких дисків. В даний час FAT підтримує файли та розділи розмірів до 2 Гбайт.

У FAT застосовуються такі угоди щодо імен файлів:

Ім'я має починатися з літери або цифри і може містити будь-який символ ASCII, за винятком пробілу та символів "/\:; |=,^*?"

довжина імені не перевищує 8 символів, за ним слідує точка та необов'язкове розширення довжиною до 3 символів.

регістр символів в іменах файлів не розрізняється та не зберігається.

Структура розділу FAT зображено на табл. 1.1 У блоці параметрів BIOSміститься необхідна BIOS інформація про фізичні характеристики жорсткого диска. Файлова система FAT не може контролювати окремо кожен сектор, тому вона поєднує суміжні сектори в кластери (clusters). Таким чином, зменшується загальна кількість одиниць зберігання, за якими має стежити файлова система. Розмір кластера FAT є ступенем двійки і визначається розміром тома при форматуванні диска (табл.1.2). Кластер є мінімальним простором, який може займати файл. Це призводить до того, що частина дискового простору витрачається марно. До складу операційної системи входять різні утиліти (DoubleSpace, DriveSpace), що призначені для ущільнення даних на диску.

Табл. 1.1 – Структура розділу FAT

Завантажувальний сектор Блок параметрів BIOS (BPB) FATFAT (копія) Кореневий каталогОбласть файлів

Свою назву FAT одержала від однойменної таблиці розміщення файлів. У таблиці розміщення файлів зберігається інформація про кластери логічного диска. Кожному кластеру у FAT відповідає окремий запис, який показує, чи вільний він, чи зайнятий даними файлу, чи позначений як збійний (зіпсований). Якщо кластер зайнятий під файл, то у відповідному записі таблиці розміщення файлів вказується адреса кластера, що містить таку частину файла. Через це FAT називають файловою системою зі зв'язаними списками. Оригінальна версія FAT, розроблена для DOS 1.00, використовувала 12-бітну таблицю розміщення файлів та підтримувала розділи об'ємом до 16 Мб (у DOS можна створити не більше двох розділів FAT). Для підтримки жорстких дисків розміром понад 32 Мб розрядність FAT було збільшено до 16 біт, а розмір кластера – до 64 секторів (32 Кб). Оскільки кожному кластеру може бути присвоєно унікальний 16-розрядний номер, FAT підтримує максимально 216, або 65536 кластерів на одному томі.

Табл.1.2 - Розміри кластера

Розмір розділуРозмір кластераТип FAT< 16 Мб4 КбFAT1216 Мб - 127 Мб2 КбFAT16128 Мб - 255 Мб4 КбFAT16256 Мб - 511 Мб8 КбFAT16512 Мб - 1023 Мб16 КбFAT161 Гб - 2 Гб32 КбFAT16

Оскільки завантажувальний запис занадто малий для зберігання алгоритму пошуку системних файлів на диску, то системні файлиповинні знаходитися в певному місці, щоб завантажувальний запис міг їх знайти. Фіксоване становище системних файлів на початку області даних накладає жорстке обмеження розмірів кореневого каталогу і таблиці розміщення файлів. Внаслідок цього загальна кількість файлів та підкаталогів у кореневому каталозі на диску FAT обмежена 512.

Кожному файлу та підкаталогу в FAT відповідає 32-байтний елемент каталогу, що містить ім'я файлу, його атрибути (архівний, прихований, системний та "тільки для читання" ), дату та час створення (або внесення до нього останніх змін), і навіть іншу інформацію (табл.1.3).

Табл.1.3 - Елементи каталогу

Файлова система FAT завжди заповнює вільне місце на диску послідовно від початку до кінця. При створенні нового файлу або збільшенні вже існуючого вона шукає перший вільний кластер в таблиці розміщення файлів. Якщо в процесі роботи одні файли були видалені, а інші змінилися в розмірі, порожні кластери, що з'являються в результаті, будуть розсіяні по диску. Якщо кластери, що містять дані файлу, розташовані не поспіль, файл виявляється фрагментованим. Сильно фрагментовані файли значно знижують ефективність роботи, оскільки головки читання/записи під час пошуку чергової записи файлу повинні переміщатися з однієї області диска на іншу. До складу операційних систем, що підтримують FAT, зазвичай входять спеціальні утилітидефрагментації диска, призначені для підвищення продуктивності файлових операцій.

Ще один недолік FAT полягає в тому, що її продуктивність залежить від кількості файлів, що зберігаються в одному каталозі. При великій кількості файлів (близько тисячі) виконання операції зчитування списку файлів у каталозі може зайняти кілька хвилин. Це пов'язано з тим, що у FAT каталог має лінійну невпорядковану структуру, і імена файлів у каталогах у порядку їх створення. В результаті, чим більше в каталозі записів, тим повільніше працюють програми, тому що при пошуку файлу потрібно послідовно переглянути всі записи в каталозі. Оскільки FAT спочатку проектувалася для однокористувацької операційної системи DOS, то вона не передбачає зберігання такої інформації, як відомості про власника або повноваження доступу до файлу/каталогу. Завдяки своїй універсальності FAT може застосовуватись на томах, з якими працюють різні операційні системи.

Хоча немає перешкод використовувати при форматуванні дискет будь-яку іншу файлову систему, більшість ОС для сумісності використовують FAT. Частково це можна пояснити тим, що проста структура FAT вимагає менше місця для зберігання службових даних, ніж інші системи. Переваги інших файлових систем стають помітними лише при використанні їх на носіях об'ємом понад 100 Мб.

Треба відзначити, що FAT - проста файлова система, що не запобігає псуванню файлів через ненормальне завершення роботи комп'ютера. До складу операційних систем, що підтримують FAT, входять спеціальні утиліти, що перевіряють структуру та коригують невідповідності у файловій системі.

2. Характеристика файлових систем FAT16 та FAT32 та їх порівняння

.1 Система FAT16

Файлова система FAT 16, яка є основною для операційних систем DOS, Windows 95⁄98⁄Me, Windows NT⁄2000⁄XP, а також підтримується більшістю інших систем. FAT 16 є простою файловою системою, розробленою для невеликих дисків і простих структур каталогів. Назва походить від назви методу організації файлів – Таблиця розміщення файлів (File Allocation Table). Ця таблиця розміщується на початку диска. Число 16 означає, що файлова система 16-розрядна - для адресації кластерів використовується 16 розрядів. Операційна система використовує Таблицю розміщення файлів для пошуку і визначення кластерів, які цей файл займає на жорсткому диску. Крім того, у Таблиці фіксуються відомості про вільні та дефектні кластери. Щоб легше було осмислити файлову систему FAT16 уявіть собі зміст книги і як ви працюєте з цим змістом, саме також операційна система працює з FAT 16.

Щоб прочитати файл, операційна система повинна знайти на ім'я файлу запис у папці і прочитати номер першого кластера файлу. Перший кластер є початок файлу. Потім необхідно прочитати відповідний першому кластеру файлу елемент FAT. Якщо елемент містить мітку – останній у ланцюжку, то далі ні чого шукати не потрібно: весь файл міститься в одному кластері. Якщо кластер не останній, елемент таблиці містить номер наступного кластера. Вміст наступного кластера має бути прочитаний за першим. Коли буде знайдено останній кластер у ланцюжку, то, якщо файл не займає весь кластер цілком, необхідно відсікти зайві байти кластера. Зайві байти відсікаються по довжині файлу, що зберігається у записі папки.

Щоб записати файл, операційна система має виконати таку послідовність дій. У вільному елементі папки створюється опис файлу, потім шукається вільний елемент FAT, і посилання на нього розміщується у записі папки. Займається перший кластер, який описується знайденим елементом FAT. Цей елемент FAT містить номер наступного кластера або ознаку останнього кластера в ланцюжку.

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

У файловій системі FAT16 під номер кластера відведено 16 розрядів. Тому максимальна кількістькластерів складає 65 525, а максимальний розмір кластера 128 секторів. У такому разі максимальний розмір розділів або дисків у FAT16 становить 4,2 гігабайти. При логічному форматуванні диска або розділу операційна система намагається використовувати мінімальний розмір кластера, при якому кількість кластерів, що виходить, не перевищує 65525. Очевидно, що чим більше розмір розділу, тим більше повинен бути розмір кластера. Багато операційні системи неправильно працюють із кластером розміром 128 секторів. В результаті максимальний розмір розділу FAT16 зменшується до 2 гігабайт. Зазвичай чим більше розмір кластера, тим більше стають втрати дискового простору. Це з тим, що останній кластер, займаний файлом, заповнений лише частково. Наприклад, якщо файл розміром 17 Кбайт записується в розділ з розміром кластера 16 Кбайт, цей файл займе два кластери, причому перший кластер буде заповнений повністю, а в другому кластері буде записано тільки 1 Кбайт даних, а решта 15 Кбайт простору другого кластера залишаться не заповнені та будуть недоступними для запису інших файлів. Якщо на великих дискахзаписується багато маленьких файлів, то втрати дискового простору будуть значні. У наступній таблиці 2.1 наводяться відомості про можливі втрати дискового простору за різних розмірів розділу.

Табл. 2.1.1 - Втрати дискового простору

Розмір розділуРозмір кластераВтрати дискового простору127 Мб2 Кб2%128-255 Мб4 Кб4%256-511 МБ8 Кб10%512-1023 МБ16 Кб25%1024-2047 МБ32 Кб40%2048-40

Можливі два способи зменшення втрат дискового простору. Перший – розбиття дискового простору на дрібні розділи з малим розміром кластера. Другий – використання файлової системи FAT32<#"center">2.2 Система FAT32

Файлова система FAT32 - новіша файлова система на основі формату FAT, вона підтримується Windows 95 OSR2, Windows 98 і Windows Millennium Edition. FAT32 використовує 32-розрядні ідентифікатори кластерів, але при цьому резервує старші 4 біти, тому ефективний розмір ідентифікатора кластера становить 28 біт. Оскільки максимальний розмір кластерів FAT32 дорівнює 32 Кбайт, теоретично FAT32 може працювати з 8-терабайтними томами. Windows 2000 обмежує розмір нових томів FAT32 до 32 Гбайт, хоча підтримує існуючі томи FАТ32 більшого розміру (створені інших операційних системах). Більше кластерів, підтримуване FAT32, дозволяє їй керувати дисками більш ефективно, ніж FAT 16. FAT32 може використовувати 512-байтові кластери для томів розміром до 128 Мбайт.

Файлова система FAT 32 у Windows 98 використовується як основна. З цією операційною системою поставляється спеціальна програма перетворення диска з FAT 16 на FAT 32. Windows NT і Windows 2000 також можуть використовувати файлову систему FAT, і тому можна завантажити комп'ютер з DOS-диска і мати повний доступ до всіх файлів. Однак деякі з найпрогресивніших можливостей Windows NT та Windows 2000 забезпечуються її власною файловою системою NTFS (NT File System). NTFS дозволяє створювати на диску розділи об'ємом до 2 Тбайт (як і FAT 32), але, крім цього, у неї вбудовані функції стиснення файлів, безпеки та аудиту, необхідні під час роботи в мережевому середовищі. А в Windows 2000 реалізується підтримка файлової системи FAT 32. Встановлення операційної системи Windows NT починається на диску FAT, але за бажанням користувача в кінці установки дані на диску можуть бути конвертовані у формат NTFS.

Можна зробити це і пізніше, скориставшись утилітою Convert. exe, що постачається разом із операційною системою. Перетворений на систему NTFS розділ диска стає недоступним для інших операційних систем. Щоб повернутися до DOS, Windows 3.1 або Windows 9x, потрібно видалити розділ NTFS, а замість нього створити розділ FAT. Windows 2000 можна встановлювати на диск із файловою системою FAT 32 та NTFS.

Можливості файлових систем FАТ32 набагато ширші за можливості FAT16. Найважливіша її особливість у тому, що вона підтримує диски об'ємом до 2047 Гбайт і працює з кластерами меншого розміру, завдяки чому суттєво скорочує обсяги дискового простору, що не використовується. Наприклад, жорсткий диск об'ємом 2 Гбайт у FAT16 використовує кластери розміром по 32 Кбайт, а FAT32 - кластери розміром по 4 Кбайт. Щоб по можливості зберегти сумісність із існуючими програмами, мережами та драйверами пристроїв, FAT32 реалізована з мінімальними змінами в архітектурі, API-інтерфейсах, структурах внутрішніх даних та дисковому форматі. Але, оскільки розмір елементів таблиці FAT32 тепер становить чотири байти, багато внутрішніх та дискових структур даних, а також API-інтерфейси довелося переглянути або розширити. Окремі API на FAT32 дисках блокуються, щоб успадковані дискові утиліти не пошкодили вміст FAT32 дисків. На більшості програм ці зміни ніяк не позначаться. Існуючі інструментальні засобита драйвери працюватимуть і на FAT32-дисках. Однак драйвери блокових пристроїв MS-DOS (наприклад, Aspidisk. sys) та дискові утиліти потребують модифікації для підтримки FAT32. Всі дискові утиліти, що поставляються Microsoft (Format, Fdisk, Defrag, а також ScanDisk для реального та захищеного режимів), перероблені та повністю підтримують FAT32. Крім того, Microsoft допомагає провідним постачальникам дискових утиліт та драйверів пристроїв у модифікації їх продуктів для підтримки FAT32. FAT32 ефективніший FAT16 під час роботи з дисками більшого об'єму і не вимагає їх розбиття на розділи по 2 Гбайт. Windows 98 обов'язково підтримує FAT16, оскільки саме ця файлова система сумісна з іншими операційними системами, зокрема сторонніх компанії. У MS-DOS реального режиму та в безпечному режимі Windows 98, файлова система FAT32 працює значно повільніше, ніж FAT16. Тому при запуску програм у режимі MS DOS бажано включити файл Autoexec. bat або PIF файл команду для завантаження Smartdrv. exe, що прискорить дискові операції Деякі застарілі програми, розраховані на специфікацію FAT16, можуть повідомляти неправильну інформацію про обсяг вільного або загального дискового простору, якщо він більше 2 Гбайт. Windows 98 надає нові інтерфейси API для MS-DOS і Win32, які дозволяють коректно визначати ці показники.

.3 Порівняння FAT16 та FAT32

Табл.2.3.1 - Порівняння файлових систем FAT16 та FAT32

FAT16FAT32Реалізована та використовується більшістю операційних систем (MS-DOS, Windows 98, Windows NT, OS/2, UNIX). На даний момент підтримується лише у Windows 95 OSR2 та Windows 98. Дуже ефективна для логічних дисків розміром менше 256 Мбайт. Не працює із дисками об'ємом менше 512 Мбайт. Підтримує стискування дисків, наприклад за алгоритмом DriveSpace. Не підтримує стиснення дисків. Обробляє максимум 65525 кластерів, розмір яких залежить від обсягу логічного диска. Оскільки максимальний розмір кластерів дорівнює 32 Кбайт, FAT16 може працювати з логічними дисками обсягом трохи більше 2 Гбайт. Здатна працювати з логічними дисками об'ємом до 2047 Гбайт при максимальному розмірі кластерів в 32 Кбайт.

Максимально можлива довжина файлу FAT32 дорівнює 4 Гбайт за вирахуванням 2 байтів. Win32-програми можуть відкривати файли такої довжини без спеціальної обробки. Інші програми повинні використовувати переривання Int 21h, функцію 716С (FAT32) з прапором відкриття, що дорівнює EXTEND-SIZE (1000h).

У файловій системі FAT32 на кожен кластер у таблиці розміщення файлів відводиться по 4 байти, тоді як у FAT16 – по 2, а у FАТ12 – по 1,5.

Старші 4 біти 32-розрядного елемента таблиці FAT32 зарезервовані та не беруть участь у формуванні номера кластера. Програми, що безпосередньо зчитують FАТ32-таблицю, повинні маскувати ці біти та оберігати їх від зміни при записі нових значень.

Отже, FAT32 має наступні переваги в порівнянні з колишніми реалізаціями файлової системи FAT:

підтримує диски об'ємом до 2 Тб;

ефективніше організує дисковий простір. FAT32 використовує кластери меншого розміру (4 Кбайт для дисків об'ємом до 8 Гбайт), що дозволяє заощадити до 10-15% простору на великих дисках порівняно з FAT;

кореневий каталог FAT 32, як і решта каталогів, тепер не обмежений, він складається з ланцюжка кластерів і може бути розташований в будь-якому місці диска;

має більш високу надійність: FAT32 здатна переміщати кореневий каталог і працювати з резервною копією FAT, крім того, завантажувальний запис на дисках FAT32 розширено і тепер включає резервну копію критично важливих структур даних, а це означає, що диск FAT32 менш чутливі до виникнення окремих збійних ділянок, ніж існуючі FAT-томи;

програми завантажуються на 50% швидше.

Табл.2.3.2 - Порівняння розмірів кластерів

Об'єм диска Розмір кластерів у FAT16, Кбайт Розмір кластерів у FAT32, Кбайт256 Мбайт-511 Мбайт8Не підтримується512 Мбайт - 1023 Мбайт1641024 Мбайт - 2 Гбайт3242 Гбайт-8 2 ГбайтНе підтримується16Більше 32 ГбайтНе підтримується32

3. Альтернативна файлова система NTFS та її порівняння з FAT32

3.1 Система NTFS

(New Technology File System) - найкраща файлова система при роботі з ОС Windows NT, оскільки вона була спеціально розроблена для даної системи. До складу Windows NT входить утиліта convert, що здійснює конвертування томів з FAT та HPFS у томи NTFS. У NTFS значно розширено можливості з управління доступом до окремих файлів і каталогів, введено велику кількість атрибутів, реалізовано стійкість до відмов, засоби динамічного стиснення файлів, підтримка вимог стандарту POSIX. NTFS дозволяє використовувати імена файлів довжиною до 255 символів, при цьому вона використовує той же алгоритм для створення короткого імені, що і VFAT. NTFS має можливість самостійного відновлення у разі збою ОС або обладнання, так що дисковий том залишається доступним, а структура каталогів не порушується.

Кожен файл на томі NTFS представлений записом у спеціальному файлі – головній файловій таблиці MFT (Master File Table). NTFS резервує перші 16 записів таблиці розміром близько 1 Мб спеціальної інформації. Перший запис таблиці визначає безпосередньо саму головну файлову таблицю. За нею слідує дзеркальний запис MFT. Якщо перший запис MFT зруйновано, NTFS зчитує другий запис, щоб знайти дзеркальний файл MFT, перший запис якого ідентична першому запису MFT. Розташування сегментів даних MFT та дзеркального файлу MFT зберігається у початковому завантаженні. Копія сектора початкового завантаження знаходиться у логічному центрі диска. Третій запис MFT містить файл реєстрації, який використовується для відновлення файлів. Сімнадцята та наступні записи головної файлової таблиці використовуються власне файлами та каталогами на томі.

У журналі транзакцій (log file) реєструються всі операції, що впливають структуру тома, включаючи створення файлу та будь-які команди, змінюють структуру каталогів. Журнал транзакцій застосовується відновлення тома NTFS після збою системи. Запис для кореневого каталогу містить список файлів та каталогів, які зберігаються в кореневому каталозі.

Схема розподілу простору на томі зберігається у файлі бітової картки (bitmap file). Атрибут даних цього файлу містить бітову карту, кожен біт якої представляє один кластер тома і вказує, чи вільний даний кластер або зайнятий деяким файлом. , Що містить ім'я тома, версію NTFS і біт, який встановлюється у разі пошкодження тома. Нарешті, є файл, що містить таблицю визначення атрибутів (attribute definition table), яка задає типи атрибутів, що підтримуються на томі, і вказує чи можна їх індексувати, відновлювати операцією відновлення системи і т.д. розподіляє простір кластерами і використовує для їх нумерації 64 , що дає можливість мати 264 кластери, кожен розміром до 64 Кбайт. Як і FAT розмір кластера може змінюватися, але необов'язково зростає пропорційно розміру диска. Розміри кластерів, які встановлюються за умовчанням при форматуванні розділу, наведено у табл.3.1.

Розмір розділуРозмір кластера< 512 Мб512 байт513 Мб - 1024 Мб (1 Гб) 1 Кб1 Гб - 2 Гб2 Кб2 Гб - 4 Гб4 Кб4 Гб - 8 Гб8 Кб8 Гб - 16 Гб16 Кб16 Гб - 32 Гб32 Кб>32 Гб64 Кб дозволяє зберігати файли розміром до 16 ексабайт (264 байт) і має вбудований засіб ущільнення файлів в реальному часі. Стиснення є одним з атрибутів файлу або каталогу і подібно до будь-якого атрибуту може бути знято або встановлено в будь-який момент (стиснення можливо на розділах з розміром кластера не більше 4 Кб). При ущільненні файлу, на відміну від схем ущільнення, що використовуються у FAT, застосовується пофайлове ущільнення, таким чином, псування невеликої ділянки диска не призводить до втрати інформації в інших файлах.

Для зменшення фрагментації NTFS завжди намагається зберегти файли у безперервних блоках. Ця система використовує структуру каталогів у вигляді B-дерева, аналогічну високопродуктивній файловій системі HPFS, а не структурі зі зв'язаним списком FAT. Завдяки цьому пошук файлів у каталозі здійснюється швидше, оскільки імена файлів зберігаються сортованими в лексикографічному порядку. Була розроблена як файлова система, що відновлюється, що використовує модель обробки транзакцій. Кожна операція вводу-виводу, що змінює файл на томі NTFS, розглядається як транзакція і може виконуватися як неподільний блок. При модифікації файлу користувачем сервіс файлу реєстрації фіксує всю необхідну інформацію для повторення або відкату транзакції. Якщо успішно завершено транзакцію, виконується модифікація файлу. Якщо ні, NTFS здійснює відкат транзакції.

Незважаючи на наявність захисту від несанкціонованого доступу до даних NTFS не забезпечує необхідну конфіденційність інформації, що зберігається. Для отримання доступу до файлів достатньо завантажити комп'ютер у DOS з дискети та скористатися якимсь іншим драйвером NTFS для цієї системи.

Починаючи з версії Windows NT 5.0 (нове назва Windows 2000) Microsoft підтримує нову файлову систему NTFS 5.0. У новій версії NTFS було запроваджено додаткові атрибути файлів; поряд з правом доступу введено поняття заборони доступу, що дозволяє, наприклад, при наслідуванні користувачем прав групи на якийсь файл, заборонити можливість змінювати його вміст. Нова систематакож дозволяє:

вводити обмеження (квоти) розмір дискового простору, наданого користувачам;

проектувати будь-який каталог (як на локальному, так і на віддаленому комп'ютері) у підкаталог на локальному диску.

Цікавою можливістю нової версії Windows NT є ​​динамічне шифрування файлів та каталогів, що підвищує надійність зберігання інформації. До складу Windows NT 5.0 входить файлова система із шифруванням (Encrypting File System, EFS), що використовує алгоритми шифрування із загальним ключем. Якщо для файлу встановлено атрибут шифрування, то при зверненні програми користувача до файлу для запису або читання відбувається прозоре для програми кодування та декодування файлу.

.2 Порівняння NTFS та FAT32

Переваги:

швидка швидкість доступу до файлів малого розміру;

Розмір дискового простору на сьогоднішній день практично не обмежений;

Фрагментація файлів не впливає на файлову систему;

Висока надійність збереження даних та власне самої файлової структури;

Висока продуктивність під час роботи з файлами великого розміру;

Недоліки:

Вищі вимоги до обсягу оперативної пам'яті порівняно з FAT 32;

Робота з каталогами середніх розмірів утруднена через їхню фрагментацію;

Більше низька швидкістьроботи порівняно з FAT 3232

Переваги:

Висока швидкість роботи;

Низька вимога до обсягу оперативної пам'яті;

Ефективна робота з файлами середніх та малих розмірів;

Нижче знос дисків, внаслідок меншої кількості пересувань головок читання/запису.

Недоліки:

низький захист від збоїв системи;

Не ефективна роботаіз файлами великих розмірів;

Обмеження за максимальним обсягом розділу та файлу;

Зниження швидкодії при фрагментації;

Зниження швидкодії під час роботи з каталогами, що містять велику кількість файлів;

Отже, обидві файлові системи зберігають дані в кластерах, мінімальний розмір якого дорівнює 512 b. Як правило, звичайний розмір кластера дорівнює 4 Kb. На цьому подібності, мабуть, і закінчуються. Дещо про фрагментацію: швидкість роботи NTFS різко знижується при заповненні диска на 80 - 90%. Це з фрагментацією службових і робочих файлів. Чим більше Ви працюєте з таким завантаженим диском, тим сильніша фрагментація і тим нижча продуктивність. У FAT 32 фрагментація робочої області диска відбувається на більш ранніх етапах. Справа тут залежить від того, наскільки часто Ви записуєте/праєте дані. Як і NTFS, фрагментація сильно знижує продуктивність. Тепер про оперативну пам'ять. Обсяг самої електронної таблиці FAT 32 може займати в ОЗУ кілька мегабайт. Але на допомогу приходить кешування. Що записується в кеш:

Найбільш використовувані каталоги;

Дані про всі файли, що використовуються в даний момент часу;

Дані про вільному просторідиска;

А що ж NTFS? Кешування важко піддаються каталоги великих розмірів, а вони можуть досягати розмірів кількох десятків мегабайт. Плюс MFT плюс інформація про вільне місце на диску. Хоча треба зауважити, що NTFS все ж таки досить економно витрачає ресурси оперативної пам'яті. У наявності вдала система зберігання даних, в MFT кожен запис приблизно дорівнює 1 Kb. Але все ж таки вимоги до обсягу ОЗУ вищі, ніж для FAT 32. Коротше, якщо Ваша пам'ять менша або дорівнює 64 Mb, то ефективніше з точки зору швидкості виявиться FAT 32. Якщо більше - різниця у швидкості буде маленька, а часто взагалі ніяка. Тепер про найжорсткіший диск. Для використання NTFS бажано наявність Bus Mastering. Що це? Це особливий режим роботи драйвера та контролера. Під час використання BM обмін відбувається без участі процесора. Відсутність ВМ позначиться на продуктивності системи. Крім цього, внаслідок використання складнішої файлової системи кількість рухів головок читання/запису зростає, що так само впливає на швидкість. Наявність дискового кеша однаково позитивно позначається, як у NTFS, і на FAT 32.

Висновок

Переваги FAT - низькі накладні витрати на зберігання даних та тотальна сумісність із величезною кількістю операційних систем та апаратних платформ. Цією файловою системою, як і раніше, користуються для форматування дискет, де великий обсяг розділу, що підтримується іншими файловими системами, не відіграє ролі, а низькі накладні витрати дозволяють економно використовувати малий об'єм дискети (NTFS вимагає для зберігання даних більше місця, що абсолютно не прийнятно для дискет ).

Область застосування FAT32 насправді набагато вже - цю файлову систему варто застосовувати, якщо Ви збираєтеся отримувати доступ до розділів допомогою Windows 9x та за допомогою Windows 2000/XP. Але оскільки актуальність Windows 9x сьогодні практично зійшла нанівець, то і використання цієї файлової системи не має особливого інтересу.

Список літератури

1. http://yura. puslapiai. lt/archiv/per/fat.html

Файлові системи FAT

FAT16

Файлова система FAT16 розпочала своє існування ще за часів, що передували MS-DOS, і підтримується всіма операційними системами Microsoft для забезпечення сумісності. Її назва File Allocation Table (таблиця розташування файлів) відмінно відображає фізичну організацію файлової системи, до основних характеристик якої можна віднести те, що максимальний розмір тома, що підтримується (жорсткого диска або розділу на жорсткому диску) не перевищує 4095 Мбайт. За часів MS-DOS 4-гігабайтні жорсткі диски здавалися нездійсненною мрією (розкішшю були диски об'ємом 20-40 Мбайт), тому такий запас був цілком виправданим.

Том відформатований для використання FAT16 поділяється на кластери. Розмір кластера за замовчуванням залежить від розміру тома і може коливатися від 512 до 64 Кбайт. У табл. 2 показано як розмір кластера залежить від розміру тому. Зазначимо, що розмір кластера може відрізнятись від значення за замовчуванням, але повинен мати одне із значень, зазначених у табл. 2 .

Не рекомендується використовувати файлову систему FAT16 на томах більше 511 Мбайт, тому що для відносно невеликих за обсягом файлів дисковий простір буде використовуватися вкрай неефективно (файл розміром в 1 байт буде займати 64 Кбайт). Незалежно від розміру кластера, файлова система FAT16 не підтримується для томів більше 4 Гбайт.

FAT32

Починаючи з Microsoft Windows 95 OEM Service Release 2 (OSR2), у Windows з'явилася підтримка 32-бітної FAT. Для систем на базі Windows NT ця файлова система вперше почала підтримуватись у Microsoft Windows 2000. Якщо FAT16 може підтримувати томи об'ємом до 4 Гбайт, то FAT32 здатна обслуговувати томи об'ємом до 2 Тбайт. Розмір кластера FAT32 може змінюватися від 1 (512 байт) до 64 секторів (32 Кбайт). Для зберігання значень кластерів FAT32 потрібно 4 байт (32 біт, а не 16, як у FAT16). Це означає, зокрема, деякі файлові утиліти, розраховані на FAT16, не можуть працювати з FAT32.

Основною відмінністю FAT32 від FAT16 є те, що змінився розмір логічного розділу диска. FAT32 підтримує об'ємом тома до 127 Гбайт. При цьому, якщо при використанні FAT16 з 2-гігабайтними дисками був потрібний кластер розміром 32 Кбайт, то FAT32 кластер розміром 4 Кбайт підходить для дисків об'ємом від 512 Мбайт до 8 Гбайт (табл. 4).

Це відповідно означає більше ефективне використаннядискового простору - що менше кластер, то менше місця потрібно для зберігання файлу і, як наслідок, диск рідше стає фрагментованим.

При застосуванні FAT32 максимальний розмір файлу може сягати 4 Гбайт мінус 2 байти. Якщо при використанні FAT16 максимальна кількість входжень у кореневий каталог обмежувалася 512, FAT32 дозволяє збільшити це число до 65 535.

FAT32 накладає обмеження на мінімальний розмір тому - він має бути не менше 65527 кластерів. При цьому розмір кластера не може бути таким, щоб FAT займала понад 16 Мбайт-64 Кбайт/4 або 4 млн. кластерів.

При використанні довгих імен файлів дані, необхідні для доступу з FAT16 та FAT32, не перекриваються. При створенні файлу з довгим ім'ям Windowsстворює відповідне ім'я у форматі 8.3 та одне або більше входжень до каталогу для зберігання довгого імені (по 13 символів з довгого імені файлу на кожне входження). Кожне наступне входження зберігає відповідну частину імені файлу у форматі Unicode. Такі входження мають атрибути "ідентифікатор тома", "тільки читання", "системний" та "прихований" - набір, що ігнорується MS-DOS; у цій операційній системі доступ до файлу здійснюється за його псевдонімом у форматі 8.3.

Файлова система NTFS

До складу Microsoft Windows 2000 входить підтримка нової версії файлової системи NTFS, яка забезпечує роботу з сервісами каталогів Active Directory, точки перерахунку (reparse points), засоби захисту інформації, контроль за доступом і ряд інших можливостей.

Як і при використанні FAT, основною інформаційною одиницею NTFS є кластер. У табл. 5 показані розміри кластерів за промовчанням для томів різної ємності.

Під час формування файлової системи NTFS програма форматування створює файл Master File Table (MTF) та інші області для зберігання метаданих. Метадані використовуються NTFS для реалізації файлової структури. Перші 16 записів в MFT зарезервовані NTFS. Розташування файлів метаданих $Mft та $MftMirr записано у завантажувальному секторі диска. Якщо перший запис MFT пошкоджено, NTFS зчитує другий запис для знаходження копії першої. Повна копія завантажувального сектора розміщується наприкінці тома. У табл. 6 перераховані основні метадані, що зберігаються в MFT.

Інші записи MFT містять записи для кожного файлу та каталогу, розміщених на цьому томі.

Зазвичай один файл використовує один запис у MFT, але якщо файл має великий набір атрибутів або він стає занадто фрагментованим, то для зберігання інформації про нього можуть знадобитися додаткові записи. У цьому випадку перший запис про файл, який називається базовим записом, зберігає розташування інших записів. Дані про файли та каталоги невеликого розміру (до 1500 байт) повністю містяться у першому записі.

Атрибути файлів у NTFS

Кожен зайнятий сектор на NTFS-томі належить тому чи іншому файлу. Навіть метадані файлової системи є частиною файлу. NTFS розглядає кожен файл (або каталог) як набір файлових атрибутів. Такі елементи, як ім'я файлу, інформація про його захист і навіть дані в ньому є атрибутами файлу. Кожен атрибут ідентифікується кодом певного типу та, опціонально, ім'ям атрибута.

Якщо атрибути файлу містяться у файловому записі, вони називаються резидентними атрибутами. Такими атрибутами завжди є ім'я файлу та дата його створення. У тих випадках, коли інформація про файл занадто велика, щоб вміститися в один MFT-запис, деякі атрибути файлу стають нерезидентними. Резидентні атрибути зберігаються в одному або більше кластерах і є потік альтернативних даних для поточного тому (про це трохи нижче). Для опису місцезнаходження резидентних та нерезидентних атрибутів NTFS створює атрибут Attribute List.

У табл. 7 показані основні атрибути файлів, визначені у NTFS. У майбутньому цей список може бути розширено.

Файлова система CDFS

У Windows 2000 забезпечується підтримка файлової системи CDFS, що відповідає стандарту ISO'9660, що описує розташування інформації на CD-ROM. Підтримуються довгі імена файлів відповідно до ISO'9660 Level 2.

При створення CD-ROMдля використання під керуванням Windows 2000 слід мати на увазі наступне:

  • всі імена каталогів та файлів повинні містити не менше 32 символів;
  • всі імена каталогів та файлів повинні складатися лише із символів верхнього регістру;
  • глибина каталогів має перевищувати 8 рівнів від кореня;
  • Використання розширень імен файлів не є обов'язковим.

Порівняння файлових систем

Під керуванням Microsoft Windows 2000 можливе використання файлових систем FAT16, FAT32, NTFS або їх комбінацій. Вибір операційної системи залежить від наступних критеріїв:

  • того, як використовується комп'ютер;
  • апаратної платформи;
  • розміру та числа жорстких дисків;
  • безпеки інформації

Файлові системи FAT

Як ви вже могли помітити, цифри в назві файлових систем - FAT16 і FAT32 - вказують на кількість біт, необхідних зберігання інформації про номери кластерів, використовуваних файлом. Так, у FAT16 застосовується 16-бітова адресація і, відповідно, можливе використання до 2 16 адрес. У Windows 2000 перші чотири біти таблиці розташування файлів FAT32 необхідні власних потреб, у FAT32 число адрес досягає 2 28 .

У табл. 8 показано розміри кластерів для файлових систем FAT16 та FAT32.

Крім істотних відмінностей у розмірі кластера FAT32 також дозволяє кореневому каталогу розширюватися (FAT16 число входжень обмежено 512 і може бути навіть нижче при використанні довгих імен файлів).

Переваги FAT16

Серед переваг FAT16 можна назвати такі:

  • файлова система підтримується операційними системами MS-DOS, Windows 95, Windows 98, Windows NT, Windows 2000, і навіть деякими операційними системами UNIX;
  • існує велика кількість програм, що дозволяють виправляти помилки у цій файловій системі та відновлювати дані;
  • у разі виникнення проблем із завантаженням з жорсткого диска система може бути завантажена з флоппі-диска;
  • Ця файлова система досить ефективна для томів об'ємом менше 256 Мбайт.
Недоліки FAT16

До основних недоліків FAT16 відносяться:

  • кореневий каталог не може містити понад 512 елементів. Використання довгих імен файлів значно скорочує кількість цих елементів;
  • FAT16 підтримує не більше 65536 кластерів, а так як деякі кластери зарезервовані операційною системою, число доступних кластерів - 65524. Кожен кластер має фіксований розмір для даного логічного пристрою. При досягненні максимальної кількості кластерів при їх максимальному розмірі (32 Кбайт) максимальний обсяг тома, що підтримується, обмежується 4 Гбайт (під керуванням Windows 2000). Для підтримки сумісності з MS-DOS, Windows 95 та Windows 98 обсяг тома під FAT16 не повинен перевищувати 2 Гбайт;
  • у FAT16 не підтримується вбудований захист файлів та їх стиснення;
  • на дисках великого об'єму втрачається багато місця за рахунок того, що використовується максимальний кластер. Місце під файл виділяється виходячи з розміру файлу, а кластера.
Переваги FAT32

Серед переваг FAT32 можна відзначити такі:

  • виділення дискового простору виконується ефективніше, особливо у дисків великого обсягу;
  • кореневий каталог в FAT32 є звичайним ланцюжком кластерів і може знаходитися в будь-якому місці диска. Завдяки цьому FAT32 не накладає жодних обмежень на кількість елементів у кореневому каталозі;
  • за рахунок використання кластерів меншого розміру (4 Кбайт на дисках об'ємом до 8 Гбайт) зайнятий дисковий простір зазвичай на 10-15% менше, ніж під FAT16;
  • FAT32 є більш надійною файловою системою. Зокрема, вона підтримує можливість переміщення кореневого каталогу та використання резервної копії FAT. Крім цього, завантажувальний запис містить ряд критичних для файлової системи даних.
Недоліки FAT32

Основні недоліки FAT32:

  • розмір тома під час використання FAT32 під Windows 2000 обмежений 32 Гбайт;
  • томи FAT32 недоступні з інших операційних систем – лише з Windows 95 OSR2 та Windows 98;
  • не підтримується резервна копія завантажувального сектора;
  • у FAT32 не підтримується вбудований захист файлів та їх стиснення.

Файлова система NTFS

Під час роботи в Windows 2000 Microsoft рекомендується відформатувати всі розділи жорсткого диска під NTFS, за винятком тих конфігурацій, коли використовується кілька операційних систем (крім Windows 2000 та Windows NT). Застосування NTFS замість FAT дозволяє використовувати функції, доступні NTFS. До них, зокрема, належать:

  • можливість відновлення. Ця можливість "вбудована" у файлову систему. NTFS гарантує збереження даних за рахунок того, що використовує протокол та деякі алгоритми відновлення інформації. У разі системного збою NTFS використовує протокол та додаткову інформацію для автоматичного відновлення цілісності файлової системи;
  • стиск інформації. Для томів NTFS Windows 2000 підтримує стиснення окремих файлів. Такі стислі файли можуть використовуватися Windows-додатками без попереднього розпакування, яке відбувається автоматично під час читання з файлу. При закритті та збереженні файл знову упаковується;
  • Крім цього, можна виділити такі переваги NTFS:

Деякі функції операційної системи потребують наявності NTFS;

Швидкість доступу набагато вища - NTFS мінімізує кількість звернень до диска, необхідних знаходження файла;

Захист файлів та каталогів. Тільки на томах NTFS можливе завдання атрибутів доступу до файлів та папок;

При використанні NTFS Windows 2000 підтримує об'ємом тома до 2 Тбайт;

Файлова система підтримує резервну копію завантажувального сектора - вона розміщується наприкінці тома;

NTFS підтримує систему шифрування Encrypted File System (EFS), що забезпечує захист від неавторизованого доступу до вмісту файлів;

У разі використання квот можна обмежити обсяг дискового простору, який займає користувача.

Недоліки NTFS

Говорячи про недоліки файлової системи NTFS, слід зазначити, що:

  • NTFS-томи недоступні в MS-DOS, Windows 95 і Windows 98. Крім цього, ряд функцій, реалізованих в NTFS під Windows 2000, недоступний у Windows 4.0 і раніше версіях;
  • для томів невеликого об'єму, що містять багато невеликих файлів, можливе зниження продуктивності в порівнянні з FAT.

Файлова система та швидкість

Як ми вже з'ясували, для томів невеликого обсягу FAT16 або FAT32 забезпечує швидший доступ до файлів у порівнянні з NTFS, оскільки:

  • FAT має більш просту структуру;
  • розмір каталогів менший;
  • FAT не підтримує захист файлів від несанкціонованого доступу – системі не потрібно перевіряти права доступу до файлів.

NTFS мінімізує кількість звернень до диска та час, необхідний для знаходження файлу. Крім того, якщо розмір каталогу досить малий, щоб поміститися в одному записі MFT, весь запис зчитується за один раз.

Одне входження до FAT містить номер кластера для першого кластера каталогу. Для перегляду файлу FATпотрібний пошук по всій файловій структурі.

Порівнюючи швидкість операцій, що виконуються для каталогів, що містять короткі та довгі імена файлів, слід враховувати, що швидкість операцій для FAT залежить від самої операції та розміру каталогу. Якщо FAT шукає неіснуючий файл, пошук виконується по всьому каталогу - ця операція займає більше часу, ніж пошук структури, заснованої на B-деревах, що використовується в NTFS. Середній час, необхідний пошуку файлу, в FAT виражається як функція від N/2, в NTFS - як log N, де N - це число файлів.

Низка наступних факторів впливає на швидкість читання та запису файлів під керуванням Windows 2000:

  • Фрагментація файлу. Якщо файл сильно фрагментований, NTFS зазвичай потрібно менше звернень до диска, ніж FAT знаходження всіх фрагментів;
  • Розмір кластера. Для обох файлових систем розмір кластера за замовчуванням залежить від обсягу тома і завжди виражається ступенем числа 2. Адреси в FAT16 - 16-бітові, FAT32 - 32-бітові, в NTFS - 64-бітові;
  • розмір кластера за замовчуванням у FAT базується на тому факті, що таблиця розташування файлів може мати не більше 65 535 входжень - розмір кластера є функцією від об'єму тома, поділеного на 65 535. Таким чином, розмір кластера за умовчанням для тома FAT завжди більше, ніж розмір кластера для тому NTFS того ж обсягу. Зазначимо, що більший розмір кластера для томів FAT означає, що FAT томи можуть бути менш фрагментованими;
  • розташування файлів невеликого розміру. При використанні NTFS файли невеликого розміру містяться в записі MFT. Розмір файлу, який міститься в один запис MFT, залежить від кількості атрибутів цього файлу.

Максимальний розмір томів NTFS

Теоретично NTFS підтримує томи з числом кластерів до 232 . Проте крім відсутності жорстких дисків такого обсягу існують інші обмеження на максимальний розмір тома.

Одним із таких обмежень є таблиця розділів. Індустріальні стандарти обмежують розмір таблиці розділів 232 секторами. Іншим обмеженням є розмір сектора, який зазвичай дорівнює 512 байт. Оскільки розмір сектора може змінитися в майбутньому, поточний розмір дає обмеження на розмір одного тома - 2 Тбайт (231 x 512 байт = 241). Таким чином, 2 Тбайт є практичною межею для фізичних та логічних томів NTFS.

У табл. 11 показано основні обмеження NTFS.

Керування доступом до файлів та каталогів

Використовуючи томи NTFS, можна встановлювати права доступу до файлів і каталогів. Ці права доступу вказують, які користувачі та групи мають доступ до них та який рівень доступу допустимо. Такі права доступу поширюються як на користувачів, що працюють за комп'ютером, на якому розміщуються файли, так і на користувачів, які звертаються до файлів через мережу, коли файл знаходиться в каталозі, відкритому для віддаленого доступу.

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

Під керуванням FAT16 і FAT32 також можна встановлювати атрибути файлів, але вони не забезпечують права доступу до файлів.

У версії NTFS, що використовується в Windows 2000, з'явився новий тип дозволу на доступ - успадковані дозволи. Вкладка Security містить опцію Можна вносити необмежені можливості від parent до propagate до цього файлу об'єкта, яка за умовчанням перебуває у активному стані. Ця опція значно скорочує час, який потрібно змінити права доступу до файлів і підкаталогів. Наприклад, для зміни прав доступу до дерева, що містить сотні підкаталогів та файлів, достатньо включити цю опцію - у Windows NT 4 необхідно змінити атрибути кожного окремого файлу та підкаталогу.

На рис. 5 показано діалогову панель Properties та вкладку Security (розділ Advanced) - перераховано розширені права доступу до файлу.

Нагадаємо, що для томів FAT можна керувати доступом лише на рівні томів і такий контроль можливий лише за віддаленого доступу.

Стиснення файлів та каталогів

Windows 2000 підтримує стиснення файлів і каталогів, розташованих на NTFS-томах. Стислі файли доступні для читання та запису будь-якими програмами Windows. Для цього немає необхідності в їхньому попередньому розпакуванні. Використовуваний алгоритм стиснення схожий з тим, який використовується в DoubleSpace (MS-DOS 6.0) і DriveSpace (MS-DOS 6.22), але має одну істотну відмінність - під керуванням MS-DOS виконується стиск цілого первинного розділу або логічного пристрою, тоді як під NTFS можна упаковувати окремі файли та каталоги.

Алгоритм стиснення NTFS розроблено з урахуванням підтримки кластерів розміром до 4 Кбайт. Якщо розмір кластера більше 4 Кбайт, функції стиснення NTFS стають недоступними.

Самовідновлення NTFS

Файлова система NTFS має здатність самовідновлення і може підтримувати свою цілісність за рахунок використання протоколу виконуваних дій та інших механізмів.

NTFS розглядає кожну операцію, яка модифікує системні файли на NTFS-томах, як транзакцію і зберігає інформацію про таку транзакцію в протоколі. Почата транзакція може бути повністю завершена (commit), або відкочується (rollback). В останньому випадку NTFS тому повертається в стан, що передує початку транзакції. Щоб керувати транзакціями, NTFS записує всі операції, які входять у транзакцію, у файл протоколу, як здійснити запис на диск. Після завершення транзакції всі операції виконуються. Таким чином, під керуванням NTFS не може бути незавершених операцій. У разі дискових збоїв незавершені операції просто скасовуються.

Під керуванням NTFS також виконуються операції, що дозволяють "на льоту" визначати дефектні кластери та відводити нові кластери для файлових операцій. Цей механізм називається cluster remapping.

У даному оглядіми розглянули різні файлові системи, що підтримуються в Microsoft Windows 2000, обговорили пристрій кожної з них, відзначили їх переваги та недоліки. Найбільш перспективною є файлова система NTFS, яка має великий набір функцій, недоступних в інших файлових системах. Нова версія NTFS, підтримувана Microsoft Windows 2000, має ще більшу функціональність і тому рекомендується для використання при встановленні операційної системи Win 2000.

Комп'ютерПрес 7"2000

Файлова системаце лише спосіб організації даних на носії, нічого складного в цій організації немає.

Можливо ви думаєте: «що файлова система – це складна і незрозуміла штука, адже з нею працюють операційні системи, а там все просто бути не може…»

Частково ви маєте рацію, але всі родзинки перебувають у драйвері файлової системі, тобто. у програмі, яка надає API для інших прикладних програм. Вона якраз і виконує такі дії як:

  • створити файл
  • видалити файл
  • перейменувати
  • скопіювати
  • показати вміст каталогу
  • перейти до іншого каталогу тощо.

Сам принцип організації файлової системи простий.

У цьому пості, я не розглядатиму як влаштований драйвер і як він створює/видаляє файли, я розповім вам про принцип організації файлової системи FAT16.

(про те, як написати драйвер, є окремий)

Чому FAT16?

Я вважаю її найзручнішою для навчання, її легко осмислити. А знаючи ідею, вже не складно вивчати інші файлові системи FAT32, NTFS, і т.п.

Навіщо мені потрібно знати, як влаштована файлова система?

Знаючи принцип організації файлової системи, ви можете розробити свій драйвер або файловий менеджерна будь-якому обчислювальному пристрої.

Опис файлової системи FAT16

Для зручного орієнтування на пост, я наведу список питань, на які ви знайдете відповіді:

Файлова система FAT16ділить весь адресний простір носія на дві області:

  • системну область
  • область даних

Для наочності зобразимо весь адресний простір прямокутником. Мала верхня частина прямокутника (адресного простору) це системна область, нижня масивна область даних.

Усі дані, що ми зберігаємо своєму носії, тобто. всі файли та каталоги - зберігаються в області даних. Системна ж область, зберігає параметри даного носія та характеристики файлів та директорій – ім'я файлу, ім'я директорії, атрибути файлу тощо.

Почнемо з простого, пару слів про область даних і як там зберігаються дані

Про область даних …

Щоб не адресувати кожен байт (хоча деякі носії інформації дозволяють працювати і побайтно) у файловій системі використовують іншу мінімальну одиницю, що адресується – сектор. Розмір сектора 512 байт. Крім сектора файлова система FAT16 використовує ще таке поняття як кластер. Кластер це один або кілька розташованих поспіль секторів.

Цим параметром (кількість секторів на кластері) часто маніпулюють при форматуванні носіїв інформації. Т.к. від нього залежить швидкість роботи та «ступінь упаковки даних». FAT16, як і всі файлові системи, використовує таке поняття як файл. Файл це область даних, що має ім'я та деякі атрибути. Фізично в області даних це один або кілька кластерів, причому файл займає ціле число кластерів. Навіть якщо він займає трохи більше двох кластерів для файлової системи зайнятих під файл буде вважатися три кластери. Тому, що менше розмір кластера, то більше вписувалося «ступінь упаковки даних» і економічніше використовується область даних. З іншого боку, зчитувати файл із великих шматків пам'яті тобто. кластерів швидше, ніж із дрібних. Тому вибір розміру кластера це справа компромісу.

Файлова система FAT16 накладає обмеження на розмір кластера, не більше 128 секторів(тобто не більше 64 кб) і на кількість кластерів не більше 65 525 штук. Якщо використовувати все максимум, тобто. максимальні розміри секторів і максимальна кількість кластерів, то виходить що FAT16 не може адресувати більше ніж 4.2 гігабайта інформації.

Якщо ми виконуємо форматування в автоматичному режимі (коли не вказуємо розмір кластера), то розмір кластер вибирається мінімальним, при якому кількість кластерів, що виходить, не перевищує 65525.

Про системну область …

Системна область створюється при форматуванні носія та носить описовий характер. Вона складається з наступних частин:

Розберемо кожну частину докладніше

1. Завантажувальний сектор

Завантажувальний сектор є таблицю параметрів та програму завантажувач. Розмір завантажувального сектора зазвичай 512 байтале він може бути більшим.

Розглянемо структуру завантажувального сектора.

Не лякайтеся великої кількості полів у завантажувальному секторі, він позбавлений. Наприклад, у ньому зберігатиметься інформація не актуальна для флеш накопичувачів: кількість секторів на треку, кількість головок. Тож не всі параметри для нас будуть корисні.

Якщо подивитися HEX код, якогось носія інформації відформатованого у форматі FAT16, ми побачимо значення полів. Як приклад, я наведу HEX код образу у форматі FAT16 створеного у WinImage. Для зручності орієнтування за кодом, я помітив кольорами якийсь фрагмент HEX коду до якого параметра ставитися.

P.S. Значення для кожного осередку вважаються справа налівонаприклад, якщо написано 00 02 h, то насправді це 02 00 h, тобто. 512

P.S. Завантажувальний сектор завжди закінчується 55AAh.

Важливо звернути увагу на параметр « ReservedSectors» - кількість зарезервованих секторів, по зміщенню 0Eh. На самому початку я говорив, що завантажувальний сектор зазвичай має розмір 512 байт, але може бути й більше. Визначається його розмір параметром « ReservedSectors", у нашому випадку ReservedSectors = 01h, отже завантажувальний сектор займає 1-ін секторабо 512 байт.

2. FAT

Після завантажувального сектора з розміром 512* ReservedSectors байт, йде таблиця FAT1, її розмір визначається двобайтовим полем - SectorPerFat (16h)завантажувального сектора. У прикладі вище значення даного поля дорівнює 0001hабо 1 , тобто. один сектор або 512 байт.

Що таке FAT?

Насамперед це абревіатура – File Allocation Table, Що означає "таблиця розташування файлів". Це таблицяз одним стовпцемі 512/2 кількістю рядків(якщо розмір таблиці FAT – 512 байт чи SectorPerFat дорівнює 0001h, як у разі). Кожна рядоктаблиці FAT займає 2 байти пам'ятітому кількість рядків для нашого випадку це 512/2 .

Таблиця служить у ролі картки за кластерами, кожна її рядок характеризує якийсь кластер, перший рядок – перший кластер, другий – другий і так для всіх кластерів, що є в області даних. Перед таблицею стоїть дескриптор таблиці F8FFh(те ж значення, що і в 15h завантажувального сектора) та заповнювач FFFFh. Далі йдуть рядки таблиці, значення яких можуть бути наступні:

  • 0000h- вільний кластер;
  • 0002h-FFEFh- Номер наступного елемента в ланцюжку;
  • FFF0h-FFF6h- зарезервований;
  • FFF7h- Дефектний;
  • FFF8h-FFFFh- останній у ланцюжку;

Наведу приклад HEX коду з поясненням.

Синійрамкою я позначив таблицю FAT1, червоний таблиці FAT2(Копія таблиці FAT1). Зафарбований зелений квадратикце дескриптор таблиці F8FFh та заповнювач FFFFh. Чи не зафарбовані квадратики, це рядки таблиці. Я не став позначати всі рядки зеленою рамкою, обвів не нульові.

Як застосовується і навіщо потрібна FAT, я поясню трохи згодом.

3. Кореневий каталог

Після таблиць FAT йде « кореневий каталог». Це область пам'яті, що містить 32-ох байтові елементи. Кожен елемент описує, якийсь файл або каталог, що знаходяться в кореневому каталозіабо іншою мовою «докорінно» жорсткого диска/флешки. Виходить кореневий каталог описує все те, що є в корені.

Розмір кореневого каталогу залежить від параметра RootEntries (11h)завантажувального сектора. У ньому вказується максимальна кількість 32 байтних елементіву кореневому каталозі. Виходить розмір каталогу RootEntries * 32, для нашого випадку це 512 * 32 = 16384 байт.

Кожен елемент має таку структуру:

Наведу приклад HEX-коду з поясненням.

Зеленоїрамкою я позначив область пам'яті, що відповідає за кореневий каталог, синій 32-ох байтні елементи кореневого каталогу. Не порожні 32 байтні елементи я зафарбував блакитним.

Тут два не порожні 32 байтні елементи, значить, у кореневому каталозі зберігатися два «чогось», це можуть бути як файли, так і інші каталоги. В даному випадку для простоти прикладу докорінно зберігатися два файли « 1.txt» та « test.txt».

Розглянемо ближче цих двох 32 байтних елемента, для зручності я відзначив кольорами фрагмент HEX коду і відповідний параметр 32 байтного елемента в таблиці.

P.S. Якщо перший байт імені файлу замінити на "E5", то провідник Windows буде вважати його як віддалений. Такий файл можна відновити, замінивши перший символ E5 в імені на колишнє значення. Не впевнений до кінця, але думаю, що так працює кошик у Windows. Поміщаючи в кошик, операційна система зберігає десь ім'я файлу і замінює перший байт в імені на E5, а при відновлення присвоює файлу колишнє ім'я.

P.S. Імена файлів у системі FAT16 зберігаються у форматі 8.3 . Тобто. 8 -байтів виділено для імені та 3-й байта виділено для розширення. Імена кодуються у форматі ASCIIодин символ це один байт. Тому ім'я не може мати довжину більше, ніж 8 символів, а розширення більше 3-ох. Якщо ім'я коротше 8 символів, то відсутні байти заповнюються 20h(Знак пробілу в ASCII коді).

P.S. Нагадаю, що значення для кожного осередку вважається праворуч наліво, наприклад, якщо написано 00 02 h, то насправді це 02 00 h, тобто. 512 у десятковій системі обчислення.

Найважливіший для нас параметр знаходиться за адресою 1Аh — « молодше слово першого кластера файлів». У ньому зберігається номер кластера, в якому знаходиться вміст файлу, а це означає, що ми можемо працювати з інформацією даного файлу, тобто. зчитувати, редагувати його тощо.

Наприклад « 1.txt» зберігатися у кластері номер 0x0003або 3 у десятковій системі обчислення. А це означає, що якщо ми перейдемодо кластеру №3в області даних (нагадаю, область даних це просто поспіль кластери, що йдуть) ми потрапимо до вмісту цього файлу.

У вас може виникнути «практичне» питання, а Як знайти цей третій кластер?за яку адресу він перебувати?

Як знайти адресу кластера знаючи його номер?

Для цього вам потрібно знати який обсяг у вас займає системна областьі якого розміру кластери(тобто скільки секторів (або 512 байт) містить у собі кластер).

Дізнатися розмір системної області вам допоможе наступний малюнок:

Приклад для мого випадку

Завантажувальний сектор має обсяг 512*ReservedSectorsбайт, у моєму випадку 512 байт. Далі таблиця FAT у мене займає один сектор, тобто. 512 байт(Тобто SectroPerFat дорівнює 1). Таблиці дві(т.к. NumberOfFATs дорівнює 2), отже дві таблиці у сумі 512 * 2 = 1024 байт. Розмір кореневого каталогу 512 32 значущих елементів, тобто. 512 * 32 = 16384 байт. Вважаємо:

512 (завантажувальний сектор) + 1024 (дві таблиці FAT) + 16384 (кореневий каталог) = 17920 байтабо 4600 у шістнадцятковій системі числення.

У результаті, в нашому випадку область даних починається з 0x4600, подивимося:

Ми бачимо вміст якогось файлу, але не нашого. Дані файлу, що цікавить наc (1.txt) зберігаються у кластері №3.

Тепер потрібно дізнатися про розмір кластера, в цьому нам допоможе параметр завантажувального сектора – SectorPerCluster(0xD, розмір параметра 1 байт). У нашому випадку розмір кластера 4-е сектори, тобто. 512 * 4 = 2048 байтабо 800 у шістнадцятковій системі числення. Важливо зауважити, що кластери нумеруються з двійки, а не одиниці (!).

Підраховуємо, з якого адреси починається кластер №3:

0x4600 (системна область) + 0x800 (другий кластер) = 0x4E00

Підраховуємо, за яким адресою закінчується кластер №3:

0x4E00 (початок кластера №3) + 0x800 (512*4 або розмір одного кластера в HEX) = 0x5600

В результаті кластер №3 лежить у діапазоні адрес 0x4E000x5600.

Подивимося HEX код

Синій рамкоюя позначив вміст файлу 1.txt. Все, що вище за рамку — вміст іншого файлу. Порожні області сектора заповнюються 0x00.

Тож навіщо потрібна таблиця FAT?

Якщо файл займає більше одного кластера (у разі якщо файл більше 2048 байт), то нам приходить у допомогу таблиця FAT. Вона є щось на зразок «карти» кластерів. Тобто. коли ми дізнаємось номер сектора, з якого починається цікавий для нас файл, насамперед ми повинні подивитися такий же номер рядка у FAT.

Якщо рядок має значення 0xFF8-0xFFFF, то це означає, що це останній кластердля цього файлу, тобто. файл займає всього один кластер.

Якщо рядок має значення 0x0002-0xFFEF, то це означає, що файл розтягнувся ще на один кластер. Цифраозначає номер наступного кластера, в якому зберігається продовження файлу. Ми повинні продовжити зчитувати файл за даному номерукластер.

Після зчитування нового кластера, потрібно переглянути значення рядка за цим номером у FAT. Якщо значення рядка дорівнює 0x FF8-0xFFFF, це означає, що цей кластер останній у файлі. Якщо 0x0002-0xFFEF, це номер для наступного кластера, зчитуємо далі і повторюємо дію. Зчитування файлу це цикл із умовою.

Отже, ми розібралися з файлами, тепер настав час розібратися з директоріями.

Що таке директорія?

Директорія для файлової системи FAT16 (та й багатьох інших) це особливий файл з нульовим розміром, що зберігає список свого вмісту.

Допустимо, ми додали в наш образ FAT16 директорію « TEST_DIR» з файлом « in_dir.txt». Тоді в кореневому каталозі з'явиться новий 32 байтний елемент, він описує директорію як і файлале з невеликими відмінностями.

Я відзначив червоним параметри, характерні для директорій, це 0x10– мітка каталогу та 0x00000000- розмір файла.

Як видно у синьому квадраті, директорія у нас лежить у кластері №5, подивимося, що там.

Вміст «файлу» TEST_DIRпо суті, це той самий кореневий каталог, тобто. набір 32 байтних елементів. Я окреслив кожен елемент зеленою рамкою.

В елементах описується ім'я файлу або каталогу, атрибути та номер кластера, в якому лежать його дані. У будь-якій папці завжди є два каталогиз ім'ям "." та «..».

Перший лежить у кластері №5 , тобто. це той же каталог, а другий на кластер номер №0. Під цим номером розуміється «кореневий каталог», тобто. це вихід у кореневий каталог.

Опис файлу « in_dir.txtстандартне, як і для кореневого каталогу (див. кореневий каталог). Для нас головне, це номер кластера, в якому знаходиться вміст даного файлу (позначив червоним квадратом).

Дивимося кластер №6і бачимо вміст файлу « in_dir.txt». Червоною лінією я окреслив початок кластера.

Вам буде цікаво:


У FAT імена файлів мають формат 8.3 і складаються лише із символів кодування ASCII. У VFAT було додано підтримку довгих (до 255 символів) імен файлів (англ. Long File Name, LFN) у кодуванні UTF-16LE, при цьому LFN зберігаються одночасно з іменами у форматі 8.3, ретроспективно званими SFN (англ. Short File Name). LFN нечутливі до регістру під час пошуку, однак, на відміну від SFN, які зберігаються у верхньому регістрі, LFN зберігають регістр символів, вказаний під час створення файла.

Структура системи FAT

У файловій системі FAT суміжні сектори диска об'єднуються в одиниці, які називають кластерами . Кількість секторів у кластері дорівнює ступеню двійки (див. далі). Для зберігання даних файлу відводиться ціла кількість кластерів (мінімум один), отже, наприклад, якщо розмір файлу становить 40 байт, а розмір кластера 4 кбайт, реально зайнятий інформацією файлу лише 1 % відведеного йому місця. Щоб уникнути подібних ситуацій доцільно зменшувати розмір кластерів, а скорочення обсягу адресної інформації та підвищення швидкості файлових операцій - навпаки. Насправді обирають певний компроміс. Так як ємність диска цілком може і не виражатися цілим числом кластерів, зазвичай наприкінці тома є т.з. surplus sectors - «залишок» розміром меншим за кластер, який не може відводитися ОС для зберігання інформації.

Простір тому FAT32 логічно розділений на три суміжні області:

  • Зарезервована область. Містить службові структури, які належать завантажувальному запису розділу (Partition Boot Record - PBR, на відміну від Master Boot Record - головного завантажувального запису диска; також PBR часто некоректно називається завантажувальним сектором) і використовуються при ініціалізації тома;
  • Область таблиці FAT, що містить масив індексних покажчиків («осередків»), які відповідають кластерам області даних. Зазвичай, на диску представлено дві копії таблиці FAT з метою надійності;
  • Область даних, де записано власне вміст файлів - тобто текст текстових файлів, кодоване зображення для файлів малюнків, оцифрований звук для аудіофайлів і т.д. - а також т.з. метадані - інформація щодо імен файлів та папок, їх атрибутів, часу створення та зміни, розмірів та розміщення на диску.

У FAT12 та FAT16 також спеціально виділяється область кореневого каталогу. Вона має фіксоване положення (безпосередньо після останнього елемента таблиці FAT) та фіксований розмір у секторах.

Якщо кластер належить файлу, то відповідний осередок містить номер наступного кластера цього файлу. Якщо комірка відповідає останньому кластеру файлу, вона містить спеціальне значення (FFFF 16 для FAT16). Таким чином вибудовується ланцюжок кластерів файлу. Невикористовуваним кластерам у таблиці відповідають нулі. "Поганим" кластерам (які виключаються з обробки, наприклад, через нечитання відповідної області пристрою) також відповідає спеціальний код.

При видаленні файлу перший знак імені замінюється спеціальним кодом E5 16 і ланцюжок кластерів файлу таблиці розміщення обнулюється. Оскільки інформація про розмір файлу (яка знаходиться в каталозі поруч з ім'ям файлу) при цьому залишається недоторканою, у разі, якщо кластери файлу розташовувалися на диску послідовно і вони не були перезаписані новою інформацією, можливе відновлення видаленого файлу.

Завантажувальний запис

Перша структура тому FAT називається BPB (англ. BIOS parameter block ) та розташована в зарезервованій області, в нульовому секторі. Ця структура містить інформацію, що ідентифікує тип файлової системи та фізичні характеристики носія (дискети або розділи на жорсткому диску).

BIOS Parameter Block

BPB у принципі був відсутній у FAT, що обслуговувала MS-DOS 1.x, тому що в той час передбачалося лише два різні типи тома - одно- та двосторонні п'ятидюймові дискети на 360 кб, причому формат тома визначався за першим байтом області FAT. BPB був введений в MS-DOS 2.x на початку 1983 як обов'язкова структура завантажувального сектора, за якою надалі слід було визначати формат тома; стара схема визначення за першим байтом FAT втратила підтримку. Також у MS-DOS 2.0 було введено ієрархію файлів і папок (до цього всі файли зберігалися в кореневому каталозі).

Структура BPB в MS-DOS 2.x містила 16-бітове поле "загальної кількості секторів", що означало принципову незастосовність цієї версії FAT для томів об'ємом більше 216 = 65536 секторів, тобто більше 32 Мб при стандартному розмірі сектора 512 байт. У MS-DOS 4.0 (1988) вищеназване поле BPB було розширено до 32 біт, що означало збільшення теоретичного розміру тому до 232 = 4294967296 секторів, тобто до 2 ТБ при 512-байтному секторі.

Наступна модифікація BPB з'явилася разом із Windows 95 OSR2, у якій було введено FAT32 (серпні 1996 року). Було знято двогігабайтне обмеження на розмір тому, тому FAT32 може мати теоретично розмір до 8 Тб. Втім, розмір кожного окремого файлу у своїй може перевищувати 4 Гб. BIOS Parameter Block FAT32 з метою сумісності з ранніми версіями FAT повторює BPB FAT16 до поля BPB_TotSec32 включно, далі йдуть відмінності.

«Завантажувальний сектор» FAT32 насправді є три 512-байтних сектори - сектори 0, 1 і 2. Кожен з них містить сигнатуру 0xAA55 за адресою 0x1FE, тобто в останніх двох байтах, якщо розмір сектора дорівнює 512 байт. Якщо розмір сектора більше, ніж 512 байт, то сигнатура міститься як за адресою 0x1FE, і у останніх двох байтах нульового сектора, тобто дублюється.

FSInfo

Завантажувальний запис розділу FAT32 містить структуру під назвою FSInfo, що використовується для зберігання значення числа вільних кластерів тому. FSInfo, як правило, займає сектор 1 (див. поле BPB_FSInfo) і має наступну структуру (адреси щодо початку сектора):

  • FSI_LeadSig. 4-байтовий підпис 0x41615252 свідчить, що сектор використовується для структури FSInfo.
  • FSI_Reserved1. Проміжок з 4-го по 483-й байт сектора включно, обнулюється.
  • FSI_StrucSig. Ще один підпис розташований за адресою 0x1E4 і містить значення 0x61417272.
  • FSI_Free_Count. Чотирьохбайтове поле за адресою 0x1E8, містить останнє відоме системі значення числа вільних кластерів тому. Значення 0xFFFFFFFF означає, що кількість вільних кластерів невідома і повинна обчислюватися.
  • FSI_Nxt_Free. Чотирибайтове поле за адресою 0x1EC містить номер кластера, від якого повинен починатися пошук вільних кластерів за таблицею індексних покажчиків. Зазвичай, це поле містить номер останнього кластера FAT, відведеного для зберігання файлу. Значення 0xFFFFFFFF означає, що пошук вільного кластера повинен проводитися з початку таблиці FAT, тобто з другого кластера.
  • FSI_Reserved2. Зарезервоване 12-байтне поле за адресою 0x1F0.
  • FSI_TrailSig. Підпис 0xAA550000 - останні 4 байти сектора FSInfo.

Сенс запровадження FSInfo в оптимізації роботи системи, оскільки у FAT32 таблиця індексних покажчиків може мати значні розміри і її побайтовий перегляд може зайняти значний час. Однак значення полів FSI_Free_Count та FSI_Nxt_Free можуть не відповідати дійсності та повинні перевірятися на адекватність. Крім того, вони навіть не оновлюються у резервній копії FSInfo, розташованої, як правило, у секторі 7.

Визначення типу FAT тома

Визначення типу FAT тома (тобто вибір між FAT12, FAT16 та FAT32) виробляється ОС за кількістю кластерів у тому, що у свою чергу визначається з полів BPB. Насамперед обчислюється кількість секторів кореневого каталогу:

RootDirSectors = (BPB_RootEntCnt * 32) / BPB_BytsPerSec

DataSec = TotSec - (BPB_ResvdSecCnt + (BPB_NumFATs * FATSz) + RootDirSectors)

Нарешті визначається кількість кластерів області даних:

CountofClusters = DataSec / BPB_SecPerClus

За кількістю кластерів проводиться однозначна відповідність до файлової системи:

  • CountofClusters< 4085 - FAT12
  • CountofClusters = 4085 ÷ 65524 - FAT16
  • CountofClusters > 65524 - FAT32

Згідно з офіційною специфікацією, це єдиний допустимий спосіб визначення типу FAT. Штучне створення тому, що порушує зазначені правила відповідності, призведе до його некоректної обробки Windows. Тим не менш, рекомендується уникати значень CountofClusters, близьких до критичних (4085 і 65525), для правильного визначення типу файлової системи будь-якими, часто некоректно написаними драйверами.

Згодом FAT стали широко використовувати у різних пристроях сумісності між DOS, Windows, OS/2, Linux. Майкрософт не виявляла намірів примушувати їх ліцензувати [ уточнити] .

У лютому 2009 року Майкрософт подала до суду на компанію TomTom, виробника автомобільних навігаційних систем на основі Linux, звинувачуючи її в порушенні патентів.

Примітки

  1. http://cd.textfiles.com/megademo2/INFO/OS2_HPFS.TXT
  2. www.microsoft.com/mscorp/ip/tech/fathist.asp в archive.org
  3. Microsoft Extensible Firmware Initiative FAT32 File System Specification 1.03. Microsoft (6 грудня 2000). - документа у форматі Microsoft Word, 268 Кб. Архівовано
  4. What About VFAT? . TechNet Archive. Microsoft (15 жовтня 1999 року). Архівовано з першоджерела 22 серпня 2011 року. Перевірено 5 квітня 2010 року.
  5. Не слід плутати розширення файлової системи VFAT з однойменним драйвером файлової системи, який з'явився у Windows for Workgroups 3.11 і призначений для обробки викликів функцій MS-DOS (INT 21h) у захищеному режимі (див.: KB126746: Windows for Workgroups Version History . VERSION 3.11 → Non-Network Features. Microsoft (14 листопада 2003 року). Архівовано з першоджерела 22 серпня 2011 року. Перевірено 5 квітня 2010 року.)
  6. Federal Patent Court Declares FAT patent of Microsoft null and void (англ.) . heise online. Heise Zeitschriften Verlag (2 березня 2007). Архівовано
  7. Brian Kahin. Microsoft Roils the World with FAT Patents (англ.) . The Huffington Post (10 березня 2009 року). Архівовано з першоджерела 22 серпня 2011 року. Перевірено 10 березня 2009 року.
  8. Ryan Paul. Microsoft suit over FAT patents could open OSS Pandora's Box (англ.) . Ars Technica. Condé Nast Publications (25 лютого 2009 року). Архівовано
  9. Glyn Moody.(англ.). ComputerworldUK. IDG (5 березня 2009 року). Архівовано з першоджерела 22 серпня 2011 року. Перевірено 9 березня 2009 року.
  10. Steven J. Vaughan-Nichols. Linux компанії sign Microsoft patent protection pacts (англ.) . Блоги Computerworld. IDG (5 березня 2009 року). Архівовано з першоджерела 22 серпня 2011 року. Перевірено 9 березня 2009 року.
  11. Erica Ogg. TomTom counterssues Microsoft в patent dispute (англ.) . CNet (19 березня 2009 року). Архівовано з першоджерела 22 серпня 2011 року. Перевірено 20 березня 2009 року.

Посилання

  • ECMA-107 (англ.) стандарт FAT