Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

FAT

Очікує на перевірку
Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено зFAT12)

Статус версії сторінки

На цій сторінці показано неперевірені зміни

FAT (англ.File Allocation Table — «таблиця розміщення файлів») —файлова система, розроблена для персональних комп’ютерів, що використовувалася за замовчуванням в операційних системахMS-DOS таWindows 9x. Первісно створена 1977 року для використання надискетах (ще до появиПК іжорстких дисків), пізніше вона була адаптована для жорстких дисків та інших пристроїв. Збільшення ємності накопичувачів з часом призвело до модифікацій дизайну файлової системи і появи нових версій:FAT12,FAT16,FAT16B,FAT32 таexFAT. Файлова система FAT була замінена наNTFS як стандартна в ОСMicrosoft, починаючи з Windows XP. Тим не менш, FAT як і раніше часто використовується на носіях відносно невеликої ємності (наприклад, на картах пам’ятіSD,MMC,eMMC) завдяки своїй сумісності та простоті реалізації

Використання

[ред. |ред. код]

В минулому

[ред. |ред. код]

FAT застосовувалася на різних носіях інформації упродовж ериDOS таWindows 9x. Microsoft представилаNTFS в платформіWindows NT у 1993 році, але FAT залишалася стандартною файловою системою для домашніх користувачів до появиWindows XP у 2001 році.Windows ME була останньою версієюWindows, що використовувала FAT як ФС за замовчуванням.

Для дискет файлову систему FAT стандартизовано якECMA-107 таISO/IEC 9293:1994 (цей стандарт замінив попередній ISO 9293:1987). Ці стандарти охоплюють FAT12 та FAT16 лише з підтримкою короткихназв файлів 8.3;довгі назви (LFN) уVFAT були частковозапатентовані. Якщо FAT12 використовувалась надискетах, тоFAT16 іFAT32 зазвичай застосовувалась на носіях більшого розміру.

В наш час

[ред. |ред. код]

FAT досі використовується як внутрішня файлова система для розділуEFI System Partition на стадії завантаженняEFI-сумісних комп’ютерів.

Також FAT застосовується на носіях, які планується використовувати в різних операційних системах, наприклад, у середовищах зі спільним доступом між Windows іLinux. Microsoft Windows має вбудований інструмент для конвертації файлової системи FAT у NTFS без перезапису всіх файлів, хоча зворотне перетворення є нетривіальним. Файлова система FAT використовується на змінних носіях, таких якдискети, «супердискети»,картки пам’яті (наприклад,CompactFlash,SD) таUSB-флеш-накопичувачі. FAT підтримується портативними пристроями, як-отКПК, цифровіфото- тавідеокамери, портативні медіа-плеєри тамобільні телефони.

СпецифікаціяDCF (Design rule for Camera File system) впроваджена майже всімацифровими фотокамерами з 1998 року, визначає логічну файлову систему зіменами файлів у форматі 8.3 і вимагає використання для фізичного рівня однієї з файлових систем FAT12, FAT16, FAT32 або exFAT задля сумісності.

Технічні деталі

[ред. |ред. код]
Докладніше:Архітектура файлової системи FAT

Файлова система FAT використовує індексну таблицю, що зберігається на носії, для визначення ланцюжків кластерів, які містять дані файлів. Ця таблиця і є «таблицею розміщення файлів» (FAT). FAT виділяється статично під час форматування носія. Таблиця являє собоюзв’язаний список записів для кожного кластера — неперервної області дискового простору. Кожен запис містить або номер наступного кластера файлу, або спеціальну позначку, що вказує на кінець файлу, невикористаний простір чи зарезервовані області диска. У кореневому каталозі диска зберігаються номери перших кластерів кожного файлу цього каталогу. Операційна система може пройти по ланцюжку FAT, послідовно знаходячи номер кластера кожної наступної частини файлу доти, доки не досягне кінця файлу. Підкаталоги реалізовані як спеціальні файли, що містять записи про файли в межах цих каталогів.

Кожен запис у зв’язаному списку FAT має фіксовану розрядність: 12, 16 або 32 біти. Максимальний розмір файлу або розділу диска, який може бути адресований, дорівнює добутку найбільшого числа, що може бути збережене у записі FAT (за вирахуванням кількох значень, зарезервованих для позначення нерозподіленого простору чи кінця ланцюжка) на розмір кластера. Навіть якщо для розширення файлу потрібен лише 1 байт, буде виділено цілий кластер; внаслідок цього велика кількість дрібних файлів може призводити до того, що у виділених кластерах більша частина простору залишається «порожньою».

Первісно спроєктована як 8-розрядна файлова система, FAT з часом збільшувала максимальну кількість кластерів у зв’язку зі зростанням ємності дисків, тому кількість біт для ідентифікатора кластера поступово зростала. Послідовні ключові варіанти формату FAT названі відповідно до кількості біт у елементах таблиці: 12 (FAT12), 16 (FAT16) і 32 (FAT32).

Різновиди

[ред. |ред. код]

Існує декілька різновидів файлової системи FAT (наприклад, FAT12, FAT16 і FAT32). ПозначенняFAT16 стосується як початкової групи файлових систем FAT із 16-розрядними записами в таблиці, так і пізніших їх варіантів.VFAT — це необов’язкове розширення для підтримки довгих імен файлів, яке може працювати поверх будь-якої з файлових систем сімейства FAT. Том, що використовує довгі імена VFAT, може бути прочитаний також операційними системами, які не підтримують розширення VFAT.

FAT — рішення для 8-дюймових дискет, до появи дисків постійно зберігання

[ред. |ред. код]
Компютер Altair 8800, перший ПК ввід програм в який став можливий за допомогою дискети, а не тільки через перемикачі на передній панелі

У середині 1970-х років, коли персональні комп’ютери лише починали з’являтися, більшість з них не малиопераційних систем або навіть базових засобів зберігання даних таких як диски чи дискети. Програми часто завантажувалися з паперових стрічок або вводилися вручну через перемикачі на передній панелі комп’ютера.[1]

У 1975 році компанія MITS анонсувала першу комерційну систему з гнучкими дисками (флопі-дисками) для свого комп’ютераAltair 8800. Це стало поштовхом для розробкиDisk BASIC — версії мовиBASIC, здатної працювати з дисками. Новий інтерпретатор мав не лише виконувати програми, а й самостійно керувати зберіганням і пошуком файлів, адже Altair не мав операційної системи. Таким чином, Disk BASIC фактично виконував роль простоїОС.[1]

У 1976 роціБілл Гейтс написав Disk BASIC для Altair, а вже через рік Microsoft розширила цю ідею, створившиStand-alone Disk BASIC — автономну версію BASIC для 8-дюймових дискет, призначену для терміналу введення даних на базі процесораIntel 8080, створеного для компанії NCR. Для організації файлів на диску інженерМарк МакДональд розробив файлову систему, яка отримала назву FAT (File Allocation Table — таблиця розміщення файлів). Ідея виникла в результаті серії обговорень між ним і Гейтсом.[1]

FAT дозволяла зберігати інформацію про розміщення даних на диску в єдиній таблиці, де кожен кластер містив посилання на наступний, утворюючи "ланцюжки". Такий підхід забезпечував просту, ефективну та гнучку модель керування файлами. Спочатку FAT мала 8-бітові записи й використовувалась тільки уStand-alone Disk BASIC, який підтримував до трьох копій FAT для підвищення надійності.[1]

Трохи пізніше, але в той же період, FAT інтегрували у Microsoft MDOS (пізніше перейменовану на MIDAS), операційну систему для комп’ютерів з процесорами8080 таZ80. Особливістю FAT стало те, що вона дозволяла зберігати кілька копій файлової таблиці — наприклад, Standalone Disk BASIC використовувавтри копії, щоб підвищити надійність у разі помилки на диску. У MDOS кількість копій FAT можна було налаштовувати вручну.[1]

FAT12 — рішення для 5.25-дюймових дискет епохи перших ПК

[ред. |ред. код]

У травні 1979 року Тім Патерсон із компаніїSeattle Computer Products вперше ознайомився зі структурою FAT від Microsoft, коли допомагавБобу О’Ріру адаптувати портовану версію емулятора Standalone Disk BASIC-86 до прототипу плати з процесором 8086 для шини S-100, яку розроблялаSCP. Це відбувалося під час його тижневого візиту до Microsoft.[2]

У 1980 році Тім Патерсон створив нову версію файлової системи — FAT12. Вона стала необхідною складовою його операційної системиQDOS (пізніше —86-DOS), розробленої для комп’ютерів із процесоромIntel 8086. FAT12 базувалась на попередніх версіях FAT, але включала важливі зміни, які зробили її стандартом для гнучких дисків (дискет) протягом багатьох років.[2]

Головне нововведення — використання12-бітових чисел для зберігання адрес кластерів, що дозволяло вміщуватидо 4096 кластерів на одному томі[3]. У попередніх варіантах FAT доступна кількість кластерів була в рази меншою, що суттєво обмежувало розмір диска і кількість файлів. Така зміна стала критично важливою на фоні поширення 5,25-дюймових дискет обсягом 160–360 КБ і потреби зберігати на них все більшу кількість файлів.

Разом із новим форматом кластерів були запроваджені й інші технічні зміни. Кількість копій FAT-таблиці зменшилась додвох (замість трьох, як уStandalone Disk BASIC), акореневий каталог (де зберігались записи про всі файли) було перенесено між FAT-таблицею та областю даних. Це полегшувало організацію доступу до файлів. Формат імен було оновлено до так званого8.3 — вісім символів на назву файлу та три символи на розширення, як у популярній тоді системіCP/M. Окрім того, булозбільшено розмір запису в каталозі з 16 до 32 байтів, що дало змогу зберігати дату останньої модифікації та підтримати більші розміри файлів.

Файлова система зберігала дані щільно, використовуючи специфічну упаковку: два 12-бітові значення FAT розміщувалися в трьох байтах. Це дозволяло ефективно використовувати обмежений простір дискет. Водночас це робило систему чутливою до пошкоджень: службові області файлової системи зберігались на першій доріжці диска, і якщо хоча б один сектор у цій області був ушкоджений, дискета могла стати повністю непридатною. Щоб уникнути використання секторів з помилками, система позначала їх спеціальним значенням0xFF7.

У 1981 році компанія IBM випустила свій перший персональний комп’ютер —IBM PC — з операційною системоюPC DOS 1.0, розробленоюMicrosoft на основі86-DOS. Саме FAT12 використовувалась у цій ОС. Спочатку вона підтримувала лише односторонні 5,25-дюймові дискети на 160 КБ, але згодом — і 320 КБ (двосторонні), а також 180 і 360 КБ. Незважаючи на відсутність підтримки підкаталогів, FAT12 чудово виконувала свої функції в умовах обмеженого простору та апаратних можливостей перших ПК.

Поява комп’ютерів із жорсткими дисками, якIBM PC/XT, стала наступним викликом. У 1983 році в системіPC DOS 2.0 було реалізовано низку важливих нововведень: підтримка жорстких дисків обсягом до 16 МБ (через обмеження FAT12), введення структуриBIOS Parameter Block (BPB), яка описувала геометрію диска, і підтримка вкладеної структури каталогів. Також було додано нові атрибути файлів — «тільки для читання», «архівний», «каталог» та інші. Це був серйозний крок до повноцінної файлової системи для персональних комп’ютерів.

Навіть після появи FAT16, формат FAT12 продовжував широко використовуватись на дискетах усіх типів — від 5,25-дюймових на 1,2 МБ до 3,5-дюймових на 1,44 і навіть 2,88 МБ. Завдяки своїй простоті та сумісності FAT12 залишався актуальним упродовж десятиліть — як у DOS-сумісних системах, так і в сучасних інструментах, що працюють з гнучкими дисками.

FAT16 — перший серйозний крок до роботи з жорсткими дисками

[ред. |ред. код]
Докладніше:FAT16

У 1984 році з виходом комп’ютераIBM PC/AT з’явився жорсткий диск на 20 мегабайт, що вимагало змін у файловій системі. Попередня версія — FAT12 — просто не могла впоратись із такими обсягами, бо дозволяла зберігати максимум близько 4078 кластерів, що накладало обмеження на розмір розділу. Відповіддю зявилась нова версія — FAT16, представлена разом ізMS-DOS 3.0.

У FAT16 розмір поля, що зберігає номер кластера, збільшили до 16 біт. Це дало змогу підтримувати до 65 526 кластерів на томі. На практиці це означало, що файлову систему можна було використовувати на розділах до 32 мегабайт — саме стільки можна було адресувати через стандартне 16-бітне поле кількості секторів при 512-байтовому секторі. І хоча технічно кластерів стало більше, структура BIOS Parameter Block (BPB) ще не була готова до більших розмірів, тому обмеження залишалися жорсткими.

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

Однак новий формат мав і недоліки — насамперед у сумісності. Наприклад, MS-DOS 3.0 автоматично форматувала розділи розміром від 16 до 32 мегабайт у FAT16. Але якщо такий диск під’єднували до системи з MS-DOS 2.0, вона не могла його прочитати. І навпаки — розділи FAT12, створені в DOS 2.0, не завжди правильно розпізнавались у DOS 3.0. Щоб вирішити цю плутанину, в MS-DOS 3.31 знову дозволили створювати FAT12-томи розміром до 32 МБ.

Цікаво, що хоча нова FAT дозволяла працювати з більшими обсягами, вона ще не подолала обмеження самої BPB. Структура залишалася 16-бітною, тому наступним логічним кроком стало створення FAT16B — варіанту, в якому це обмеження вже було усунено.

Логічно-секторна FAT — як виробники обходили обмеження DOS

[ред. |ред. код]
Докладніше:Розширений завантажувальний запис

У середині 1980-х стало очевидно, що файлової системи FAT16 в її базовому вигляді вже недостатньо. Хоч вона дозволяла працювати з більшими дисками, ніж FAT12, але й вона мала обмеження: максимальний розмір розділу — приблизно 32 мегабайти. Це було пов’язано з тим, що поле "загальна кількість секторів" у завантажувальному секторі (BPB) залишалося 16-бітним, а стандартний розмір сектора становив 512 байт. Таким чином, розділ не міг містити більше 65 535 секторів, що й створювало граничний обсяг у 32 МБ.

Виробники комп’ютерів і OEM-версій DOS знайшли різні способи обійти ці обмеження — не змінюючи саму FAT, а модифікуючи спосіб, яким система бачила диск. Найпопулярнішим методом стало збільшення розміру логічного сектора. Фізично диск усе ще складався з 512-байтових секторів, але BIOS або DOS-драйвери повідомляли файловій системі, що сектор має більший розмір — наприклад, 1024, 2048 або навіть 8192 байти. Це дозволяло мати менше секторів на розділі при тій самій загальній місткості, що й знімало обмеження на розмір розділу. Таке рішення було цілком прозорим для самої FAT, але воно вимагало більше оперативної памʼяті для обробки великих секторів, і не підтримувалось стандартними версіями MS-DOS та PC DOS.

Щоб уникнути конфліктів, виробники використовували спеціальні "нестандартні" коди типів розділів — такі як 0x08, 0x11, 0x14, 0x24, 0x56, 0xE5 або 0xF2 — які були розпізнавані лише в їхніх власних версіях DOS. Це дозволяло запобігти помилкам у звичайних версіях системи, які не вміли працювати з такими дисками. При цьому сам формат файлової системи залишався сумісним із FAT12 або FAT16, і диски могли бути змонтовані в інших ОС або в більш гнучких файлових драйверах, як-от DR-DOS, просто змінивши код розділу.

У цей же період була впроваджена ще одна важлива концепція — розширені розділи. Стандартна структура MBR дозволяла створити лише чотири первинні розділи на одному фізичному диску. У PC DOS 3.2 (1986) Microsoft представила новий тип — розширений розділ, який виконував роль контейнера для додаткового логічного розділу. А з версії PC DOS 3.3 (1987) стало можливим створювати ланцюжок розширених розділів, кожен з яких міг містити один логічний диск. Завдяки цьому користувачі отримали змогу мати значно більше дискових розділів, ніж дозволяв стандартний MBR.

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

FAT16B — оновлена FAT для більших дисків

[ред. |ред. код]
Докладніше:FAT16

У 1987 році компаніяCompaq випустила змінену версіюMS-DOS 3.3 з розширеною підтримкою великихжорстких дисків. Саме в цій версії з’явився формат, який сьогодні відомий як FAT16B. Він був дуже схожий на попередню FAT16, але з ключовим удосконаленням: замість 16-бітного обмеження на кількість секторів, у завантажувальному секторі з’явилось32-бітне поле. Це дозволило створювати розділи обсягом значно більше 32 МБ — аж до2 гігабайтів, що на той момент було майже фантастикою.

Щоб реалізувати підтримку такої кількості секторів, потрібно було переробити драйвер файлової системи DOS — з урахуванням того, що весь код був написаний у 16-бітному асемблері. Цей формат спочатку називали «великою файловою системою DOS 3.31», а деякі утиліти, як-от DSKPROBE або FDISK, позначали такі розділи як “BigFAT” або “BIGDOS”.

Щоб уникнути плутанини з попередньою FAT16, нова версія отрималаінший код типу розділу — 0x06, тоді як класична FAT16 залишилася з кодом 0x04. Єдина відмінність між ними на рівні файлової системи — це наявність32-бітного лічильника секторів у структурі BPB. Усе інше, включно з організацією кластерів, залишалось аналогічним.

Максимальний розмір FAT16B-розділу обмежувався не розміром сектора, арозміром кластера, який задавався 8-бітним полем «секторів на кластер». Це поле могло приймати значення максимум 64, що при стандартному секторі 512 байтів давало кластер розміром 32 КБ. Таким чином, максимально підтримуваний обсяг становив2 ГБ. На носіях із більшим розміром сектора (наприклад, 1 КБ або 2 КБ), теоретично обсяг міг бути більшим, але підтримка таких форматів була обмеженою.

Пізніше, коли з’явилися нові операційні системи, як-от Windows NT, з’явилась можливість використовувати ще більші кластери — до 64 КБ. Але це призводило до проблем із сумісністю, бо багато утиліт і драйверів були не готові до такого кроку. Наприклад, Windows 98 та ME могли читати й записувати на такі розділи, але їхні стандартні утиліти форматування не підтримували створення розділів із кластерами по 64 КБ, і деякі програми, що працювали через застарілі механізми, не розуміли такі диски.

До 1995 року всі DOS-сумісні системи працювали з дисками через класичну схему адресації CHS (Cylinders-Heads-Sectors), яка обмежувала фізичне розміщення розділів у межах приблизно 8 гігабайтів. Коли в MS-DOS 7.0 (Windows 95) впровадилиLBA-доступ до диска, це дозволило розміщувати розділи за межами цієї зони. Щоб позначити такі розділи, ввели ще один код типу —0x0E, і нові розділи отримали умовну назвуFAT16X. Від звичайного FAT16B вони відрізнялись лише тим, що деякі параметри геометрії диска могли бути нульовими або незначущими.

Окремо варто згадати про структурукореневого каталогу в FAT12 і FAT16. Його максимальний розмір задавався при форматуванні і зберігався у 16-бітному полі. Зазвичай вибиралось значення 512 записів, що займало 16 КБ — це дозволяло точно вписати каталог у ціле число секторів. Утиліти типуmkdosfs дозволяли користувачам змінювати це значення вручну, щоб підлаштувати файлову систему до своїх потреб.

FAT16B залишалась основною файловою системою для MS-DOS і Windows до середини 1990-х років, поки не з’явилась її спадкоємиця —FAT32, яка мала позбутися ліміту в 2 гігабайти. Але до цього моменту FAT16B встигла стати надійною основою для мільйонів комп’ютерів по всьому світу.

FAT32 — відповідь на обмеження FAT16 у світі гігабайтів

[ред. |ред. код]
Докладніше:FAT32

До середини 1990-х років стало очевидно, що навіть розширена версія FAT16B не витримує темпів розвитку комп’ютерної техніки. Ліміт у2 гігабайти на один розділ дедалі частіше ставав вузьким місцем — як для користувачів, так і для виробників ПК, особливо на тлі появи жорстких дисків на десятки і сотні гігабайтів. Потрібно було оновлення файлової системи, але бажано без повної несумісності зі світом MS-DOS. Так з’явиласьFAT32.

У новій версії FAT головна зміна стосувалась того ж, що і раніше —кількості кластерів, яку можна було адресувати. Якщо у FAT16 для цього використовували 16-бітні значення, то FAT32 передбачала32-бітні записи, з яких реально використовувалось28 біт (решта були зарезервовані). Це дозволило підтриматидо 268 мільйонів кластерів на одному томі, що в теорії забезпечувало томи обсягомдо 2 терабайтів при стандартному секторі в 512 байтів.

Формально FAT32 могла підтримувати ще більші розділи — до16 ТБ, якщо розмір сектора був більшим (наприклад, 4096 байт). Але на практиці в Windows 95/98 і навіть NT ліміти штучно обмежувались — наприклад,вбудована утиліта форматування в Windows NT дозволяла створювати FAT32-розділи лише до 32 ГБ. Водночас система могла без проблем читати й записувати на значно більші FAT32-томи, створені іншими інструментами — зокрема, командним рядком (format /FS:FAT32) або сторонніми утилітами.

Одна з головних цілей FAT32 — зберегтисумісність із DOS-архітектурою. Для цього Microsoft спеціально розробила FAT32 так, щоб її реалізація займалалише на 5 КБ більше оперативної пам’яті, ніж FAT16. Завдяки цьому FAT32 залишалась функціонально доступною навіть у реальному режимі MS-DOS.

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

Максимальний розмір одного файлу залишився обмеженим до4 294 967 295 байтів (~4 ГБ мінус 1 байт). Це пов’язано з тим, що в структурі файлу поле "розмір" було4-байтовим (32 біти), і інтерпретувалося якбеззнакове ціле число. Це обмеження актуальне і для FAT32, і для гіпотетичних великих версій FAT16 з нестандартними параметрами.

FAT32 також підтримувала довгі імена файлів — через механізмVFAT, який додавав до кожного запису коротку 8.3-версію і набір додаткових службових записів. Цей самий механізм використовувався й у FAT12/FAT16.

Файлова система FAT32 була вперше офіційно реалізована уWindows 95 OEM Service Release 2 (MS-DOS 7.1) в 1996 році. Але на жаль, перехід на FAT32 вимагавповного форматування диска — існуючі розділи не можна було конвертувати без втрати даних (за винятком утиліти в Windows 98, яка вже дозволяла перетворення FAT16 → FAT32 без втрати файлів).

Окремо підтримку FAT32 почали впроваджувати й інші виробники:

у 1999 році її включили до DR-DOS 7.04, IMS REAL/32, IBM 4690 OS та навітьPC DOS 7.1. У Windows 2000 з’явився штатний драйвер FAT32 для NT-платформи. Існували також сторонні драйвери — наприклад,Winternals FAT32 для Windows NT 4.0, хоча сьогодні вони не доступні з офіційних джерел.

Код типу розділу для FAT32 за замовчуванням —0x0B, а якщо розділ використовує LBA-доступ (замість застарілого CHS), то застосовується код0x0C, іноді з позначкоюFAT32X. На таких розділах геометричні поля (типу кількості головок або секторів на доріжку) можуть бути нульовими або мати довільні значення — вони більше не використовуються системою.

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

Розширення FAT: довгі імена, атрибути й великі файли

[ред. |ред. код]

Розширені атрибути

[ред. |ред. код]

Операційна системаOS/2 активно використовувала розширені атрибути (Extended Attributes, EA) — вони дозволяли зберігати додаткові метадані про файли, зокрема піктограми, типи MIME, асоційовані програми тощо. На томах FAT12 і FAT16 ці атрибути зберігались у спеціальному прихованому файліEA␠DATA.␠SF, який прив’язувався до основного файлу через два зарезервовані байти у його записі каталогу.

У FAT32 ці байти були вже зайняті для інших цілей (зокрема, для старших бітів адреси кластера), тому зберігати атрибути за старим методом стало неможливо. Альтернативні драйвери, як-отFAT32.IFS для OS/2 (від Генка Келдера), почали зберігати EA в окремих файлах, додаючи до назви␠EA.␠SF. Додатково для пришвидшення пошуку атрибутів один байт каталожного запису використовувався як ознака наявності EA.

У Windows NT також була реалізована підтримка EA на FAT12 і FAT16 — для сумісності з OS/2. Проте альтернативні потоки даних (ADS), що були характерні для NTFS, при копіюванні на FAT-носії не зберігалися.Windows NT виводила попередження, тоді якWindows 2000 зберігала подібну поведінку лише для ADS, а EA — ігнорувала без сповіщення.

Довгі імена файлів (VFAT)

[ред. |ред. код]

До появи Windows 95 у файлових системах FAT дозволялись лише короткі імена у форматі8.3. Але новим вимогам вже потрібні були повноцінні імена — до 255 символів.VFAT (Virtual FAT) став способом зберігати довгі імена у рамках старої файлової системи без зміни її основної структури.

Довгі імена записувались у вигляді додаткових службових записів каталогу, які передували основному. Старі ОС, які не підтримували VFAT, бачили лише коротке ім’я, тож сумісність зберігалась. Утім, при редагуванні або копіюванні під старими ОС довгі імена втрачались.

У Linux підтримку VFAT реалізовано через окремий драйвер. Існувала також спроба сумістити VFAT і UMSDOS через проект UVFAT. УOS/2 довгі імена реалізовувались ще до VFAT, через EA. Але імена збережені OS/2 не були видимі у Windows, і навпаки — VFAT-імена були невидимі для OS/2.

Альтернативні потоки даних (ADS) і Mac OS

[ред. |ред. код]

Файлова система FAT спочатку не підтримувала альтернативні потоки даних (ADS), але вони були критичні дляMac OS. У класичному Mac OS кожен файл мав основні дані таресурсну вилку — це зберігалось у підкаталозіRESOURCE.FRK, а довгі назви — у файліFINDER.DAT.

УmacOS (колишній Mac OS X) метадані зберігаються у форматіAppleDouble — окремий файл із префіксом._, а інформація про каталог — у.DS_Store. Ці файли присутні навіть на рідній файловій системі macOS, HFS+ чи APFS.

UMSDOS: підтримка дозволів UNIX

[ред. |ред. код]
Докладніше:Файлова система FAT в Linux

ФорматUMSDOS, створений для ранніх версій Linux, дозволяв зберігати атрибути UNIX (права доступу, власника, час створення) на томах FAT, використовуючи службовий файл--linux--.--- у кожному каталозі. Це дало змогу запускати Linux на файлових системах FAT без спеціального форматування.

Після появи VFAT UMSDOS почав втрачати актуальність. У ядрі Linux підтримку цього формату було відключено за замовчуванням з версії 2.5.7 (2002). Проєкт UVFAT намагався поєднати VFAT і UMSDOS, але не набув широкого поширення.

Специфічні розширення: Human68K, IBM 4690 OS

[ред. |ред. код]

Японська операційна системаHuman68K використовувала власну модифікацію FAT з підтримкою довших імен (до 18 символів) і запису імен ієрогліфами у кодуванні Shift JIS.

Операційна системаIBM 4690 OS, яка базувалась на FlexOS, реалізувала власнувіртуальну файлову систему (VFS) поверх FAT. Вона дозволяла зберігати довгі імена у зворотно сумісний спосіб. Кожен файл мав «реальне» ім’я (RFN) та «віртуальне» (VFN), доступне через інший логічний диск.

FAT+ — великі файли на FAT32

[ред. |ред. код]

Файлова системаFAT32 мала обмеження на розмір одного файлу —до 4 ГБ мінус 1 байт, що було викликано 32-бітною довжиною поля «розмір файлу». У 2007 році зʼявився проєктFAT+, який дозволяв зберігати файли до256 ГБ мінус 1 байт (2^38−1) на майже незмінених томах FAT32.

Ідея полягала в мінімальній зміні структур файлової системи, збереженні сумісності та можливості використовувати старі драйвери. Проте на практиці багато ОС і програм не підтримували FAT+, що призводило до серйозних ризиків — зокрема, обрізання або втрати файлів. Підтримка FAT+ була реалізована лише в деяких версіяхDR-DOS і не підтримується сучасними ОС на кшталт Windows чи Linux.

Похідні файлові системи на базі FAT

[ред. |ред. код]

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

Turbo FAT (NetWare)

[ред. |ред. код]
Докладніше:Turbo FAT

Файлова системаNetWare File System (NWFS), створена компанією Novell для операційної системиNetWare, базувалась на глибоко модифікованій версії FAT. Однією з ключових її особливостей був механізмTurbo FAT — рішення для підвищення продуктивності при роботі з файлами великого розміру.

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

FATX (Xbox)

[ред. |ред. код]

Файлова системаFATX була розроблена Microsoft спеціально дляігрової консолі Xbox (2001) та її карт пам’яті. Вона базується на ідеях FAT16 та FAT32, але реалізована у спрощеному та несумісному форматі — стандартні драйвери FAT не можуть змонтувати томи FATX без модифікацій.

У FATX використовуються власні структури:

  • Суперблок (незавантажувальний початковий сектор) має обсяг4 КБ і містить спеціальну 18-байтову структуру, схожу на BPB, але повністю з нею несумісну.
  • Кластери зазвичай мають розмір16 КБ, що відповідає характеру використання (великі файли, високе навантаження).
  • Лише одна копія таблиці FAT — для економії місця і часу.
  • Записи каталогів мають розмір64 байти замість стандартних 32.
  • Дозволяєтьсямаксимальна довжина імен файлів до 42 символів у OEM-кодуванні (зокрема, без підтримки довгих імен VFAT).

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

  • для оригінальної Xbox —рік 2000,
  • для Xbox 360 — знову1980, як у класичній FAT.

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

exFAT (Extended FAT)

[ред. |ред. код]
Докладніше:ExFAT

exFAT (Extended File Allocation Table) була представлена Microsoft у 2006 році разом ізWindows Embedded CE 6.0, а пізніше додана доWindows Vista SP1 іWindows XP SP3 (через окреме оновлення KB955704). Вона створена на базі архітектури FAT, але єповністю несумісною з попередніми реалізаціями. Цепропрієтарна файлова система, яка тривалий час була захищена патентами.

Головною метою exFAT була заміна FAT32 нафлеш-накопичувачах і картах пам’яті, особливо для пристроїв SDXC і Memory Stick XC. Однією з головних переваг стало усунення обмеження4 ГБ на розмір одного файлу — у структурі exFAT розміри зберігаються у64-бітних полях, що дозволяє зберігати файли обсягомдо 2⁶⁴−1 байтів (теоретично — ексабайти).

У Windows exFAT пропонується як альтернатива NTFS для флеш-носіїв і SD-карт. Код розділу0x07 у таблиці розділів MBR збігається з кодами для NTFS та HPFS, тому для точного визначення файлової системи необхідно читати завантажувальний сектор.

На відміну від FAT, у exFAT немає звичної структури BPB (BIOS Parameter Block). Вся службова інформація про геометрію розділу записується уVBR (Volume Boot Record) у власному форматі.

У 2010 році файлову систему exFAT булозворотно спроєктовано фахівцямиSANS Institute, що дозволило реалізувати сумісні драйвери у сторонніх ОС. А вже 28 серпня 2019 року Microsoftофіційно опублікувала специфікацію exFAT, відкривши шлях до підтримки уядрі Linux та інших системах з відкритим кодом.

Патенти та судові спори навколо FAT

[ред. |ред. код]

Патенти Microsoft на FAT

[ред. |ред. код]

У середині 1990-х років компаніяMicrosoft отримала низку патентів, пов’язаних з файловою системою FAT. Усі вони стосувалисямеханізму довгих імен VFAT, реалізованого у Windows 95. Йдеться про такі патенти США:

  • № 5,579,517
  • № 5,745,902
  • № 5,758,352
  • № 6,286,013

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

3 грудня 2003 року Microsoft оголосила про готовністьліцензувати FAT на умовах роялті: $0,25 з кожного пристрою (максимум $250 000 за одну угоду). Це стало важливим сигналом для виробників, які інтегрували FAT у свої пристрої, особливо портативні накопичувачі.

Ці патенти активно застосовувались Microsoft у судових справах. Хоча FAT як концепція вважається публічною, ключові розширення, як-от VFAT, були під патентним захистом.

Ліцензії і специфікації

[ред. |ред. код]

Microsoft надавала дозвіл на використання FAT у деяких випадках, наприклад, у специфікаціїEFI FAT32 (для UEFI-сумісних систем). Це інтерпретували як дозвіл на реалізацію підтримки FAT без окремої ліцензії, хоча юридично трактування залишалось спірним.

Окрім патентів Microsoft, існували й інші — наприклад, патент США № 5,367,671, який охоплюваврозширені атрибути OS/2. Він утратив чинність у 2011 році.

Спроби оскарження патентів

[ред. |ред. код]

У 2004 році організаціяPublic Patent Foundation (PUBPAT) звернулась доБюро патентів США (USPTO), вимагаючи перегляду чинності патенту № 5,579,517. В якості прикладів пріоритетних розробок вона навела рішення відXerox таIBM.

Результатом стало відкриттяповторної експертизи, за якою у 2005 році USPTOвідхилило всі пункти цього патенту, а також визналонедійсним патент № 5,758,352 через неправильно вказаних правонабувачів.

Однак у 2006 році USPTOскасувало попередні рішення, оголосивши реалізацію Microsoft «новою та неночевидною». Патенти були залишені чинними.

Судові справи проти TomTom і Motorola

[ред. |ред. код]

У 2009 році Microsoft подалапозов проти компанії TomTom, стверджуючи, що її пристрої з Linux порушують патенти на VFAT (довгі імена). Це сталопершим випадком прямого патентного позову Microsoft проти використання FAT у Linux.

Позов завершився позасудовим врегулюванням:

  • Microsoft отримала доступ до чотирьох патентів TomTom,
  • TomTom припинила використання VFAT-довгих імен,
  • Microsoft зобов’язалась не подавати нових позовів протягом п’яти років.

У 2010 році Microsoft подалаподібний позов проти Motorola, стверджуючи, що Android використовує VFAT без ліцензії. Паралельно було подано скаргу доМіжнародної торгової комісії США (ITC).

Обхід патентів і рішення судів ЄС

[ред. |ред. код]

Розробники з відкритим кодом створилиобхідні реалізації FAT, які не використовували патентовані частини VFAT. У 2013 році німецький Федеральний патентний суд визнав недійснимєвропейський патент EP0618540, що описував спільний простір імен для довгих і коротких назв файлів.

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

Див. також

[ред. |ред. код]

Примітки

[ред. |ред. код]
  1. абвгдDuncan, Ray (1988).The MS-DOS Encyclopedia(англ.). 16011 NE 36th Way, Box 97017, Redmond, Washington 98073-9717: Microsoft Press.ISBN 1-55615-049-0. Архіворигіналу за 14 жовтня 2018.
  2. абHunter, David (Березень 1983).The roots of DOS: Tim Paterson (ут) . Архіворигіналу за 6 вересня 2019.
  3. Understanding the FAT File System and its evolution.LSoft Technologies(англ.). Процитовано 1 травня 2025.

Література

[ред. |ред. код]
  • Пройдаков Е. М.,Теплицький Л. А. Англо-український тлумачний словник з обчислювальної техніки, Інтернету і програмування. — Київ : СофтПрес. — С. 552. —ISBN 966-530-070-9.
Дискові
NAS
Спеціалізовані
Псевдо- і віртуальні
Шифровані
Інструменти керування
Програми
Shell
Сервіси
Файлові системи
Сервер
Архітектура
Безпека
Сумісність
API
Ігри
Відкинуті
Інше
СтандартиEcma International
Програмні інтерфейси
Файлові системи (стрічки)
Файлові системи (диски)
Графічні
Мови програмування
Інтерфейси радіозв'язку
Інші
Отримано зhttps://uk.wikipedia.org/w/index.php?title=FAT&oldid=47213304#FAT12_—_рішення_для_5.25-дюймових_дискет_епохи_перших_ПК
Категорії:
Прихована категорія:

[8]ページ先頭

©2009-2026 Movatter.jp