Файлові системи FAT та NTFS, їх будова

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

FAT



Важливе значення має засіб розподілу місця на диску для файлів. Від правильного вибору засобу розподілу залежить ефективність роботи операційної системи та програм.
В операційних системах, таких як DOS, UNIX, OS/2, при створенні файла для нього не задається початковий розподіл пам'яті в доріжках або секторах. У міру того, як файл збільшується в розмірах, операційна система відводить цьому файлу сектори з числа вільних, не використовуваних іншими файлами. При цьому файл розташовується не обов'язково в суміжних областях диска, він може бути розкиданий по різних доріжках і секторах.
Очевидно, що в цьому випадку операційна система повинна вести облік використовуваних ділянок диска. Для кожного файла вона повинна берегти десь інформацію про те, якому файлу які ділянки диска відведені.
Як правило в операційних системах для збереження цієї інформації використовується таблиця розміщення файлів. Весь диск розбивається операційною системою на ділянки однакового розміру, які називаються кластерами. Кластер може містити декілька секторів. Для кожного кластера FAT (File Allocation Table) має свою індивідуальну комірку , в якій зберігається інформація про використання даного кластера. Іншими словами, таблиця розміщення файлів - це масив, що містить інформацію про кластери. Розмір цього масиву визначається загальною кількістю кластерів на логічному диску.
В таблиці розміщення файлів зберігаються всі вільні кластери позначені в ній нулями. Якщо файл займає декілька кластерів, то ці кластери пов'язані в список. Для пов'язаних у список кластерів елементи таблиці FAT містять номера наступних використовуваних даним файлом кластерів. Кінець списку відзначений у таблиці спеціальним значенням. Номер першого кластера, виділеного файлу, зберігається в елементі каталога, що описує даний файл.
Утиліти операційної системи і деякі спеціальні утиліти перевіряють диск на предмет наявності дефектних областей. Кластери, що знаходяться в цих дефектних областях, відзначаються в FAT як погані і не використовуються операційною системою. Отже, FAT - масив інформації про використання кластерів диска, містить однозв’язані списки кластерів, розподілених між файлами. Номера початкових кластерів файлів зберігаються в каталогах.
Розглянемо два формати FAT - 12-бітовий і 16-бітовий. Ці формати використовують, відповідно, 12 і 16 бітів для збереження інформації про один кластер диска.

              FAT 12-бітовий формат зручний для дискет із невеликою кількістю секторів - уся таблиця розміщення файлів поміщається в одномо секторі.
Якщо розмір диска такий, що для представлення всіх секторів дванадцятьох розрядів недостатньо, можна збільшити розмір кластера, наприклад до восьми секторів. Проте великий розмір кластера приводить до неефективного використання дискового простору. Це відбувається через те, що мінімальний виділяємий файлу елемент - кластер - має занадто великий розмір. Навіть для файла, що має довжину 1 байт виділяється цілий кластер. Виходить, якщо розмір кластера складає 8 секторів, то для збереження одного байта буде використано 4 кілобайта дискової пам'яті.

При використанні FAT 16-бітового формату операційна система може працювати з диском, що має розмір більш 32 мегабайт. DOS версії 4.0 при використанні 16-бітового формату FAT і кластерів розміром 4 сектори може працювати з розділами, які по розміру досягають 134 мегабайти.

Формат FAT.
Перший байт FAT називається "Описувач середовища" (Media Descriptor) або байт ID ідентифікації FAT. Він має таке ж значення, як і байт-описувач середовища, що знаходиться в BOOT-секторі логічного диска.
Наступні 5 байтів для 12-бітового формату або 7 байтів для 16-бітового формату завжди містять значення 0ffh. Вся інша частина FAT складається з 12-бітових або 16-бітових комірок, кожна комірка відповідає одному кластеру диска. Ці комірки можуть містити такі значення: FAT12 FAT16
Що означає
000h0000h – вільний кластер,
ff0h - ff6hfff0h - fff6h – зарезервований кластер;
ff7hfff7h – поганий кластер;
ff8h - fffhfff8h - ffffh – останній кластер у списку;
002h - fefh0002h - ffefh – номер останнього кластера в списку.
Fatwww.jpg
FAT захищеного режиму.
FAT захищеного режиму – це стандартна файлова система, яка використовується Windows 95 для пристроїв масової пам`яті, наприклад, для дисководів і жорстких дисків. FAT захищеного режиму сумісна з FAT MS-DOS і також зберігає інформацію про вміст диску на основі таблиці розміщення файлів і записів в каталогах. Крім того, FAT захищеного режиму підтримує довгі імена і зберігає дату і час створення файла, а також дату останнього доступу.
У FAT захищеного режиму допустимі імена файлів довжиною до 256 символів, включаючи нульовий завершаючий символ. В цьму плані вона схожа з фйловою системою Microsoft Windows NT (NTFS), яка теж працює з довжиною файлів до 256 символів. Довжина шляху в FAT захищеного режиму (без імені самого файлу) може бути до 246 символів (сюди входять імя диску, дві крапки і зворотній слеш). максимальне число символів в повному імені файлів (разом з іменем диска, двокрапкою, шляхом і завершаючим нульовим символом) рівне 260.
Коли додаток створює файл чи каталог з довгими іменами, сичтема автоматично генерує для нього відповідний псевдонім в стандартному форматі "8.3", використовуючи ті символи, які допустимі в FAT MS-DOS. до них відносять любі комбінації латинських букв, цифр ісимволів з ASCII-кодами більше 127, а також пробіл і спеціальні символи: !%()_-@`~{}&#^$'

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


До файлової системи FAT16 може звертатися практично будь-яка ОС. Якщо створити первинний розділ в цьому форматі і якщо цей розділ має розмір до 1ГБ, то це найкращі умови для інсталяції декількох різних операційних систем на одному ПК. Існуючі розділи можуть зменшуватися або ділитися без втрати даних лише з допомогою комерційних допоміжних програм, наприклад Partition Magic. Користувач, який бажає розмістити на одному ПК довільну комбінацію самостійно завантажуючих систем DOS, Windows 95/98 i NT 4.0 з можливістю сумісного доступу до масивів, не обійдеться без FAT16.

Недолік файлового формату FAT16 максимальна ємність диску: з його використанням можна адресувати лише 2047 МБ на одному розділі. До того ж ці трохи більше 2 ГБ використовують ще дещо більше пам’яті оскільки FAT16 в цьому випадку розмір кластерів у 32 КБ. Це стає замітним при великій кількості малих файлів. Навіть дуже малі файли в будь-якому випадку займають не менше 32КБ пам’яті жорсткого диску.
FAT32 підтримується Windows 95 OSR2, Windows 98 і Linux (починаючи з Kernel 2.0.34), а також майбутньою Windows NT5.0 файлова система FAT32 дозволяє установити мінімальний розмір кластерів всього в 4КБ (замість 32КБ) навіть для дисків ємністю до 8 Гбайт. Старіші версії Windows 95, NT 4.x, Linux, нажаль, не підтримують FAT32. Таким чином, для обміну даними між будь-якими операційними системами у випадку використання файлової системи FAT32 шлях закритий.

NTFS
Фізична структура NTFS Розділ NTFS, теоретично, може бути майже якого завгодно розміру. Межа, звичайно, є, але я навіть не вказуватиму його, оскільки його із запасом вистачить на подальші сто років розвитку обчислювальної техніки - при будь-яких темпах її зростання. Як і будь-яка інша система, NTFS ділить все корисне місце на кластери - блоки даних, використовувані одноразово. NTFS підтримує майже будь-які розміри кластерів - від 512 байт до 64 Кбайт, деяким стандартом же вважається кластер розміром 4 Кбайт. Жодних аномалій кластерної структури NTFS не має.

Диск NTFS умовно ділиться на дві частини. Перші 12% диска відводяться під так звану зону - простір, в який зростає метафайл MFT, MFT (про це нижче). Запис яких-небудь даних в цю область неможливий. MFT-зона завжди тримається порожньою - це робиться для того, щоб найголовніший, службовий файл (MFT) не фрагментувався при своєму зростанні. Останні 88% диска є звичайним простором для зберігання файлів.
Ntі1.JPG
Вільне місце диска, включає все фізично вільне місце та незаповнені шматки MFT-зоны. Механізм використання MFT-зоны такий: коли файли вже не можна записувати в звичайний простір, MFT-зона просто скорочується (у поточних версіях операційних систем рівно в два рази), звільняючи таким чином місце для запису файлів. При звільненні місця в звичайної області MFT зона може знову розшириться. При цьому не виключена ситуація, коли в цій зоні залишилися і звичайні файли: жодної аномалії тут не виникає.