Файлова система MS-DOS є збільшеною і поліпшену версію файлової системи СР / М. яка працює тільки на платформах з центральним процесором Intel. не підтримує багатозадачності і працює тільки в реальному режимі IBM PC. Файлова система MS-DOS багато в чому нагадує файлову систему СР / М, включаючи використання імен файлів, що складаються з 8 + 3 символів верхнього регістру. У першій версії системи (MS-DOS 1.0) був всього один каталог, як і в СР / М. Однак, починаючи з версії операційної системи MS-DOS 2.0. функціональність файлової системи значно розширилася. Найсерйознішим поліпшенням з'явився перехід на ієрархічну файлову систему, в якій каталоги могли вкладатися один в одного на довільну глибину. Це означало, що кореневої каталог (розмір якого як і раніше був обмежений) міг утримувати підкаталоги, які так само могли утримувати свої підкаталоги. Зв'язки, прийняті в UNIX. не допускалися, тому файлова система представляла дерево, яке починалося в кореневому каталозі.
Прикладні програми часто починають з того, що задають в кореневому каталозі підкаталог, в який записують свої файли, що дозволяє програмам уникнути конфлікту. Так як самі каталоги зберігаються в MS-DOS як файли, немає обмеження на число каталогів або файлів на диску. Однак на відміну від СР / М. в MS-DOS немає концепції різних користувачів. Відповідно, будь-який увійшов в систему користувач отримує доступ до всіх файлів.
Щоб прочитати файл, програма, що працює в системі MS-DOS. повинна спочатку зробити системний виклик open. щоб отримати дескриптор файлу [4]. Системному виклику open в якості одного з вхідних аргументів слід вказати шлях до файлу, який може бути як абсолютним, так і відносним (щодо поточного каталогу). Файлова система відкриває каталоги, перераховані в дорозі, один за іншим, поки не виявляє останній каталог, який зчитується в оперативну пам'ять. Потім в ліченому каталозі шукається описатель файлу, який потрібно відкрити.
Хоча каталоги в файлової системі MS-DOS змінного розміру, які використовуються каталоговий записи, як і в СР / М. мають фіксований розмір 32 байт (рис.1.). Описувач файлу містить: ім'я файлу, його атрибути, дату і час створення, номер початкового блоку і точний розмір файлу. Імена файлів коротше 8 + 3 символів вирівнюються по лівому краю полів і доповнюються пробілами, кожне поле окремо. Поле Attributes (атрибути) являє собою нове поле, що містить біти, які вказують тип файлу (заархівований, системний або прихований) і дії, які йому дозволені (читання або читання і запис). Запис в файл, для якого дозволено тільки читання, не дозволяється. Таким чином, здійснюється захист файлів від випадкового запису або видалення.
Біт archived (архівний файл) не встановлюється і не перевіряється операційною системою. Він зарезервований в описувач для архівуються програм рівня користувача, що скидають цей біт при створенні резервної копії файлу, в той час як програми, що модифікують файл, встановлюють цей біт. Таким чином архівується програма визначає які файли підлягають архівації. Біт hidden (прихований файл) дозволяє не відображати файл у переліку файлів каталогу, що дозволяє приховати від недосвідчених користувачів файли, призначення яких їм невідомо. Біт system (системний) також приховує файли і захищає їх від випадкового видалення командою del. він встановлений у основних компонентів системи MS-DOS.
Каталогова запис також містить дату і час створення або останньої зміни файлу. Час зберігається з точністю ± 2 секунди, так як для нього відведено 2-байтовое поле, здатне утримувати за все 65536 унікальних значень, а в добі 86400 секунд. Поле часу розбивається на підполя: секунди (5 біт), хвилини (6 біт) і годинник (5 біт). Шестнадцатіразрядное поле дати також розбивається на три підполя: день (5 біт), місяць (4 біт) і рік - 1980 (7 біт). При 7 довічних розрядах для зберігання року і 1980 в якості точки відліку, максимальне значення року, яке можна отримати - 2107-й, тому файлова система MS-DOS має вбудовану проблему 2108 року.
Мал. 2. Таблиця розміщення файлів
Залежно від кількості блоків на диску в системі MS-DOS застосовується три версії файлової системи FAT. FAT-12. FAT-16 і FAT-32. У всіх файлових системах FAT розмір блоку диска в байтах може бути встановлений рівним деякому числу, кратному 512 с наборами дозволених розмірів блоків (кластерів), різними для кожного варіанта FAT. У першій версії системи MS-DOS використовувалася FAT-12 з 512- байтовими блоками, що дозволяло створювати дискові розділи розміром до 212 х 512 байт. При цьому максимальний розмір дискового розділу міг становити 2 Мбайт, а в оперативній пам'яті FAT -таблиця займала 4096 елементів по два байта кожен. Така система добре працювала на гнучких дисках. Для роботи на жорстких дисках корпорація Microsoft вирішила використовувати дискові блоки (кластери) розміром 1,2 і 4 Кбайт, що дозволило зберегти структуру і розмір таблиці FAT-12 і збільшити розмір дискового розділу до 16 Мбайт.
Так як MS-DOS підтримувала до чотирьох дискових розділів, файлова система FAT-12 могла працювати з дисками ємністю до 64 Мбайт. Для підтримки жорстких дисків більшого розміру була розроблена файлова система FAT-16 з 16-розрядними дисковими покажчиками. Додатково було дозволено використовувати кластери розмірів 8, 16 і 32 Кбайт. Таблиця FAT-16 займала 128 Кбайт оперативної пам'яті, максимальний розмір дискового розділу, підтримуваний файлової системою, становив 2 Гбайт (64 К елементів по 32 Кбайт кожен), максимальний розмір диска становив 8 Гбайт (4 розділу по 2 Гбайт кожен).