Що таке файлова система Windows. Файлова система в Android-пристроях

Матеріал до оглядової лекції №33

для студентів спеціальності

"Програмне забезпечення інформаційних технологій"

доцента кафедри ІВТ, к.т.н. Лівак О.М.

СИСТЕМИ УПРАВЛІННЯ ФАЙЛАМИ

Основні поняття, факти

Призначення. Особливості файлових системFAT,VFAT,FAT 32,HPFS,NTFS. Файлові системи ОС UNIX (s5, ufs), ОС Linux Ext2FS. Системні області диска (розділу, томи). Принципи розміщення файлів та зберігання інформації про розташування файлів. Організація каталогів. Обмеження доступу до файлів та каталогів.

Навички та вміння

Використання знань про структуру файлової системи для захисту та відновлення комп'ютерної інформації (файлів та каталогів). Організація розмежування доступу до файлів.

Файлова система. Структура файлової системи

Дані на диску зберігаються як файли. Файл - це частина диска.

Для керування файлами призначені системи керування файлами.

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

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

Система управління файлами є основною підсистемою абсолютної більшості сучасних ОС.

За допомогою системи керування файлами

· Зв'язуються за даними всі системні обробні програми;

· Вирішуються проблеми централізованого розподілу дискового простору та управління даними;

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

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

Постараємося розрізняти файлову систему та систему керування файлами.

Термін "файлова система" визначає принципи доступу до даних, організованих у файли.

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

Отже, для роботи з файлами, організованими відповідно до деякої файлової системи, для кожної ОС має бути розроблена відповідна система керування файлами. Ця система УФ працюватиме лише у тій ОС, на яку вона створена.

Для сімейства ОС Windows в основному використовуються файлові системи: VFAT, FAT 32, NTFS.

Розглянемо структуру цих файлових систем.

У файловій системі FAT дисковий простір будь-якого логічного диска поділяється на дві області:

· Системну область та

· Область даних.

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

Системна область складається з наступних компонентів:

· Завантажувального сектора, що містить завантажувальний запис (boot record);

· Зарезервованих секторів (їх може і не бути);

· Таблиці розміщення файлів (FAT, File Allocation Table);

· Кореневого каталогу (Root directory, ROOT).

Ці компоненти розташовані на диску один за одним.

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

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

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

· Зменшити розмір таблиці FAT;

· Зменшити фрагментацію файлів;

· скорочується довжина ланцюжків файлу Þ пришвидшується доступ до файлу.

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

У сучасних файлових системах (FAT 32, HPFS, NTFS) ця проблема вирішується за рахунок обмеження розміру кластера (максимум 4 Кбайта)

Картою області даних є Т абліця розміщення файлів (File Allocation Table - FAT) Кожен елемент таблиці FAT (12, 16 чи 32 біт) відповідає одному кластеру диска і характеризує його стан: вільний, зайнятий чи є збійним кластером (bad cluster).

· Якщо кластер розподілений будь-якому файлу (тобто, зайнятий), то відповідний елемент FAT містить номер наступного кластера файлу;

· Останній кластер файлу відзначається числом у діапазоні FF8h – FFFh (FFF8h – FFFFh);

· Якщо кластер є вільним, він містить нульове значення 000h (0000h);

· Кластер, непридатний для використання (збійний), відзначається числом FF7h (FFF7h).

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

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

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

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

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

Для перегляду та редагування таблиці FAT можна використовувати утилітуDiskEditor.

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

Кореневий каталог описує файли та інші каталоги. Елементом каталогу є дескриптор (описувач) файлу.

Дескриптор кожного файлу та каталогу включає його

· ім'я

· Розширення

· дату створення або останньої модифікації

· час створення або останньої модифікації

· атрибути (архівний, атрибут каталогу, атрибут тома, системний, прихований, тільки для читання)

· Довжину файлу (для каталогу - 0)

· Зарезервоване поле, яке не використовується

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

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

Для перегляду та редагування кореневого каталогу ROOT також можна використовувати утилітуDiskEditor.

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

Файлова система VFAT (віртуальна FAT) вперше з'явилася у Windows for Workgroups 3.11 і була призначена для файлового вводу/виводу у захищеному режимі.

Використовується ця файлова система Windows 95.

Підтримується вона також у Windows NT 4.

VFAT - це "рідна" 32-розрядна файлова система Windows 95. Її контролює драйвер VFAT. VXD.

VFAT використовує 32-розрядний код для всіх файлових операцій, може використовувати 32-розрядні драйвери захищеного режиму.

АЛЕ, елементи таблиці розміщення файлів залишаються 12- або 16-розрядними, тому на диску використовується та ж структура даних (FAT). Тобто. ф ормат таблиціVFAT такий же, як і формат FAT.

VFAT поряд з іменами "8.3" підтримує довгі імена файлів. (Часто говорять, що VFAT – це FAT з підтримкою довгих імен).

Основний недолік VFAT - великі втрати на кластеризацію при великих розмірах логічного диска та обмеження на розмір логічного диска.

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

Це нова реалізація ідеї використання таблиці FAT.

FAT 32 – це повністю самостійна 32-розрядна файлова система.

Вперше використовувалася у Windows OSR 2 (OEM Service Release 2).

В даний час FAT 32 використовується в Windows 98 та Windows ME.

Вона містить численні вдосконалення та доповнення порівняно з попередніми реалізаціями FAT.

1. Набагато ефективніше витрачає дискове простір з допомогою те, що використовує кластери меншого розміру (4 Кб) - підраховано, що економиться до 15%.

2. Має розширений завантажувальний запис, який дозволяє створювати копії критичних структур даних Þ підвищує стійкість диска до порушень структур диска

3. Може використовувати резервну копію FAT замість стандартної.

4. Може переміщувати кореневий каталог, тобто кореневий каталог може перебувати в довільному місці Þ знімає обмеження розмір кореневого каталогу (512 елементів, т.к. ROOT мав займати один кластер).

5. Удосконалено структуру кореневого каталогу

З'явилися додаткові поля, наприклад, час створення, дата створення, дата останнього доступу, контрольна сума

Як і раніше, для довгого імені файлу використовується кілька дескрипторів.

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

HPFS (High Performance File System) - високопродуктивна файлова система.

HPFS вперше з'явилася в OS/2 1.2 та LAN Manager.

Перерахуємо Основні особливості HPFS.

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

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

· Система HPFS прагне розташувати файл у суміжних блоках, або, якщо такої можливості немає, розмістити його на диску таким чином, щоб екстенти(Фрагменти) файлу фізично були якомога ближче один до одного. Такий підхід суттєво зменшує час позиціонування головок запису/читанняжорсткого диска та час очікування (затримка між встановленням головки читання/запису на потрібну доріжку). Нагадаємо, що у FAT файлі просто виділяється перший вільний кластер.

Екстенти(extent ) - Фрагменти файлу, що розташовуються в суміжних секторах диска. Файл має принаймні один екстент, якщо він не фрагментований, а в іншому випадку - кілька екстентів.

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

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

Розширені атрибути (Extended attributes, EAs ) дозволяють зберігати додаткову інформацію про файл. Наприклад, кожному файлу може бути зіставлено його унікальне графічне зображення (значок), опис файлу, коментар, відомості про власника файлу і т.д.

C труктура розділу HPFS


На початку розділу із встановленою HPFS розташовано три керуючих блоку:

· Завантажувальний блок (boot block),

· Додатковий блок (super block) і

· запасний (резервний) блок (spare block).

Вони займають 18 секторів.

Решта дискового простору в HPFS розбита на частини з суміжних секторів - смуги(Band - смуга, стрічка). Кожна смуга займає на диску 8 Мб.

Кожна смуга має свою власну бітову карту розподілу секторів.Битовая карта показує, які сектори цієї лінії зайняті, які - вільні. Кожному сектору смуги даних відповідає один біт у її бітовій карті. Якщо біт = 1, то сектор зайнятий, якщо 0 – вільний.

Бітові карти двох смуг розташовуються на диску поруч, так само розташовуються самі смуги. Тобто послідовність смуг та карт виглядає як на рис.

Порівняємо зFAT. Там на весь диск лише одна "бітова карта" (таблиця FAT). І до роботи з нею доводиться переміщати головки читання/записи загалом через половину диска.

Саме для того, щоб скоротити час позиціонування головок читання/запису жорсткого диска, HPFS диск розбитий на смуги.

Розглянемо керуючі блоки.

Завантажувальний блок (bootblock)

Містить ім'я тома, його серійний номер, блок параметрів BIOS та програму початкового завантаження.

Програма початкового завантаження знаходить файл OS 2 LDR , зчитує його на згадку і передає управління цій програмі завантаження ОС, яка, своєю чергою, завантажує з диска на згадку ядро ​​OS/2 - OS 2 KRNL. І вже OS 2 KRIML за допомогою відомостей із файлу CONFIG. SYS завантажує на згадку про всі інші необхідні програмні модулі і блоки даних.

Завантажувальний блок розташований у секторах з 0 по 15.

СуперБлок(super block)

Містить

· Покажчик на список бітових карт (bitmap block list). У цьому списку перераховані всі блоки на диску, в яких розташовані бітові картки, які використовуються для виявлення вільних секторів;

· Покажчик на список дефектних блоків (bad block list). Коли система виявляє пошкоджений блок, він вноситься до цього списку і для зберігання інформації не використовується;

· покажчик на групу каталогів (directory band),

· покажчик на файловий вузол (F-node) кореневого каталогу,

· дату останньої перевірки розділу програмою CHKDSK;

· Інформація про розмір смуги (у поточній реалізації HPFS - 8 Мбайт).

Super block розміщується у 16 ​​секторі.

Резервнийблок(spare block)

Містить

· покажчик на карту аварійного заміщення (hotfix map або hotfix-areas);

· покажчик на список вільних запасних блоків (directory emergency free block list);

· ряд системних прапорів та дескрипторів.

Цей блок розміщується у 17 секторі диска.

Резервний блок забезпечує високу стійкість до відхилення файлової системи HPFS і дозволяє відновлювати пошкоджені дані на диску.

Принцип розміщення файлів

Екстенти(extent ) - Фрагменти файлу, що розташовуються в суміжних секторах диска. Файл має принаймні один екстент, якщо він не фрагментований, а в іншому випадку - кілька екстентів.

Для скорочення часу позиціонування головок читання/запису жорсткого диска HPFS прагне

1) розташувати файл у суміжних блоках;

2) якщо такої можливості немає, то розмістити екстенти фрагментованого файлу якомога ближче один до одного,

Для цього HPFS використовує статистику, а також намагається умовно резервувати хоча б 4 кілобайти місця в кінці зростаючих файлів.

Принципи зберігання інформації про розташування файлів

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

Кожен F-Node займає один секторі завжди розміщується поблизу свого файлу або каталогу (зазвичай - безпосередньо перед файлом або каталогом). Об'єкт F-Node містить

· Довжину,

· Перші 15 символів імені файлу,

· Спеціальну службову інформацію,

· Статистику з доступу до файлу,

· Розширені атрибути файлу,

· Список прав доступу (або тільки частина цього списку, якщо він дуже великий); якщо розширені атрибути занадто великі для файлового вузла, то записується покажчик на них.

· Асоціативну інформацію про розташування та підпорядкування файлу і т.д.

Якщо файл безперервний, його розміщення на диску описується двома 32-битными числами. Перше число є покажчиком на перший блок файлу, а друге - довжину екстенту (число наступних один за одним блоків, що належать файлу).

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

У файловому вузлі можна розмістити інформацію максимум про вісім екстентів файлу. Якщо файл має більше екстентів, то його файловий вузол записується покажчик на блок розміщення (allocation block ), який може містити до 40 покажчиків на екстенти або, за аналогією з блоком дерева каталогів, на інші блоки розміщення.

Структура та розміщення каталогів

Для зберігання каталогів використовується смуга, що знаходиться в центрі диска.

Ця смуга називається directoryband.

Якщо вона повністю заповнена, HPFS починає розміщувати каталоги файлів в інших шпальтах.

Розташування цієї інформаційної структури всередині диска значно скорочує середній час позиціонування головок читання/запису.

Однак істотно більший (порівняно з розміщенням Directory Band у середині логічного диска) внесок у продуктивність HPFS дає використання методузбалансованих двійкових дерев для зберігання та пошуку інформації про місцезнаходження файлів.

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

У HPFS структура каталогу є збалансоване дерево із записами, розташованими в алфавітному порядку.

Кожен запис, що входить до складу дерева, містить

· атрибути файлу,

· покажчик на відповідний файловий вузол,

· інформацію про час і дату створення файлу, час і дату останнього оновлення та звернення,

· Довжині даних, що містять розширені атрибути,

· Лічильник звернень до файлу,

· Довжині імені файлу

· саме ім'я,

· та іншу інформацію.

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

Розмір кожного з блоків, у термінах яких виділяються каталоги у поточній реалізації HPFS, дорівнює 2 Кбайт. Розмір запису, який описує файл, залежить від розміру імені файлу. Якщо ім'я займає 13 байтів (для формату 8.3), то блок із 2 Кбайт вміщує до 40 описників файлів. Блоки пов'язані один з одним у вигляді списку.

Проблеми

При перейменуванні файлів може виникнути так зване перебалансування дерева. Створення файлу, перейменування або стирання може призвести до каскадування блоків каталогів. Фактично, перейменування може зазнати невдачі через брак дискового простору, навіть якщо файл у розмірах не збільшився. Щоб уникнути цього «лиха», HPFS підтримує невеликий пул вільних блоків, які можуть використовуватися при «аварії». Ця операція може зажадати виділення додаткових блоків на заповненому диску. Вказівник на цей пул вільних блоків зберігається в SpareBlock,

Принципи розміщення файлів та каталогів на дискуHPFS:

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

· Каталоги розміщуються в середині дискового простору;

· каталоги зберігаються у вигляді бінарного збалансованого дерева із записами, розташованими в алфавітному порядку.

Надійність зберігання даних у HPFS

Будь-яка файлова система повинна мати засоби виправлення помилок, що виникають при записі інформації на диск. Система HPFS для цього використовує механізм аварійного заміщення ( hotfix).

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

Ця карта є просто парою подвійних слів, кожне з яких є 32-бітовим номером сектора.

Перший номер вказує на дефектний сектор, а другий на той сектор серед наявних запасних секторів, який був обраний для його заміни.

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

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

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

Файлова система NTFS (New Technology File System) містить низку значних удосконалень та змін, які суттєво відрізняють її від інших файлових систем.

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

Однак повноцінних реалізацій для роботи з NTFS поза системою Windows NT поки що немає.

NTFS не підтримується в поширених ОС Windows 98 і Windows Millennium Edition.

Основні особливостіNT FS

· робота на дисках великого обсягу відбувається ефективно (набагато ефективніше, ніж у FAT);

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

· Введено механізм транзакцій, при якому здійснюється журналуванняфайлових операцій Þ суттєве збільшення надійності;

· знято багато обмежень на максимальну кількість дискових секторів та/або кластерів;

Ім'я файлу в NTFS, на відміну від файлових систем FAT і HPFS, може містити будь-які символи, включаючи повний набір національних алфавітів, так як дані представлені в Unicode - 16-бітному уявленні, яке дає 65535 різних символів. Максимальна довжина імені файлу в NTFS – 255 символів.

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

Структура тома із файловою системою NTFS

Розділ NTFS називається томом (volume). Максимально можливі розміри тома (і розміри файлу) становлять 16 ебайт (екзабайт 2**64).

Як і інші системи, NTFS ділить дискове простір тому на кластери - блоки даних, адресовані як одиниці даних. NTFS підтримує розміри кластерів від 512 байт до 64 Кбайт; стандартом вважається кластер розміром 2 або 4 Кбайт.

Весь дисковий простір у NTFS поділяється на дві нерівні частини.


Перші 12% диска відводяться під так звану MFT-зону - простір, який може займати, збільшуючись у розмірі, головний службовий метафайл MFT.

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

Інші 88% тому є звичайним простір для зберігання файлів.

MFT (masterfiletable -загальна таблиця файлів) по суті - це каталог решти файлів диска, у тому числі і себе самого. Він призначений визначення розташування файлів.

MFT складається із записів фіксованого розміру. Розмір запису MFT (мінімум 1 Кб та максимум 4 Кб) визначається під час форматування тома.

Кожен запис відповідає будь-якому файлу.

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

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

Інші частини MFT-файлу можуть розташовуватись, як і будь-який інший файл, у довільних місцях диска.

Метафайли носять службовий характер - кожен із них відповідає за будь-який аспект роботи системи. Метафайли знаходяться у кореневому каталозі NTFS-тому. Усі вони починаються із символу імені «$», хоча отримати будь-яку інформацію про них стандартними засобами складно. У табл. наведено основні метафайли та їх призначення.

Ім'я метафайлу

Призначення метафайлу

$MFT

Сам Master File Table

$MFTmirr

Копія перших 16 записів MFT, розміщена посередині тома

$LogFile

Файл підтримки операцій журналування

$Volume

Службова інформація - мітка тому, версія файлової системи і т.д.

$AttrDef

Список стандартних атрибутів файлів на томі

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

$Bitmap

Карта вільного місця тому

$Boot

Завантажувальний сектор (якщо розділ завантажувальний)

$Quota

Файл, у якому записані права користувачів використання дискового простору (цей файл почав працювати лише у Windows 2000 із системою NTFS 5.0)

$Upcase

Файл - таблиця відповідності великих та великих літер в іменах файлів. У NTFS імена файлів записуються в Unicode (що складає 65 тисяч різних символів) і шукати великі та малі еквіваленти в даному випадку – нетривіальне завдання

У відповідному записі MFT зберігається вся інформація про файл:

· ім'я файлу,

· Розмір;

· Атрибути файлу;

· Положення на диску окремих фрагментів і т. д.

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

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

Файл у томі з NTFS ідентифікується так званою файловим посиланням(File Reference), яка представляється як 64-розрядне число.

· Номери файлу, який відповідає номеру запису в MFT,

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

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

Один із потоків - це і є дані файлу.

Більшість атрибутів файлу - це також потоки.

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

Даний підхід може ефективно використовуватися – наприклад, файлу можна «приліпити» ще один потік, записавши в нього будь-які дані.

Стандартні атрибути для файлів та каталогів у томі NTFS мають фіксовані імена та коди типу.

Каталогв NTFS є спеціальний файл, що зберігає посилання на інші файли та каталоги.

Файл каталогу поділено на блоки, кожен із яких містить

· ім'я файлу,

· Базові атрибути та

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

Внутрішня структура каталогу є бінарним деревом, як у HPFS.

Кількість файлів у кореневому та некореневому каталогах не обмежена.

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

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

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

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

Основний недолік файлової системиNTFS- службові дані займають багато місця (наприклад, кожен елемент каталогу займає 2 Кбайт); - для малих розділів службові дані можуть займати до 25% обсягу носія.

Þ Система NTFS не може використовуватись для форматування флоппі-дисків. Не варто використовувати її для форматування розділів об'ємом менше 100 Мбайт.

Файлова система ОС UNIX

У світі UNIX існує кілька різних видів файлових систем зі своєю структурою зовнішньої пам'яті. Найбільш відомі традиційна файлова система UNIX System V (s5) та файлова система сімейства UNIX BSD (ufs).

Розглянемо 5.

Файл у системі UNIX є безліч символів з довільним доступом.

Файл має таку структуру, яку накладає користувач.

Файлова система Unix, це ієрархічна, розрахована на багато користувачів файлова система.

Файлова система має деревоподібну структуру. Вершинами (проміжними вузлами) дерева є каталоги з посиланнями інші каталоги чи файли. Листя дерева відповідає файлам або порожнім каталогам.

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

Структура диска

Диск поділено на блоки. Розмір блоку даних визначається при форматуванні файлової системи командою mkfs і може бути встановлений 512, 1024, 2048, 4096 або 8192 байт.

Вважаємо по 512 байт (розмір сектора).

Дисковий простір поділяється на такі області (див. рис.):

· Завантажувальний блок;

· Керуючий суперблок;

· Масив i-вузлів;

· Область для зберігання вмісту (даних) файлів;

· Сукупність вільних блоків (пов'язаних до списку);

Блок початкового завантаження

Суперблок

i - вузол

. . .

i - вузол

Зауваження.Для файлової системи UFS - все це для групи циліндрів повторюється (крім Boot-блоку) + виділено спеціальну область для опису групи циліндрів

Блок початкового завантаження

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

Boot-блок містить програму розкручування, яка служить для початкового запуску ОС UNIX. У файлових системах s 5 реально використовується boot-блок лише кореневої файлової системи. У додаткових файлових системах ця область є, але не використовується.

Суперблок

Він містить оперативну інформацію про стан файлової системи та дані про параметри налаштування файлової системи.

Зокрема суперблок містить таку інформацію

· Кількість i-вузлів (індексних дескрипторів);

· Розмір розділу???;

· Список вільних блоків;

· Список вільних i-вузлів;

· та інше.

Звернімо увагу! Вільний простір на диску утворює пов'язаний список вільних блоків. Цей список зберігається у суперблоці.

Елементами списку є масиви з 50 елементів (якщо блок = 512 байт, то елемент = 16 біт):

· В елементах масиву №№1-48 записані номери вільних блоків простору блоків файлів з 2 до 49.

· У №0 елементі міститься покажчик на продовження списку, а

· В останньому елементі (№ 49) міститься покажчик на вільний елемент у масиві.

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

Оскільки розмір масиву - 50 елементів, то можливі дві критичні ситуації:

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

2. Коли вміст елементів масиву вільних блоків вичерпався (у разі нульовий елемент масиву дорівнює нулю) Якщо цей елемент нулю не дорівнює, це означає, що є продовження масиву. Це продовження зчитується у копію суперблоку в оперативній пам'яті.

Список вільнихi-вузлів. Це буфер, що складається із 100 елементів. У ньому знаходиться інформація про 100 номерів i-вузлів, які вільні на даний момент.

Суперблок завжди знаходиться у ОЗУ

Þ всі операції (звільнення та заняття блоків та i-вузлів відбуваються в ОЗУ Þ мінімізація обмінів із диском.

Але!Якщо вміст суперблоку не буде записано на диск і вимкнено живлення, то виникнуть проблеми (невідповідність реального стану файлової системи та вмісту суперблоку). Але це вже вимога до надійності апаратури системи.

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

Область індексних дескрипторів

Це масив описів файлів, званих i -вузлами (i -node ). (64-х байтні?)

Кожен індексний описник (i -вузол) файлу містить:

· Тип файлу (файл/каталог/спеціальний файл/fifo/socket)

· Атрибути (права доступу) – 10

· Ідентифікатор власника файлу

· Ідентифікатор групи-власника файлу

· Час створення файлу

· Час модифікації файлу

· Час останнього доступу до файлу

· Довжина файлу

· Кількість посилань до даного i-вузла з різних каталогів

· Адреси блоків файлу

!Зверніть увагу. Тут немає імені файлу

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

Якщо файл перевищує десять блоків, починає працювати наступний механізм: 11-й елемент поля містить номер блоку, в якому розміщені 128(256) посилань на блоки даного файлу. У тому випадку, якщо файл ще більше - то використовується 12й елемент поля - він містить номер блоку, в якому міститься 128 (256) номерів блоків, де кожен блок містить 128 (256) номерів блоків файлової системи. А якщо файл ще більший, то використовується 13 елемент – де глибина вкладеності списку збільшена ще на одиницю.

Таким чином, ми можемо отримати файл розміром (10+128+128 2 +128 3)*512.

Це можна уявити в наступному вигляді:

Адреса 1-го блоку файлу

Адреса 2-го блоку файлу

Адреса 10-го блоку файлу

Адреса блоку непрямої адресації (блоку з 256 адресами блоків)

Адреса блоку 2-ї непрямої адресації (блоку з 256 адресами блоків з адресами)

Адреса блоку 3-ї непрямої адресації (блоки з адресами блоків з адресами блоків з адресами)

Захист файлу

Тепер звернемо увагу на ідентифікатори власника та групи та біти захисту.

В ОС Unix використовується трирівнева ієрархія користувачів:

Перший рівень – всі користувачі.

Другий рівень – групи користувачів. (Всі користувачі поділені на групи.

Третій рівень – конкретний користувач (Групи складаються з реальних користувачів). У зв'язку з цією трирівневою організацією користувачів кожен файл має три атрибути:

1) Власник файлу. Цей атрибут пов'язаний з одним користувачем, який автоматично призначається системою власником файлу. Власником можна стати за промовчанням, створивши файл, а також є команда, яка дозволяє міняти власника файлу.

2) Захист доступу до файлу. Доступ до кожного файлу обмежується за трьома категоріями:

· Права власника (що може робити власник з цим файлом, у загальному випадку - не обов'язково все, що завгодно);

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

· Решта користувачів системи;

За цими трьома категоріями регламентуються три дії: читання з файлу, запис у файл і виконання файлу (у мнемоніці системи R,W,X, відповідно). У кожному файлі за цими трьома категоріями визначено - який користувач може читати, який писати, а хто може запускати його як процес.

Організація каталогів

Каталог з погляду ОС - це звичайний файл, в якому розміщені дані про всі файли, що належать каталогу.

Елемент каталогу складається з двох полів:

1) номер i-вузла (порядковий номер у масиві i-вузлів) і

2) ім'я файлу:

Кожен каталог містить два спеціальні імені: '.' - сам каталог; '..' - батьківський каталог.

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

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

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

Отже, щоб отримати доступ до файлу на ім'я,операційна система

1. знаходить це ім'я в каталозі, що містить файл,

2. отримує номер i-вузла файлу,

3. за номером знаходить i- вузол в області i-вузлів,

4. з i-вузла отримує адреси блоків, в яких розташовані дані файлу,

5. за адресами блоків зчитує блоки з даних.

Структура дискового розділу в EXT2 FS

Весь простір розділу поділяється на блоки. Блок може мати розмір від 1, 2 або 4 кілобайти. Блок є адресованою одиницею дискового простору.

Блоки в свою область об'єднуються в групи блоків. Групи блоків у файловій системі та блоки всередині групи нумеруються послідовно, починаючи з 1. Перший блок на диску має номер 1 і належить групі з номером 1. Загальна кількість блоків на диску (розділ диска) є дільником об'єму диска, вираженого в секторах. А число груп блоків має ділити число блоків, оскільки остання група блоків може бути повної. Початок кожної групи блоків має адресу, яка може бути отримана як ((номер групи - 1)* (число блоків у групі)).

Кожна група блоків має однакову будову. Її структура представлена ​​у таблиці.

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

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

Після суперблоком розташовано опис групи блоків (Group Descriptors). Цей опис містить:

Адреса блоку, що містить бітову карту блоків (block bitmap) цієї групи;

Адреса блоку, що містить бітову карту індексних дескрипторів (inode bitmap) цієї групи;

Адреса блоку, що містить таблицю індексних дескрипторів (inode table) цієї групи;

Лічильник числа вільних блоків у цій групі;

Число вільних індексних дескрипторів у цій групі;

Число індексних дескрипторів у цій групі, які є каталогами

та інші дані.

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

Файлова система Ext 2 характеризується:

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

Внутрішнє представлення файлів

Кожен файл у системі Ext 2 має унікальний індекс. Індекс містить інформацію, необхідну для будь-якого процесу для того, щоб звернутися до файлу. Процеси звертаються до файлів, використовуючи чітко визначений набір системних дзвінків та ідентифікуючи файл рядком символів, які є складовим ім'ям файлу. Кожне складене ім'я однозначно визначає файл, завдяки чому ядро ​​системи перетворює це ім'я в індекс файлу. Індекс включає таблицю адрес розташування інформації на диску. Так як кожен блок на диску адресується за своїм номером, у цій таблиці зберігається сукупність номерів дискових блоків. З метою підвищення гнучкості ядро ​​приєднує до файлу по одному блоку, дозволяючи інформації файлу розкидати по всій файловій системі. Але така схема розміщення ускладнює завдання пошуку даних. Таблиця адрес містить список номерів блоків, що містять інформацію, що належить файлу.

Індексні дескриптори файлів

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

Індексний дескриптор файлу містить таку інформацію:

- Тип і права доступу до файлу.

Ідентифікатор власника файлу (Owner Uid).

Розмір файлу у байтах.

Час останнього звернення файлу (Access time).

Час створення файлу.

Час останньої модифікації файлу.

Час видалення файлу.

Ідентифікатор групи (GID).

Лічильник числа зв'язків (Links count).

Число блоків, які займає файл.

Флагіфайла (File flags)

Зарезервовано для ОС

Вказівники на блоки, в яких записані дані файлу (приклад прямої та непрямої адресації на рис.1)

Версія файлу (для NFS)

ACL файлу

ACL каталогу

Адреса фрагмента (Fragment address)

Номер фрагменту (Fragment number)

Розмір фрагмента (Fragment size)

Каталоги

Каталоги є файлами.

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

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

Додаткові можливості EXT2 FS

На додаток до стандартних можливостей Unix, EXT2fs надає деякі додаткові можливості, зазвичай не підтримуються файловими системами Unix.

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

Під час монтування системи можуть бути встановлені деякі особливості, пов'язані з файловими атрибутами. Опція mount дозволяє адміністратору вибрати особливості створення файлів. У файловій системі з особливостями BSD, файли створюються з тим же ідентифікатором групи, як і у батьківського каталогу. Особливості System V дещо складніші. Якщо у каталогу біт setgid встановлений, то створювані файли насідають ідентифікатор групи цього каталогу, а підкаталоги успадковують ідентифікатор групи і біт setgid. У протилежному випадку, файли і каталоги створюються з основним ідентифікатором групи викликаючого процесу.

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

EXT2fs дозволяє при створенні файлової системи вибрати розмір логічного блоку. Він може бути розміром 1024, 2048 або 4096 байт. Використання блоків великого об'єму призводить до прискорення операцій введення/виводу (оскільки зменшується кількість запитів до диска), і, отже, до меншого переміщення головок. З іншого боку, використання блоків великого об'єму призводить до втрати дискового простору. Зазвичай останній блок файлу використовується не повністю для зберігання інформації, тому зі збільшенням обсягу блоку, підвищується обсяг теряного дискового простору.

EXT2fs дозволяє використовувати прискорені символічні посилання. При застосуванні таких посилань блоки даних файлової системи не використовуються. Ім'я файлу призначення зберігається не в блоці даних, а в самому індексному дескрипторі. Така структура дозволяє зберегти дисковий простір і прискорити обробку символічних посилань. Звичайно, простір, зарезервований під дескриптор, обмежено, тому не кожне посилання може бути представлена ​​як прискорена. Максимальна довжина імені файлу в прискореному посиланні дорівнює 60 символам. У найближчому майбутньому планується розширити цю схему для файлів невеликого обсягу.

EXT2fs слідкує за станом файлової системи. Ядро використовує окреме поле в суперблокі для індикації стану файлової системи. Якщо файлова система змонтована в режимі read/write, її стан встановлюється як "Not Clean". Якщо ж вона демонтована або змонтована заново в режимі read-only, її стан встановлюється в "Clean". Під час завантаження системи і перевірці стану файлової системи, ця інформація використовується для визначення необхідності перевірки файлової системи. Ядро також поміщає в це поле деякі помилки. При визначенні ядром невідповідності, файлова система позначається як "Erroneous". Програма перевірки файлової системи тестує цю інформацію для перевірки системи, навіть якщо її стан є насправді "Clean".

Тривале ігнорування тестування файлової системи іноді може призвести до деяких труднощів, тому EXT2fs включає два методи для регулярної перевірки системи. У суперблоку міститься лічильник монтування системи. Цей лічильник збільшується кожен раз, коли система монтується в режимі read/write. Якщо його значення досягає максимального (воно також зберігається в суперблоку), то програма тестування файлової системи запускає її перевірку, навіть якщо її стан є "Clean". Останній час перевірки і максимальний інтервал між перевірками також зберігається в суперблоку. Коли ж досягається максимальний інтервал між перевірками, то стан файлової системи ігнорується і запускається її перевірка.

Оптимізація продуктивності

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

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

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

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

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

Файлова система визначає принципи зберігання даних на фізичному носії. Наприклад, файлова система визначає, як повинні зберігатися дані файлу, яка інформація (наприклад, ім'я, дата створення тощо) про файл має зберігатися і яким чином. Формат зберігання даних визначає основні характеристики файлової системи.

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

В даний час існує велика кількість файлових систем, що відрізняються один від одного цільовим використанням (наприклад, орієнтацією тільки на конкретний вид носіїв) та різними характеристиками. У Windows XP, як і в Windows Server 2003, підтримуються такі файлові системи:

  • FAT(File Allocation Table) - файлова система, розроблена для MS-DOS і є основною для Windows 3.x та 9x. Windows XP та Windows Server 2003 підтримують три різновиди FAT: FAT12, FAT16 та FAT32. Перші дві забезпечують сумісність із старими ОС Microsoft. Крім того, FAT12 використовується як формат зберігання даних на гнучких дисках. FAT 32 - модифікована версія FAT, що використовується у Windows 95 OSR2, Windows 98 та Windows Millennium.
  • NTFS(Windows NT file system) – файлова система, розроблена спеціально для Windows NT та успадкована Windows 2000, Windows XP, Windows 2003.
    CDFS(Compact Disk File System) – файлова система компакт-дисків.
    UDF(Universal Disk Format) – універсальний формат дисків, що використовується сучасними магнітооптичними накопичувачами та, насамперед, технологією DVD.

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

Файлові системи FAT12 та FAT16.

Файлова система FAT(File Allocation Table) отримала своє ім'я відповідно до назви методу організації даних – таблиці розподілу файлів. FAT (або FAT16) спочатку була орієнтована на невеликі диски та прості структури каталогу. Потім її вдосконалили для забезпечення роботи з великими дисками та потужними персональними комп'ютерами.

Windows XP і Windows Server 2003 підтримують файлову систему FAT з трьох причин:

  • для можливості оновлення операційної системи з попередніх версій Windows;
  • для сумісності з іншими операційними системами при багатоваріантному завантаженні;
  • як формат гнучких дисків.

У назву кожної версії FAT входить число, яке вказує на розрядність, ідентифікацію кластерів на диску. 12-розрядний ідентифікатор кластерів FAT12 обмежує розмір дискового розділу 212 (4096) кластерами. У Windows використовуються кластери розміром від 512 байт до 8 Кб, тому розмір тому FAT12 обмежений 32 Мб. Тому Windows використовує FAT12 як формат 5,25- та 3,5-дюймових дискет, здатних зберігати до 1,44 Мб даних.

FAT16 - за рахунок 16-розрядних ідентифікаторів кластерів - може адресувати до 216 (65536) кластерів. У Windows розмір кластера FAT16 варіюється від 512 б до 64 Кб, тому розмір тому FАТ16 обмежений 4 Гб. Розмір кластерів, які використовуються Windows, залежить від розміру тома.

Розміри кластерів у FAT16 за замовчуванням (у Windows)

Файлова система FAT не забезпечує функції захисту даних та автоматичного відновлення. Тому вона використовується лише якщо альтернативною системою на комп'ютері є MS-DOS або Windows 95/98, а також для передачі даних на гнучких дисках. В іншому використовувати FAT не рекомендується.

Файлова система FAT32.

Модифікована версія FAT - FAT32- дозволяє створювати розділи більші, ніж у FAT16, та застосовувати кластери меншого розміру, що призводить до більш ефективного використання дискового простору. Вперше FAT32 з'явилася у Windows 95 OSR2. Вона також підтримується у Windows 98 та Windows Millennium.

FAT32 використовує 32-розрядні ідентифікатори кластерів, але при цьому резервує старші 4 біти, тому ефективний розмір ідентифікатора кластера становить 28 біт. Оскільки максимальний розмір кластерів FAT32 дорівнює 32 Кб, теоретично FAT32 може працювати із 8-терабайтними томами. Однак реалізація FAT32 у Windows XP / Windows 2003 не дозволяє створювати томи, що перевищують 32 Гб, але ОС може використовувати існуючі томи FAT32 будь-якого розміру.

Розмір кластерів на томах FAT32 (за замовчуванням)

Крім більшої граничної кількості кластерів перевагою FAT32 перед FAT12 і FAT16 є таке:

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

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

Файлова система NTFS - найбільш надійна система, спеціально розроблена для Windows NT і вдосконалена пізніших версіях Windows.

NTFS використовує 64-розрядні індекси кластерів. Це дозволяє NTFS адресувати томи розміром до 1б екзабайт (1б млрд Гб). Однак Windows XP обмежує розміри томів NTFS до значень, за яких можлива адресація 32-розрядними кластерами, тобто до 128 Тб (з використанням кластерів по 64 Кб).

Розмір кластерів на томах NTFS:

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

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

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

Чому смартфон може не запускати програми з картки пам'яті? Чим ext4 принципово відрізняється від ext3? Чому флешка проживе довше, якщо відформатувати її у NTFS, а не у FAT? У чому проблема F2FS? Відповіді криються особливостях будови файлових систем. Про них ми й поговоримо.

Вступ

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

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

Збільшити термін безвідмовної експлуатації допомагають такі властивості сучасних файлових систем, як відкладений запис, дедуплікація та інші просунуті алгоритми. Особливо актуальні вони для дешевих SSD із чіпами пам'яті TLC, флешок та карток пам'яті.

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

Чорний ящик

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

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

На мобільних гаджетах з Android найчастіше зустрічається ext4 у внутрішній пам'яті та FAT32 на картках microSD. Яблучникам же зовсім не різниці, що у них за файлова система: HFS+, HFSX, APFS, WTFS... для них існують тільки красиві значки папок і файлів, намальовані кращими дизайнерами. Найбагатший вибір у лінуксоїдів, але прикрутити підтримку нерідних для операційної системи файлових систем можна і в Windows, і в macOS - про це трохи пізніше.

Загальне коріння

Різних файлових систем створено понад сотню, але актуальними можна назвати трохи більше десятка. Хоча всі вони розроблялися для своїх специфічних застосувань, багато хто в результаті виявився спорідненим на концептуальному рівні. Вони схожі, оскільки використовують однотипну структуру уявлення (мета)даних - B-дерева («бі-дерева»).

Як і будь-яка ієрархічна система, B-дерево починається з кореневого запису і далі розгалужується аж до кінцевих елементів - окремих записів про файли та їх атрибути, або «листя». Основний сенс створення такої логічної структури був у тому, щоб прискорити пошук об'єктів файлової системи на великих динамічних масивах - на кшталт жорстких дисків об'ємом у кілька терабайт або ще більших RAID-масивів.

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

Як і збалансовані дерева, B-trees мають однакову довжину шляхів від кореня до будь-якого листа. Замість зростання вгору вони сильніше розгалужуються і більше ростуть у ширину: всі точки розгалуження у B-дерева зберігають безліч посилань на дочірні об'єкти, завдяки чому їх легко відшукати за меншу кількість звернень. Велика кількість покажчиків знижує кількість найдовших дискових операцій – позиціонування головок під час читання довільних блоків.

Концепція B-дерев була сформульована ще в сімдесятих роках і з тих пір зазнавала різних покращень. У тому чи іншому вигляді вона реалізована в NTFS, BFS, XFS, JFS, ReiserFS та безлічі СУБД. Усі вони – родичі з погляду базових принципів організації даних. Відмінності стосуються деталей, часто досить важливих. Недолік у родинних файлових систем теж загальний: всі вони створювалися для роботи саме з дисками ще до появи SSD.

Флеш-пам'ять як двигун прогресу

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

Пов'язане це обмеження з тим, що в NAND-пам'яті всі осередки об'єднані в блоки, кожен з яких має лише одне загальне підключення до шини, що управляє. Не будемо вдаватися до деталей сторінкової організації та розписувати повну ієрархію. Важливим є сам принцип групових операцій із осередками і те що, що розміри блоків флеш-пам'яті зазвичай більше, ніж блоки, адресовані будь-який файлової системі. Тому всі адреси та команди для накопичувачів із NAND flash треба транслювати через шар абстрагування FTL (Flash Translation Layer).

Сумісність із логікою дискових пристроїв та підтримку команд їх нативних інтерфейсів забезпечують контролери флеш-пам'яті. Зазвичай FTL реалізується саме в їх прошивці, але може (частково) виконуватися і на хості – наприклад, компанія Plextor пише для своїх SSD драйвери, що прискорюють запис.

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

Такий підхід нагадує армійські будні: щоб наказати одному солдатові, сержант робить загальну побудову, викликає бідолаху з ладу і командує іншим розійтися. У рідкісній нині NOR-пам'яті організація була спецназівська: кожен осередок управлявся незалежно (кожний транзистор мав індивідуальний контакт).

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

Модулі з однорівневими осередками SLC мали заявлений ресурс у 100 тисяч циклів перезапису та навіть більше. Багато хто з них досі працює у старих флешках та картках CF. У MLC корпоративного класу (eMLC) ресурс заявлявся в межах від 10 до 20 тисяч, тоді як у звичайної MLC споживчого рівня він оцінюється в 3-5 тисяч. Пам'ять цього типу активно витісняє ще дешевша TLC, у якої ресурс ледве дотягує до тисячі циклів. Утримувати термін життя флеш-пам'яті на прийнятному рівні доводиться за рахунок програмних хитрощів, і нові файлові системи стають одним із них.

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

У корпоративних SSD вбудований контролер – це маленький комп'ютер. Він має величезний буфер пам'яті (півгіга і більше), і він підтримує безліч методів підвищення ефективності роботи з даними, що дозволяє уникати зайвих циклів перезапису. Чіп упорядковує всі блоки в кеші, виконує відкладений запис, робить дедуплікацію на льоту, резервує одні блоки та очищає на тлі інші. Все це диво відбувається абсолютно непомітно для ОС, програм та користувача. З таким SSD дійсно неважливо, яка файлова система використовується. Внутрішні оптимізації значно впливають на продуктивність і ресурс, ніж зовнішні.

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

Від JFFS до F2FS

Однією з перших спроб написати файлову систему, яка враховувала б принципи організації флеш-пам'яті, була JFFS - Journaling Flash File System. Спочатку ця розробка шведської фірми Axis Communications була орієнтована підвищення ефективності пам'яті мережевих пристроїв, які Axis випускала в дев'яностих. Перша версія JFFS підтримувала лише NOR-пам'ять, але вже у другій версії потоваришувала з NAND.

Наразі JFFS2 має обмежене застосування. В основному вона так само використовується в дистрибутивах Linux для вбудованих систем. Її можна знайти в маршрутизаторах, IP-камерах, NAS та інших завсідниках інтернету речей. Загалом скрізь, де потрібно невеликий обсяг надійної пам'яті.

Подальшою спробою розвитку JFFS2 стала LogFS, у якої індексні дескриптори зберігалися окремому файлі. Автори цієї ідеї – співробітник німецького підрозділу IBM Йорн Енгель та викладач Оснабрюкського університету Роберт Мертенс. Вихідний код LogFS викладено на GitHub. Судячи з того, що остання зміна в ньому було зроблено чотири роки тому, LogFS так і не набула популярності.

Проте ці спроби спонукали появу іншої спеціалізованої файлової системи - F2FS. Її розробили в корпорації Samsung, частку якої припадає чимала частина виробленої у світі флеш-пам'яті. У Samsung роблять чіпи NAND Flash для власних пристроїв та на замовлення інших компаній, а також розробляють SSD із принципово новими інтерфейсами замість успадкованих дискових. Створення спеціалізованої файлової системи з оптимізацією для флеш-пам'яті було з погляду Samsung давно назрілою необхідністю.

Чотири роки тому, у 2012 році, у Samsung створили F2FS (Flash Friendly File System). Її ідея хороша, але реалізація виявилася вологою. Ключове завдання під час створення F2FS було просте: знизити кількість операцій перезапису осередків і розподілити навантаження ними максимально рівномірно. Для цього потрібно виконувати операції з кількома осередками в межах того самого блоку одночасно, а не ґвалтувати їх по одній. Значить, потрібна не миттєва перезапис наявних блоків на перший запит ОС, а кешування команд і даних, дозапис нових блоків вільне місце і відкладене стирання осередків.

Сьогодні підтримка F2FS вже офіційно реалізована в Linux (а значить, і в Android), але особливих переваг практично вона поки не дає. Основна особливість цієї файлової системи (відкладений перезапис) призвела до передчасних висновків щодо її ефективності. Старий трюк з кешування навіть обдурював ранні версії бенчмарків, де F2FS демонструвала уявну перевагу не на кілька відсотків (як очікувалося) і навіть не в рази, а на порядки. Просто драйвер F2FS рапортував про виконання операції, яку контролер тільки-но планував зробити. Втім, якщо реальний приріст продуктивності у F2FS і невеликий, то знос осередків виразно буде меншим, ніж при використанні тієї ж ext4. Ті оптимізації, які зможе зробити дешевий контролер, будуть виконані лише на рівні самої файлової системи.

Екстенти та бітові карти

Поки що F2FS сприймається як екзотика для гіків. Навіть у своїх смартфонах Samsung все ще застосовується ext4. Багато хто вважає її подальшим розвитком ext3, але це не зовсім так. Йдеться швидше про революцію, ніж про подолання бар'єру в 2 Тбайт на файл та просте збільшення інших кількісних показників.

Коли комп'ютери були більшими, а файли - маленькими, адресація не була складною. Кожному файлу виділялася кількість блоків, адреси яких заносилися в таблицю відповідності. Так працювала і файлова система ext3, що залишається в строю досі. А ось у ext4 з'явився принципово інший спосіб адресації – екстенти.

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

Змінився в ext4 і сам механізм запису. Тепер розподілення блоків відбувається відразу за один запит. І не заздалегідь, а перед записом даних на диск. Відкладений багатоблочний розподіл дозволяє позбутися зайвих операцій, якими грішила ext3: в ній блоки для нового файлу виділялися відразу, навіть якщо він повністю вміщався в кеші і планувався видалити як тимчасовий.


Дієта з обмеженням FAT

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

Загадка

Відгадай загадку: о дванадцятій вона почала повніти, до шістнадцяти була дурною товстушкою, а до тридцяти двох стала жирною, так і залишившись простушкою. Хто вона?

Правильно, це історія про файлову систему FAT. Вимоги сумісності забезпечили їй погану спадковість. На дискетах вона була 12-розрядною, на жорстких дисках – спочатку 16-бітною, а до наших днів дійшла вже як 32-розрядна. У кожній наступній версії збільшувалася кількість адресованих блоків, але в суті нічого не змінювалося.

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

Навіщо FAT32 потрібна в наші дні? Так само виключно для забезпечення сумісності. Виробники справедливо вважають, що розділ FAT32 зможе прочитати будь-яка ОС. Тому саме його вони створюють на зовнішніх жорстких дисках, USB Flash та картах пам'яті.

Як звільнити флеш-пам'ять смартфона

Картки microSD(HC), які використовуються у смартфонах, за замовчуванням відформатовані у FAT32. Це основна перешкода для встановлення на них програм та перенесення даних із внутрішньої пам'яті. Щоб його подолати, потрібно створити на картці розділ ext3 або ext4. На нього можна перенести всі файлові атрибути (включаючи власника та права доступу), тому будь-яка програма зможе працювати так, ніби запустилася з внутрішньої пам'яті.

Windows не вміє робити на флешках більше одного розділу, але для цього можна запустити Linux (хоча б у віртуалці) або просунуту утиліту для роботи з логічною розміткою – наприклад, MiniTool Partition Wizard Free. Виявивши на картці додатковий первинний розділ з ext3/ext4, додаток Link2SD та аналогічні йому запропонують значно більше варіантів, ніж у випадку з одним розділом FAT32.


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

Флешки і карти пам'яті якраз швидко вмирають через те, що будь-яка зміна в FAT32 викликає перезапис тих самих секторів, де розташовані два ланцюжки файлових таблиць. Зберіг веб-сторінку повністю, і вона перезаписувалася разів сто - з кожним додаванням на флешку чергової дрібної гіфки. Запустив портейбл-софт? Він настворював тимчасові файли і постійно змінює їх під час роботи. Тому краще використовувати на флешках NTFS з її стійкою до збоїв таблицею $MFT. Дрібні файли можуть зберігатися прямо в головній файловій таблиці, а її розширення та копії записуються в різні області флеш-пам'яті. До того ж, завдяки індексації на NTFS пошук виконується швидше.

INFO

Для FAT32 та NTFS теоретичні обмеження за рівнем вкладеності не вказані, але на практиці вони однакові: у каталозі першого рівня можна створити лише 7707 підкаталогів. Любителі пограти в матрьошки оцінять.

Інша проблема, з якою стикається більшість користувачів - на розділ з FAT32 неможливо записати файл більше 4 Гбайт. Причина полягає в тому, що в FAT32 розмір файлу описується 32 бітами в таблиці розміщення файлів, а 2^32 (мінус одиниця, якщо бути точним) дають чотири гіга. Виходить, що на флешку не можна записати ні фільм в нормальній якості, ні образ DVD.

Копіювання великих файлів ще півбіди: при спробі зробити це помилка хоча б видно відразу. В інших ситуаціях FAT32 виступає у ролі бомби уповільненої дії. Наприклад, ти скопіював на флешку портейбл-софт і спочатку користуєшся ним без проблем. Через тривалий час одна з програм (припустимо, бухгалтерської чи поштової) база даних роздмухується, і... вона просто перестає оновлюватися. Файл не може бути перезаписаний, оскільки досяг ліміту 4 Гбайт.

Менш очевидна проблема у тому, що у FAT32 дата створення файлу чи каталогу може бути задана з точністю до двох секунд. Цього недостатньо для багатьох криптографічних програм, що використовують тимчасові мітки. Низька точність атрибуту "дата" - ще одна причина того, чому FAT32 не розглядається як повноцінна файлова система з погляду безпеки. Однак її слабкі сторони можна використати і у своїх цілях. Наприклад, якщо скопіювати на FAT32 будь-які файли з розділу NTFS, то вони очистяться від усіх метаданих, а також успадкованих і спеціально заданих дозволів. FAT просто не підтримує їх.

exFAT

На відміну від FAT12/16/32, exFAT розроблялася спеціально для USB Flash та карт пам'яті великого (≥32 Гбайт) об'єму. Extended FAT усуває вищезгаданий недолік FAT32 - перезаписування одних і тих же секторів при будь-якій зміні. Як у 64-розрядної системи, вона не має практично значних лімітів на розмір одного файлу. Теоретично він може мати довжину 264 байт (16 Ебайт), а картки такого обсягу з'являться нескоро.

Ще одна важлива відмінність exFAT - підтримка списків контролю доступу (ACL). Це вже не та простушка з дев'яностих, проте впровадженню exFAT заважає закритість формату. Підтримка exFAT повноцінно та легально реалізована лише у Windows (починаючи з XP SP2) та OS X (починаючи з 10.6.5). У Linux і *BSD вона підтримується або з обмеженнями, або не цілком легально. Microsoft вимагає ліцензувати використання exFAT, і в цій галузі багато правових суперечок.

Btrfs

Ще один яскравий представник файлових систем на основі B-дерев називається Btrfs. Ця ФС з'явилася в 2007 році і спочатку створювалася в Oracle з прицілом на роботу з SSD та RAID. Наприклад, її можна динамічно масштабувати: створювати нові індексні дескриптори прямо в працюючій системі або розділяти том на підтому без виділення їм вільного місця.

Реалізований у Btrfs механізм копіювання під час запису та повна інтеграція з модулем ядра Device mapper дозволяють робити практично миттєві снапшоти через віртуальні блокові пристрої. Попереднє стиснення даних (zlib або lzo) і дедуплікація прискорюють основні операції, заодно продовжуючи життя флеш-пам'яті. Особливо це помітно при роботі з базами даних (досягається стиснення в 2-4 рази) і дрібними файлами (вони записуються впорядковано великими блоками і можуть зберігатися безпосередньо в листі).

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

Бортові журнали

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

Еxt3 підтримує три режими ведення журналу: зі зворотним зв'язком, упорядкований та повне журналування. Перший режим передбачає запис лише загальних змін (метаданих), що виконується асинхронно стосовно змін самих даних. У другому режимі виконується той самий запис метаданих, але перед внесенням будь-яких змін. Третій режим еквівалентний повному журналу (змін як метаданих, і у самих файлах).

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

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

Реалізований в NTFS підхід у чомусь навіть краще використовуваного за умовчанням ext3. У NTFS додатково періодично створюються контрольні точки, які гарантують виконання всіх відкладених раніше дискових операцій. Контрольні точки не мають нічого спільного з точками відновлення в System Volume Infromation . Це просто службові записи у лозі.

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

Підключаємо сторонні ФС у Windows

Використання файлових систем лімітовано їх підтримкою лише на рівні ОС. Наприклад, Windows не розуміє ext2/3/4 та HFS+, а використовувати їх часом треба. Зробити це можна, додавши відповідний драйвер.

WARNING

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

Відкритий драйвер для читання та запису на розділи ext2/3 з частковою підтримкою ext4. В останній версії підтримуються екстенти та розділи об'ємом до 16 Тбайт. Не підтримуються LVM, списки контролю доступу та розширені атрибути.


Існує безкоштовний плагін для Total Commander. Підтримує читання розділів ext2/3/4.


coLinux - відкритий та безкоштовний порт ядра Linux. Разом з 32-бітним драйвером він дозволяє запускати Linux серед Windows з 2000 по 7 без використання технологій віртуалізації. Підтримує лише 32-бітові версії. Розробка 64-бітної модифікації було скасовано. coLinux дозволяє в тому числі організувати з Windows доступ до розділів ext2/3/4. Підтримку проекту призупинено у 2014 році.

Можливо, у Windows 10 вже є вбудована підтримка характерних для Linux файлових систем, просто вона прихована. На ці думки наводить драйвер рівня ядра Lxcore.sys та сервіс LxssManager, який завантажується як бібліотека процесом Svchost.exe. Докладніше про це дивись у доповіді Алекса Іонеску «Ядро Лінукс, приховане всередині Windows 10», з яким він виступив на Black Hat 2016.


ExtFS for Windows – платний драйвер, що випускається компанією Paragon. Він працює у Windows з 7 по 10, підтримує доступ до томів ext2/3/4 у режимі читання та запису. Забезпечує майже повну підтримку ext4 у Windows.

HFS+ for Windows 10 – ще один пропрієтарний драйвер виробництва Paragon Software. Незважаючи на назву, працює у всіх версіях Windows, починаючи з XP. Надає повний доступ до файлових систем HFS+/HFSX на дисках із будь-якою розміткою (MBR/GPT).

WinBtrfs – рання розробка драйвера Btrfs для Windows. Вже у версії 0.6 підтримує доступ до томів Btrfs як читання, і запис. Вміє обробляти жорсткі та символьні посилання, підтримує альтернативні потоки даних, ACL, два види компресії та режим асинхронного читання/запису. Поки WinBtrfs не може використовувати mkfs.btrfs, btrfs-balance та інші утиліти для обслуговування цієї файлової системи.

Можливості та обмеження файлових систем: зведена таблиця

Фай-ла-ва система-ма Мак-си-маль-ний розмір тома Граничний розмір одного файлу Довжина власного імені файлу Довжина повного імені файлу (включаючи шлях від кореня) По-ділове число файлів та/або каталогів Точність ука-за-ня дати файлу/ката-ло-га Права доступу Жорсткі посилання Сім-вільні посилання Мгно-венні знімки (snap-shots) Стиснення даних у фоні Шиф-ро-ва-ня даних у фоні Діду-плі-ка-ція дан-них
FAT16 2 ГБ секторами по 512 байт або 4 ГБ кластерами по 64 КБ 2 ГБ 255 байт з LFN - - - - - - - - - -
FAT32 8 ТБ секторами по 2 КБ 4 ГБ (2 ^ 32 - 1 байт) 255 байт з LFN до 32 підкаталогів із CDS 65460 10 мс (створення) / 2 с (зміна) ні ні ні ні ні ні ні
exFAT ≈ 128 ПБ (2^32-1 кластерів по 2^25-1 байт) теоретично / 512 ТБ через сторонні обмеження 16 ЕБ (2 ^ 64 - 1 байт) 2796202 у каталозі 10 мс ACL ні ні ні ні ні ні
NTFS 256 ТБ кластерами з 64 КБ або 16 ТБ кластерами з 4 КБ 16 ТБ (Win 7) / 256 ТБ (Win 8) 255 символів Unicode (UTF-16) 32760 символів Unicode, але не більше 255 символів у кожному елементі 2^32-1 100 нс ACL так так так так так так
HFS+ 8 ЕБ (2^63 байт) 8 ЕБ 255 символів Unicode (UTF-16) окремо не обмежується 2^32-1 1 с Unix, ACL так так ні так так ні
APFS 8 ЕБ (2^63 байт) 8 ЕБ 255 символів Unicode (UTF-16) окремо не обмежується 2^63 1 нс Unix, ACL так так так так так так
Ext3 32 ТБ (теоретично) / 16 ТБ кластерами по 4 КБ (через обмеження утиліт e2fs programs) 2 ТБ (теоретично) / 16 ГБ у старих програм 255 символів Unicode (UTF-16) окремо не обмежується - 1 с Unix, ACL так так ні ні ні ні
Ext4 1 ЕБ (теоретично) / 16 ТБ кластерами по 4 КБ (через обмеження утиліт e2fs programs) 16 ТБ 255 символів Unicode (UTF-16) окремо не обмежується 4 млрд. 1 нс POSIX так так ні ні так ні
F2FS 16 ТБ 3,94 ТБ 255 байт окремо не обмежується - 1 нс POSIX, ACL так так ні ні так ні
BTRFS 16 ЕБ (2 ^ 64 - 1 байт) 16 ЕБ 255 символів ASCII 2^17 байт - 1 нс POSIX, ACL так так так так так так

Загальні відомості про файлові системи

Операційна система Windows 8, підтримує кілька файлових систем: NTFS, FAT та FAT32. Але працювати може тільки на NTFS, тобто встановлена ​​може бути тільки розділ жорсткого диска, відформатованого в цій файловій системі. Зумовлено це тими особливостями та інструментами безпеки, які передбачені у NTFS, але відсутні у файлових системах Windows попереднього покоління: FAT16і FAT32. Далі ми зупинимося на всій лінійці файлових систем для Windows, щоб зрозуміти, яку роль вони грають у роботі системи і як вони розвивалися в процесі становлення Windows плоть до Windows 8.

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

Іншою основною метою створення NTFSбула реалізація підвищених вимог безпеки, оскільки файлові системи FAT, FAT32щодо цього взагалі нікуди не годилися. Саме в NTFSВи можете дозволити або заборонити доступ до будь-якого файлу або папки (розмежувати права доступу).


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

Файлова система FATдля сучасних жорстких дисків просто не підходить (через її обмежені можливості). Що стосується FAT32, то її ще можна використовувати, але вже з натяжкою. Якщо купити жорсткий диск на 1000 ГБ, вам доведеться розбивати його як мінімум на кілька розділів. А якщо ви збираєтеся займатися відеомонтажем, то вам дуже заважатиме обмеження 4 Гб як максимально можливий розмір файлу.

Усіх перерахованих недоліків позбавлена ​​файлова система NTFS. Так що, навіть не вдаючись у деталі та спеціальні можливості файлової системи NTFS, можна зробити вибір на її користь.

Файлова
система
Параметри
Розміри тому Максимальний розмір файлу
FAT Від 1.44 МБ до 4 ГБ 2ГБ
FAT32 Теоретично можливий обсяг тома від 512 МБ до 2 Тбайт. Стиснення не підтримується на рівні файлової системи 4ГБ
NTFS Мінімальний розмір, що рекомендується, становить 1,44 МБ, а максимальний - 2 Тбайт. Підтримка стиснення на рівні файлової системи для файлів, каталогів та томів. Максимальний розмір обмежений лише розміром тома (Теоретично – 264 байт мінус 1 кілобайт. Практично – 244 байт мінус 64 кілобайти)

Взагалі використання FAT32може бути виправдано лише в тих випадках, коли у вас на комп'ютері встановлено кілька операційних систем, а якась із них не підтримує NTFS. Але на сьогоднішній день таких практично немає. Хіба що ви захочете встановити антикваріат типу Windows 98.

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

Файлова система FAT(зазвичай під нею розуміється FAT 16) була розроблена досить давно і призначалася для роботи з невеликими дисковими та файловими обсягами, простою структурою каталогів. Абревіатура FATрозшифровується як File Allocation Table(З англ. таблиця розміщення файлів). Ця таблиця розміщується на початку тому, причому зберігаються дві її копії (з метою забезпечення більшої стійкості).
Ця таблиця використовується операційною системою для пошуку файлу та визначення його фізичного розташування на жорсткому диску. У разі пошкодження таблиці (та її копії) читання файлів операційною системою стає неможливим. Вона просто не може визначити, де якийсь файл, де він починається і де закінчується. У таких випадках говорять, що файлова система впала.
Файлова система FATспочатку розроблялася компанією Microsoft для дискет. Тільки потім вони почали її застосовувати для жорстких дисків. Спочатку це була FAT12(Для дискет і жорстких дисків до 16 МБ), а потім вона переросла в FAT16, що була введена в експлуатацію з операційною системою MS-DOS 3.0

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

Починаючи з Windows 95 OSR2, компанія Microsoft починає активно використовувати у своїх операційних системах FAT32- тридцятидворозрядну версію FAT. Що вдієш, технічний прогрес не стоїть на місці та можливостей FAT 16стало явно замало.
Порівняно з нею FAT32стала забезпечувати більш оптимальний доступ до дисків, вищу швидкість виконання операцій вводу/виводу, і навіть підтримку великих файлових обсягів (обсяг диска до 2 Тбайт).
У FAT32реалізовано ефективніше витрачання дискового простору (шляхом використання дрібніших кластерів). Вигода в порівнянні з FAT16становить близько 10...15%. Тобто при використанні FAT32на той самий диск може бути записано інформації на 10... 15% більше, ніж при використанні FAT16.
Крім того, слід зазначити, що FAT32забезпечує більш високу надійність роботи та більш високу швидкість запуску програм.
Зумовлено це двома суттєвими нововведеннями:
можливістю переміщення кореневого каталогу та резервної копії FAT(якщо основна копія зазнала пошкоджень)

Можливість зберігання резервної копії системних даних.

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

Загальні відомості
Жодна з версій FAT не забезпечує хоч скільки прийнятного рівня безпеки. Це, а також необхідність у додаткових файлових механізмах (стиснення, шифрування) призвело до необхідності створення нової файлової системи. І нею стала файлова система NT (NTFS)
NTFS- Від англ. New Technology File System - файлова система нової технології
Як уже згадувалося, основною її перевагою є захищеність: для файлів та папок NTFSможуть бути призначені права доступу (читання, запис і т.д.). Завдяки цьому суттєво підвищилася безпека даних та стійкість роботи системи. Призначення прав доступу дозволяє заборонити/дозволити будь-яким користувачам та програмам виконувати будь-які операції над файлами. Наприклад, не маючи достатніх прав, сторонній користувач не зможе змінити будь-який файл. Або, знову ж таки не володіючи достатніми правами, вірус не зможе зіпсувати файл.
Крім того, NTFSЯк було сказано вище, забезпечує кращу продуктивність і можливість роботи з великими обсягами даних.

Починаючи з Windows 2000, використовується версія NTFS 5.0, яка, крім стандартних, дозволяє реалізовувати такі можливості:

Шифрування даних- ця можливість реалізується спеціальною надбудовою NTFS, яка називається Encrypting File System(EFS)- Шифруюча файлова система. Завдяки цьому механізму шифровані дані можуть бути прочитані лише на комп'ютері, на якому відбулося шифрування.
Дискові квоти- стало можливо призначати користувачам певний (обмежений) розмір диску, який можуть використовувати.
Ефективне зберігання розріджених файлів. Трапляються файли, в яких міститься велика кількість послідовних порожніх байтів. Файлова система NTFS дозволяє оптимізувати їхнє зберігання.

Використання журналу змін- дозволяє реєструвати всі операції доступу до файлів та томів.

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

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

Пристрій NTFS. Головна таблиця файлів MFT.
Як і будь-яка інша файлова система, NTFS ділить все корисне місце на кластери- Мінімальні блоки даних, на які розбиваються файли. NTFS підтримує майже будь-які розміри кластерів – від 512 байт до 64 Кбайт. Проте загальноприйнятим стандартом вважається кластер розміром 4 Кбайт. Саме він використовується за умовчанням. Принцип існування кластерів можна проілюструвати таким прикладом.
Якщо у вас розмір кластера становить 4 Кбайт (що швидше за все), а вам потрібно зберегти файл, розміром 5 Кбайт, то реально під нього буде виділено 8 Кбайт, тому що в один кластер він не поміщається, а під дисковий простір файл виділяється тільки кластерами .
Для кожного NTFS-диска є спеціальний файл - MFT (Master Allocation Table – головна таблиця файлів). Цей файл містить централізований каталог всіх наявних на диску файлів. При створенні файлу NTFS створює та заповнює в MFTвідповідний запис, в якому міститься інформація про атрибути файлу, вміст файлу, ім'я файлу і т.п.

Крім MFT, є ще 15 спеціальних файлів (разом з MFT - 16), які недоступні операційній системі та називаються метафайлами. Імена всіх метафайлівпочинаються із символу $ , але стандартними засобами операційної системи переглянути їх і взагалі побачити неможливо. Далі для прикладу наведено основні метафайли:

SMFT- сам MFT.
$MFTmirr- Копія перших 16 записів MFT, розміщена посередині диска (дзеркало).
$LogFile- Файл підтримки журналування.
$Volume- Службова інформація: мітка тома, версія файлової системи, і т.д.
$AttrDef- Список стандартних атрибутів файлів на томі.
$. - кореневий каталог.
$Bitmap- мапа вільного місця тому.
$Boot- Завантажувальний сектор (якщо розділ завантажувальний).
$Quota- файл, у якому записані права користувачів використання дискового простору.
$Upcase- файл-таблиця відповідності великих та великих літер в іменах файлів на поточному томі.
Потрібен переважно тому, що в NTFS імена файлів записуються в кодуванні Unicode, Яку становлять 65 тисяч різних символів, шукати великі та малі еквіваленти яких дуже нетривіально.
Що ж до принципу організації даних на диску NTFS, він умовно ділиться на частини. Перші 12% диска відводяться під так звану MFT-зону- простір, у якому зростає метафайл MFT.
Запис будь-яких даних користувача в цю область неможливий. MFT-зона завжди тримається порожньою. Це робиться для того, щоб найголовніший службовий файл (MFT) не фрагментувався при своєму зростанні. Інші 88% диска є звичайним простір для зберігання файлів.
Однак при нестачі дискового простору MFT-зона може сама зменшуватись (якщо це можливо), так що ніякого дискомфорту ви не помітите. При цьому нові дані вже записуватимуться у колишню MFT-зону.
У разі подальшого вивільнення дискового простору MFT-зона знову збільшуватиметься, однак у дефрагментованому вигляді (тобто не єдиним блоком, а кількома частинами на диску). У цьому немає нічого страшного, просто вважається, що система надійніша, коли MFT-файлне дефрагментовано. Крім того, при не дефрагментованому MFT-файлі вся файлова система працює швидше. Відповідно чим дефрагментованішим є MFT-файл, тим повільніше працює файлова система.

Що стосується розміру MFT-файлу, він приблизно обчислюється, виходячи з 1 МБ на 1000 файлів.

Конвертування розділів FAT32 у NTFS без втрати даних. Утиліта convert

Ви можете без особливих зусиль конвертувати існуючий FAT32-розділ у NTFS. Для цього у Windows 8, Windows 8.1 передбачена утиліта командного рядка convert

Параметри її роботи показані на скріншоті

Таким чином, щоб конвертувати в NTFS диск D: в командний рядок слід ввести наступну команду:

Після цього від вас попросять ввести мітку тома, якщо така є (мітка тома вказується поруч із ім'ям диска у вікні Мій комп'ютер. Вона використовується для більш детального позначення дисків і може використовуватися, а може не використовуватися. Наприклад, це може бути Files Storage (D:).
Для конвертації флешки команда виглядає так:

convert e : /fs:ntfs /nosecurity /x

Ви знаєте, що Windows Phone використовує NTFS? Чому більшість карт пам'яті і майже всі USB-накопичувачі, як і раніше, використовують старий-добрий FAT? Чому ви можете зберігати повнорозмірні HD-фільми на деяких флеш-накопичувачах та не можете на інших? Чому деякі пристрої підтримують лише карти пам'яті SDHC до 32 ГБ, і що можна зробити, щоб змусити їх використовувати 64 ГБ SDXC? Ці та інші питання пов'язані з типом файлової системи, використовуваної конкретним пристроєм зберігання. Але як це пов'язано із Windows?

На початку історії персональних комп'ютерів (думаю, в епоху текстових DOS-боксів і дискет) єдиною файловою системою, що використовується, була FAT12. З появою жорстких дисків, здатних зберігати кілька мегабайт даних (так, саме мегабайт, а не гігабайт!), була розроблена нова версія FAT під назвою FAT16. Під цю файлову систему розроблявся Windows 95, отримавши лише «апгрейд» як підтримки довших імен файлів. У Windows 98 Microsoft додали підтримку ще однієї нової версії FAT під назвою FAT32 для підтримки великих жорстких дисків (так, на той час ми вже почали вимірювати дисковий простір у гігабайтах).

У паралельному всесвіті Windows NT Microsoft постійно використовувала файлову систему нових технологій, або NTFS. Windows NT 4, Windows 2000, а потім Windows XP, Vista, Windows 7, 8, 8.1 та нові Windows 10 використовують NTFS.

У ще одному паралельному всесвіті – всесвіті знімного сховища ви можете вибирати між універсальним FAT32 (при цьому зіткнувшись з його обмеженням у розмірах файлів у 4 ГБ) і новішим, але не так широко підтримуваним (через обмеження ліцензування) exFAT. До речі, exFAT використовується як файлова система на вибір на всіх картах SDXC ємністю 64 ГБ і більше.

Отже, в даний час у нас є три різні сімейства файлових систем: стародавня, але все ж таки широко застосована FAT32, нова NTFS і свіжорозроблена, оптимізована на основі Solid ExFAT. Яку з цих файлових систем використовувати і коли? І які відмінності між ними?

FAT32: Очевидний вибір

FAT32, як і раніше, залишається єдиною файловою системою, яка використовується в Windows 98 або Windows ME. FAT32 фактично є файловою системою вибору карток пам'яті SD до 32ГБ включно. Нарешті FAT32 часто використовується для форматування USB-накопичувачів, у тому числі ємністю 64ГБ і вище.

Дідок FAT32… Його основні обмеження добре відомі. FAT32 підтримує роботу з файлами розміром трохи більше 4 ГБ. Якщо здається, що для одного файлу це багато, згадайте про те, що один відеоролик у форматі HD займає від 4,5 до 10 ГБ, і відразу стане зрозуміло, наскільки це обмеження суттєво в сучасних реаліях. Його інші обмеження включають відсутність надійної підтримки, абсолютну відсутність контролю доступу, відсутності шифрування, стиснення або відмовостійкості.

Інакше кажучи, це абсолютно проста та легка файлова система, яка підходить практично для будь-якої портативної електроніки з низькою продуктивністю, такої як цифрові камери та відеокамери, прості смартфони, MP3-плеєри та аналогічні пристрої. Через його поважний вік і широку популярність у Windows з 1997 року FAT32 підтримується практично всією технікою, включаючи холодильник і кавоварку. Іншими словами, якщо ви хочете носити з собою один знімний пристрій і бути впевненим, що його можна використовувати з будь-яким модулем, що підключається, FAT32 - те, що вам потрібно.

NTFS: системний диск

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

У NTFS є все, чого не вистачає FAT. Потужні настройки контролю доступу? Будь ласка. Відмовостійкість та ведення журналу? Отримайте. Миттєве стиснення та шифрування окремих файлів, папок та цілих томів диска? Звичайно. Альтернативні потоки даних, підвищені заходи безпеки, резервне копіювання самої файлової системи та важливих системних файлів і багато інших функцій… Починаючи з його початкового випуску в 1994 році, NTFS отримувала нові оновлення, в тому числі, що підвищують її сумісність. Її чудовий дизайн і проста реалізація, як і раніше, не мають аналогів серед інших файлових систем навіть сьогодні. Вона досить універсальна для використання навіть на смартфонах початкового рівня під керуванням Windows Phone 8 та 8.1. Але якщо це така відмінна файлова система, чому її не використовують все і скрізь?

Як ви можете очікувати, NTFS не позбавлена ​​недоліків. Розроблена ще 1994 року для серверних операцій, ця файлова система завжди вимагала великої обчислювальної потужності підтримки своїх численних структур. Її системні записи швидко зростають, займають дорогоцінний простір і додають додаткове навантаження на пристрої зберігання, що використовують флеш-пам'ять NAND. Нарешті, якщо використовувати щось, окрім великих жорстких дисків, її накладні витрати виявляться занадто великими, тому загальне визнання система поки що так і не завоювала. І останнє, але не менш важливе: NTFS запатентована Microsoft, яка не бажає відкривати ліцензії на цю файлову систему конкурентам.

exFAT: найкраще, якщо підтримується…

Щоб подолати обмеження FAT32 та зменшити додаткове навантаження, що надається NTFS на носії на основі NAND, Microsoft розробила ще одну файлову систему під назвою Extended FAT або exFAT. Ця файлова система значною мірою заснована на тій же концепції, що і оригінальний FAT, тільки тепер вона є справжньою 64-бітною файловою системою без обмеження розміру файлу, що існує у FAT32. Саме тому exFAT використовується як стандарт для великих SD-карток (стандарт SDXC вимагає, щоб усі SD-картки розміром 64 ГБ і більше були відформатовані за допомогою exFAT). Тому, якщо ви купуєте 64-гігабайтну карту microSDXC, вона працюватиме на основі exFAT... і з цієї причини вона може не розпізнаватись вашим смартфоном або планшетом.

Причина, через яку exFAT не замінила стародавній FAT32 всюди – платне ліцензування. На відміну від FAT32, яка є безкоштовною для всіх без роялті, з виробників, які хочуть використовувати exFAT на своїх пристроях Microsoft стягує плату за ліцензування. В результаті творці телефонів Android, низькорівневих Android-планшетів і дешевих камер воліють заощадити кілька центів вартості пристроїв (у перерахунку на одиницю випущеної техніки) на ліцензуванні, воліючи виключити exFAT зі списку файлових систем, що підтримуються. В результаті, якщо ви вставляєте нову 64-гігабайтну мікро SD-карту в такий пристрій, картка, швидше за все, не розпізнається.

Чи можете ви особисто подолати це обмеження? Найчастіше так, і досить просто. Просто підключіть свою SD-карту до ПК через пристрій для читання карт і відформатуйте її за допомогою … ви здогадалися… FAT32! Таким чином, ви втратите можливість зберігати на ній файли розміром більше 4 ГБ, але ваша карта пам'яті, швидше за все, буде розпізнана і буде безперебійно працювати на пристрої Android, який за технічними характеристиками начебто і не повинен підтримувати SD-картки ємністю понад 32 ГБ .

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

Однак хвилиночку… Windows Phone – це ОС Microsoft, чи не будуть пристрої Windows Phone підтримувати exFAT за замовчуванням? Так і є! Windows Phone 8 і 8.1 дійсно постачаються із вбудованою підтримкою exFAT, безкоштовною для виробників, які хочуть випускати пристрої для платформи Windows Phone. Microsoft пропонує безкоштовну ліцензію exFAT в рамках свого «пакета стимулювання», покликаного спонукати більше виробників приєднатися до платформи Windows Phone.

Нарешті, всі або майже всі планшети з операційною системою Windows RT і повною версією Windows 8 або 8.1 підтримують exFAT і розпізнають 64-ГБ і більші SD-карти легко.

Відновлення файлових систем Windows

Майже кожен інструмент відновлення даних на базі Windows пропонує підтримку FAT32 і NTFS. Інструменти, які підтримують exFAT, набагато менш доступні через обмеження ліцензування Microsoft. Одним із інструментів підтримки всіх трьох файлових систем Windows є RS Partition Recovery.

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