Файлові системи Windows
Як пояснюється в статті про основи файлової системи, операційні системи, як правило, мають обмежений список підтримуваних файлових систем. А у випадку сімейства Windows від Microsoft вибір зазвичай робиться між двома основними типами ФС: NTFS, основною файловою системою, що використовується за замовчуванням у більшості сучасних версій цієї ОС, і FAT, яка була успадкована від старої MS-DOS, із її розширеною версією exFAT. Ще є ReFS, представлений Microsoft як формат нового покоління для серверних комп'ютерів, починаючи з Windows Server 2012. Та розроблена Microsoft спільно з IBM ФС HPFS, яку наразі можна знайти лише на дуже старих машинах під керуванням Windows NT до 3.5. Читайте далі, щоб дізнатися більше про ці формати та чим вони відрізняються один від одного.
FAT/FAT32, exFAT
FAT (англ. File Allocation Table, Таблиця розміщення файлів) — це один із найпростіших типів ФС, який існує з 1980-х років і походить від старої операційної системи MS-DOS від Microsoft. Тож не дивно, що FAT з самого початку була призначена для сховищ невеликої ємності.
Як випливає з назви, в основі цієї файлової системи лежить таблиця, яка діє як показник її вмісту. Загальна структура цієї ФС складається з трьох окремих областей:
-
Завантажувальний сектор;
-
Таблиця розміщення файлів (File Allocation Table або FAT);
-
Область зберігання даних.
Завантажувальний сектор — це найперший сектор будь-якого розділу, відформатованого у FAT, який містить важливу інформацію про його організацію.
Далі йде основна Таблиця розміщення файлів (FAT), а також її резервна копія, до якої можна отримати доступ, якщо виникне проблема з читанням оригінальної.
Більша частина розділу належить до області зберігання даних, яка розділена на кластери. Кластер складається з суміжних секторів і використовується як мінімальна одиниця розподілу пам'яті. Його розмір є фіксованим, але може коливатися від 512 байт до 64 кілобайт, залежно від розміру тому та версії FAT. Файл, незалежно від того, наскільки він малий, займає весь кластер, а незайнятий простір, таким чином, витрачається даремно. Якщо для файлу потрібні кілька кластерів, система може зайняти послідовний ланцюжок кластерів або розмістити його у кластери, розкидані по всьому тому, що призводить до фрагментації файлу.
Кожен кластер має відповідний запис у Таблиці розміщення файлів. Нульове значення у записі означає, що кластер на даний момент не використовується, тоді як не нульове може вказувати на наступний кластер того самого файлу або спеціальний індикатор його кінця.
Каталоги, як і файли, знаходяться в області зберігання даних. Вони складаються з записів каталогу довжиною 32 байти, кожен з яких описує файл, що зберігається в цьому каталозі (або його підкаталозі). Окрім імені, розміру та інших атрибутів файлу, запис каталогу містить інформацію про перший кластер файлу. Отже, можна виявити, де починається необхідний файл, звернувшись до відповідного запису каталогу, а будь-який наступний кластер можна знайти через Таблицю розміщення файлів, використовуючи її як список з посиланнями.
З часом FAT була перероблена декілька разів. За оригінальною версією послідувала FAT12, потім FAT16 і, нарешті, FAT32. Цифри в їхніх назвах означають кількість бітів, які використовуються для адресації одного кластера: 12 бітів у FAT12, 16 бітів у FAT16 і 32 біти у FAT32 відповідно.
FAT12 і FAT16 використовувалися на старих дискетах і не мають широкого застосування в наш час. А ось FAT32 все ще активно використовується, головним чином завдяки своїй широкій сумісності. До неї можна отримати доступ майже з будь-якої операційної системи, включаючи macOS і Linux, що робить її гарною альтернативою для портативних пристроїв, таких як карти пам'яті та USB-накопичувачі. Цей формат також підтримується смартфонами, цифровими камерами, відеомагнітофонами, ігровими консолями та іншими гаджетами.
Однак FAT32 не має нативної підтримки сховищ ємністю понад 32 ГБ. З цієї причини її можна використовувати на сумісних з Windows зовнішніх накопичувачах або розділах диска розміром менше 32 ГБ, якщо вони відформатовані за допомогою вбудованого інструменту цієї ОС, або до 2 ТБ, якщо для форматування використовувалися інші засоби. Ця файлова система також не дозволяє створювати файли, розмір яких перевищує 4 ГБ.
Для вирішення цієї проблеми було розроблено exFAT (англ. Extended File Allocation Table, Розширена таблиця розміщення файлів). Вона не має жодних суттєвих обмежень щодо розміру та часто використовується на зовнішніх жорстких дисках, твердотільних накопичувачах, флеш-накопичувачах USB великої ємності тощо. Проте технологія в її основі вже застаріла та має багато інших обмежень, які роблять її непридатною для переважного використання в сучасній комп'ютерній техніці.
NTFS
NTFS (англ. New Technology File System, Файлова система нової технології) була представлена в 1993 році разом з Windows NT і наразі є найпоширенішою файловою системою комп'ютерів кінцевих користувачів під керуванням Windows. Операційні системи лінійки Windows Server також використовують цей формат.
NTFS у багатьох аспектах краща за FAT. Вона досить надійна завдяки журналюванню та пропонує більше функцій, включаючи контроль доступу, шифрування, стиснення файлів тощо. Крім того, вона використовує вдосконалені методи організації даних, які дозволяють краще використовувати простір для зберігання та роблять її набагато менш схильною до фрагментації. Вся файлова система спирається на кілька службових файлів:
-
Файл $Boot;
-
Файл $MFT (англ. Master File Table, Головна файлова таблиця);
-
Файл $Bitmap;
-
$LogFile та інші.
Файл $Boot бере участь у процесі завантаження і містить багато важливих параметрів ФС.
Головна файлова таблиця (MFT) має запис для кожного файлу у файловій системі. Ці записи називаються атрибутами і можуть містити будь-яку інформацію, від назви файлу, розміру, дозволів, часу створення/останньої зміни до фактичного вмісту. Якщо цей вміст завеликий, щоб поміститися в запис Головної файлової таблиці (розмір якого становить 1024 байти), NTFS виділяє для нього кластери за межами Таблиці і створює вказівники на їх розташування. Інші атрибути також можуть бути занадто великими для запису у MFT, наприклад, довгі імена файлів. Такі атрибути також отримують окремі кластери.
Кластери зазвичай виділяються послідовностями, які називаються екстентами. NTFS завжди намагається розмістити вміст в одному екстенті. Проте, якщо суміжні кластери недоступні, вона створює новий екстент в іншому місці, розділяючи файл на фрагменти.
Каталоги в NTFS зберігаються як файли, але замість типового вмісту (даних) у таких файлах зберігаються списки імен файлів і посилань, що ідентифікують ці файли.
Файл $Bitmap відстежує стан кластерів. Кожен біт у ньому представляє один кластер і може мати значення 1, коли кластер зайнятий, або 0, коли він вільний.
Перш ніж змінити будь-яку зі своїх ключових структур, NTFS спочатку записує ці зміни до $LogFile. Цей журнал дає можливість відновити їх у разі будь-яких невідповідностей, які можуть бути спричинені збоєм під час оновлення. Якщо під час нормальної роботи виникає помилка, NTFS визначає несправний кластер, занотовує його у файл $BadClus і копіює дані в інше місце.
Завдяки своїй багатофункціональності та ефективній організації даних NTFS добре підходить для внутрішнього використання на комп'ютерах Windows. З іншого боку, такі пристрої, як карти пам'яті чи флеш-накопичувачі USB, можуть потребувати більш легкої файлової системи, яка до того ж залишатиметься доступною навіть за межами середовища Windows.
ReFS
ReFS (англ. Resilient File System, Гнучка файлова система) — остання розробка Microsoft, випущена разом з Windows Server 2012 і пізніше додана до Windows 8.1. Зараз вона також доступна на Windows 11.
ReFS була розроблена для усунення певних недоліків NTFS, зокрема тих, що стосуються пошкодження даних. Завдяки механізму Копіювання при записуванні (англ. Copy-on-Write (CoW)) вона має набагато вищу стійкість до збоїв. Під час редагування існуючих метаданих ReFS зберігає їх копію в іншій області носія даних і замість того, щоб перезаписувати їх прямо на місці, оновлює копію та створює посилання з нової копії на відповідний файл. Таким чином, в різних місцях на носії зберігається значна кількість старих копій, що дозволяє легко відновити цілісність файлової системи та запобігти втраті даних. ReFS також використовує контрольні суми (checksums), які дозволяють швидко виявляти будь-які можливі пошкодження даних.
Архітектура ReFS кардинально відрізняється від архітектури інших ФС Windows. Вона використовує B+-дерева як основну структуру на диску для представлення як метаданих, так і даних файлів. Таке дерево складається з кореня, внутрішніх вузлів і листя. Кожен вузол дерева має впорядкований список ключів або вказівників на вузли нижчого рівня (листя).
Така конструкція робить ReFS оптимальним форматом для систем зберігання великого розміру та високої доступності. Але, незважаючи на свої очевидні переваги, вона на настільки стабільна, як NTFS, і не може забезпечити сумісність з іншими пристроями на базі Windows.
HPFS
HPFS (англ. High Performance File System, Високопродуктивна файлова система) була створена корпорацією Microsoft у співпраці з IBM і представлена разом з OS/2 1.20 у 1989 році як файлова система для серверів, яка може забезпечити набагато кращу продуктивність порівняно з FAT.
На відміну від FAT, яка просто виділяє будь-який перший вільний кластер на диску для фрагмента файлу, HPFS намагається розміщувати файли в суміжних блоках або принаймні таким чином, щоб його фрагменти (так звані екстенти) були розташовані максимально близько один до одного.
На початку HPFS є три блоки керування, що займають 18 секторів: завантажувальний блок, суперблок і запасний блок.
Решта простору зберігання поділена на порції суміжних секторів, які називаються смугами, по 8 МБ кожна. Смуга має власну бітову мапу (bitmap) розподілу секторів, що показує, які сектори зайняті (1 – зайнятий, 0 – вільний).
Кожен файл і каталог має власний F-вузол, розташований поруч із ним на диску – ця структура містить інформацію про місцезнаходження файлу та його розширені атрибути. Для зберігання каталогів використовується спеціальна смуга каталогів, розташована в центрі диска, а сама структура каталогів являє собою збалансоване дерево із записами в алфавітному порядку.
Менше з тим, HPFS мала значні обмеження і з часом застаріла. Вона перестала підтримуватись в Windows, починаючи з NT 4.
Підказка: Інформацію про перспективи відновлення даних з різних типів ФС, які використовує Windows, можна знайти в статтях про особливості відновлення даних у різних ОС і можливості відновлення даних. За детальними інструкціями і практичними рекомендаціями, будь ласка, зверніться до керівництва, присвяченого відновленню даних з Windows.
Якщо вас цікавлять "рідні" формати популярних операційних систем, відмінних від Windows, будь ласка, перегляньте відповідну статтю:
Останнє оновлення: 26 квітня 2023