Що формат фс fat вважається. Що треба робити, якщо зникли дані? Організація файлової системи fat

Вступ

2.1 Система FAT16

2.2 Система FAT32

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

3.1 Система NTFS

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

Висновок

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

Вступ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.1 Система FAT16

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.1 Система NTFS

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

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

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

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

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

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

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

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

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

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

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

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

Переваги:

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

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

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

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

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

Недоліки:

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

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

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

Переваги:

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

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

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

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

Недоліки:

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

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

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

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

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

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

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

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

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

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

Висновок

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

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

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

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

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

FAT16

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

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

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

FAT32

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Переваги FAT16

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Недоліки NTFS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Відразу скажу, я не мав мети писати свій драйвер або детально розбиратися в тонкощах, мені було просто цікаво. Завдання досить просте для розуміння, тому «кодів» тут не буде.

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

Як було вище сказано, записати і прочитати можна лише кратно 512 байтам, тобто. 1 сектор. Також є поняття - кластер це тупо кілька секторів, наприклад, якщо розмір кластера 16кБ, то означає, що в ньому 16000/512 = 31.25, точніше 32 сектори, а реальний розмір кластера 16384 байта. Усі файли займають розмір кратно розміру кластера. Навіть якщо файл розміром 1кБ, а кластер 16кБ, файл буде займати всі 16кБ.

Логічно було б робити кластери, невеликого розміру, то тут входить у справу обмеження на максимальну кількість файлів та їх розмір. FAT16 оперує 16 бітними даними, тому не можна запхати більше 2^16 кластерів. Тому чим менше їх розмір, тим ефективніше використовується місце під дрібні файли, але тим менше інформації можна запхати на диск. І навпаки, чим більше розмір, тим більше інформації можна впхати, але тим менш ефективно використовується місце під дрібні файли. Максимальний розміркластера 64кБ, тож максимум для FAT16 64кб*2^16 = 4Гб.

Вихідні дані: є картка пам'яті micro SD на 1Гб. Має мітку MYDISK, повністю відформатована, розмір кластера 16кБ.

Знадобиться редактор Hex, але будь-хто не підійде, потрібен такий, який може переглядати диск повністю, а не тільки файли на диску. З того, що мені вдалося знайти: WinHex найпридатніший, але платний; HxD простий, безкоштовний, але мені не вдалося змусити його зберігати зміни на диску; DMDE є трохи не user friendly, безкоштовний і дозволяє зберегти зміни. Загалом я зупинився на HxD.

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

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

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

Найцікавіші дані вказані у таблиці

Перше, що нам потрібно, це дізнатися розмір завантажувальної області. Дивимося адресу 0x0E і, що під завантажувальну область виділено 4 сектора, тобто. з адреси 4*512=0x800 починається область FAT.

Кількість таблиць FAT можна визначити на адресу 0x10 завантажувальної області. У нашому прикладі їх дві, чому дві, тому що кожна таблиця дублюється резервною, щоб у разі збою можна було відновити дані. Розмір таблиці вказано на адресу 0x16. Таким чином, розмір фата 512*2*0xEE = 0x3B800, а кореневий каталог починається з адреси: 0x800 + 0x3B800 = 0x3C000

Усередині кореневого каталогу всі елементи розбиті по 32 байти. Перший елемент, це мітка тому, а ось наступні елементи це файли та папки. Якщо назва файлу починається з 0xE5, це означає, що файл видалено. Якщо назва починається з 0x00, це означає, що попередній файл був останнім.

Досить цікава структура кореневого каталогу вийшла у мене. Карта була відформатована повністю, потім створено 2 текстові файли, які перейменовані в MyFile.txt і BigFile.txt.

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

Найважливіше, що можна тут написати, це адреса першого кластера, з якого починаються дані нашого файлу. Адреса завжди знаходиться у зміщенні 0x1A. Наприклад, ім'я нашого файлу MyFile.txt розташоване за адресою 0x3C100, до нього додаємо 0x1A, там бачимо номер першого кластера. = 0x0002 тобто. другий кластер. Для файлу BigFile.txt дані починаються з третього кластера.

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

Розмір вказаний у завантажувальному секторі за адресою 0x11(2байт) = 0x0200*32 = 0x4000 або 16384 байт.

Додамо до адреси кореня його розмір: 3С000 + 4000 = 40000 це адреса першого кластера даних, але нам потрібна друга, щоб знайти MyFile.txt. Кількість секторів кластері 32, розмір кластера = 32*512 = 16384 чи 0x4000, тому додамо до адреси першого кластера, його розмір тобто. з 0x44000 за ідеєю має розпочатися другий кластер.

Йдемо за адресою 0x44000 і бачимо, що дані належать BigFile.txt (у ньому просто сміття)

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

Тепер питається. Навіщо нам потрібна таблиця FAT? Річ у тім, що можуть бути фрагментированы, тобто. початок файлу може бути в одному кластері, а кінець у зовсім іншому. Причому це можуть бути різні кластери. Їх може бути кілька розкиданих у різних областях даних. Таблиця FAT - це свого роду карта, яка нам вказує, як нам переміщатися між кластерами.

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

Перші вісім байт 0xF8FFFFFF це ідентифікатор початку таблиці фат. Далі йде 2 байти, які відносяться до MyFile.txt, що в них записано 0xFFFF означає, що файл займає всього один кластер. А ось наступний файл BigFile.txt починається в третьому кластері, це ми пам'ятаємо з кореневої директорії, продовжується в четвертому, далі йде в 5,6,7 і закінчується в 12, тобто. займає 10 кластерів.

Перевіримо, чи це дійсно так. Файл важитиме 163кБ, тобто. займає 163000/(32*512) = 9.9 кластерів, що цілком схоже на очікуване. Повторимося вкотре, що один елемент у таблиці FAT займає 2 байти, тобто. 16 біт, звідси і походить назва FAT16. Відповідно максимальна адреса дорівнює 0xFFFF, тобто. максимальний об'єм для FAT16 0xFFFF* розмір кластера.

Перейдемо до FAT32. Завантажувальна частина трохи змінена.

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

Адреса області даних обчислюється:
розмір завантажувального сектора + таблиці FAT, у моєму випадку вийшло:
746496 + (3821056*2) = 0x800000

Адреса кореневого каталогу обчислюється:
(Номер першого кластера кореневого каталогу - 2) * розмір кластера + адреса початку області даних,
тобто. у цьому прикладі він збігатися з початком області даних.

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

А ось початок першого кластера в MYFILE.txt визначається тепер двома байтами, старший за зміщенням 0x14, молодший як і раніше 1A. Тому номер першого кластера даних для файлу буде:
8000A0 + 0x14 = 0x8000B4 - старший байт
8000A0 + 0x1A = 0x8000BA - молодший байт
У моєму випадку карта була лише з одним файлом, тому це третій кластер.

Таблиця FAT шукається як і попередньому випадку, тільки тепер елементи займають 4 байти, звідси і назва FAT32. Ідеологія розташування елементів точно як у попередньому випадку.

Полезняшки для таблиці
F8 FF FF F0 - перший кластер
FF FF FF 0F - останній кластер
FF FF FF F7 - пошкоджений кластер

Де ж дані?
початок області даних + розмір кластера * (номер кластера кореневого - 1)
= 0x800000 + (2 * 4096) = 0x801000

Сподіваюся загалом стало зрозуміло, начебто нічого надприродного немає. Хто прочитав і повторив може з'їсти печінку 🙂

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

Файлова система була розроблена Біллом Гейтсом та Марком Мак Дональдом у 1977 році і спочатку використовувалася в операційній системі 86-DOS. Надалі 86-DOS було придбано Microsoft і став основою ОС MS-DOS 1.0, випущеної серпні 1981 року. FAT була призначена для роботи з гнучкими дисками розміром менше 1 Мб і спочатку не передбачала підтримки жорстких дисків.

Наразі існує чотири версії FAT - FAT8, FAT12, FAT16і FAT32. Вони відрізняються розрядністю записів у дисковій структурі, тобто кількістю біт, відведених для зберігання номера кластера. FAT12 застосовується в основному для дискет, FAT16 – для дисків малого об'єму, FAT32 – для жорстких дисків. На основі FAT була розроблена нова файлова система exFAT(extended FAT), що використовується переважно для флеш-накопичувачів.

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

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

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

Організація файлової системи fat

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

A- доріжка

C-кластер

Малюнок 1- Структура диска

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

Кожна доріжка розбивається на ділянки, які називаються секторами. Секторам також надаються номери. Першому сектору на доріжці надається номер 1, другому - 2 і т.д.

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

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

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

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

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

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

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

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

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

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

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

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

BIOS Parameter Block

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

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

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

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

FSInfo

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

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

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

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

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

RootDirSectors = (BPB_RootEntCnt * 32) / BPB_BytsPerSec

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

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

CountofClusters = DataSec / BPB_SecPerClus

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

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

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

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

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

Примітки

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

Посилання

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



Top