Файловая система MS-DOS

Файловая система MS-DOS — одна из тех систем, которые применялись на первых персональных компьютерах. До появления Windows 98 и Windows ME она была основной файловой системой. Она все еще поддерживается на Windows 2000, Windows XP и Windows Vista, но теперь уже не является стандартом для новых персональных компьютеров, за исключением тех случаев, когда на них используются гибкие диски.
Тем не менее она и ее расширение (FAT-32) нашли широкое применение во многих встраиваемых системах. Ее используют большинство цифровых камер. Многие MP3- плееры используют только эту систему. Популярное устройство Apple iPod использует ее в качестве исходной файловой системы, хотя искушенные хакеры могут переформатировать iPod и установить другую файловую систему. Таким образом, электронных устройств, использующих файловую систему MS-DOS, стало намного больше, чем
когда-либо в прежние времена, и их несомненно больше, чем устройств, использующих более современную файловую систему NTFS. Уже только по этой причине стоит рассмотреть эту систему более подробно.

Чтобы прочитать файл, программа MS-DOS должна сначала сделать системный вызов open, чтобы получить его дескриптор. Системному вызову open указывается путь, который может быть как абсолютным, так относительным (от текущего рабочего каталога). В пути ведется покомпонентный поиск до тех пор, пока не будет определено местоположение последнего каталога, после чего происходит его чтение в память. Затем в нем ведется поиск открываемого файла.

Хотя каталоги в файловой системе MS-DOS переменного размера, в них используются записи фиксированного размера — 32 байта. Формат записи каталога системы MS-DOS показан на рис. 4.26. В этой записи содержатся имя файла, его атрибуты, дата и время создания, номер начального блока и точный размер файла. Имена файлов короче 8 + 3 символов выравниваются по левому краю полей, и каждое поле по отдельности дополняется пробелами. Поле Attributes (атрибуты) представляет собой новое поле, содержащее биты, указывающие, что для файла разрешено только чтение, файл должен быть заархивирован, файл является системным или скрытым. Запись в файл, для которого разрешено только чтение, не разрешается. Таким образом осуществляется защита файлов от случайных повреждений. Бит archived (архивный) не играет для операционной системы никакой роли (то есть MS-DOS его не проверяет и не устанавливает). Он предназначен для того, чтобы пользовательские программы архивирования его сбрасывали при создании резервной копии файла, а остальные программы его устанавливали, если файл подвергся модификации. Таким образом, программа резервного копирования получает возможность просто просмотреть состояние этого бита у каждого файла, чтобы определить, какие именно файлы следует архивировать. Бит hidden (скрытый файл) может быть установлен для предотвращения появления файла при отображении содержимого каталога. В основном он используется для того, чтобы не смущать новичков присутствием файлов, назначение которых им непонятно. И наконец, бит system (системный) также скрывает файлы и защищает их от случайного удаления командой del. Этот бит установлен у всех файлов, содержащих основные компоненты системы MS-DOS.

Зарезервировано первого блока

В записи каталога содержатся также дата и время создания или последнего изменения файла. Точность показания времени составляет ±2 с, поскольку под него отводится 2-байтовое поле, способное хранить только 65 536 уникальных значений (а в сутках 86 400 с). Это поле времени подразделяется на секунды (5 бит), минуты (6 бит) и часы (5 бит). Счетчики даты в днях также используют три подполя: день (5 бит), месяц (4 бита) и год — 1980 (7 бит). При использовании 7-разрядного числа для года и отсчета
времени с 1980 года самым большим отображаемым годом будет 2107-й. Это означает, что файловой системе MS-DOS присуща проблема 2108 года.

Чтобы избежать катастрофы, пользователи системы MS-DOS должны как можно раньше начать подготовку к 2108 году. Если бы в MS-DOS использовались объединенные поля даты и времени в виде 32-разрядного счетчика секунд, то удалось бы добиться точности до секунды, а катастрофу можно было бы отложить до 2116 года.

В MS-DOS размер файла хранится в виде 32-разрядного числа, поэтому теоретически файл может иметь размер до 4 Гбайт. Но другие ограничения, рассматриваемые далее, приводят к тому, что максимальный размер файла равен 2 Гбайт или еще меньше. Как ни удивительно, но значительная часть записи (10 байт) остается неиспользуемой.

В MS-DOS файловые блоки отслеживаются через таблицу размещения файлов (FAT — file allocation table), содержащуюся в оперативной памяти. В записи каталога хранится номер первого блока файла. Этот номер используется в качестве индекса к одному из 64 K элементов FAT в оперативной памяти[18]. Следуя по цепочке, можно найти все блоки. Работа с FAT показана на рис. 4.9.

Существуют три версии файловой системы, использующей FAT: FAT-12, FAT-16 и FAT- 32 в зависимости от разрядности дискового адреса. Вообще-то название FAT-32 дано несколько неверно, поскольку для адресов диска используются только 28 бит младшего разряда. Ее следовало бы назвать FAT-28, но число, являющееся степенью двойки, куда более благозвучно.

Еще одним вариантом файловой системы FAT является exFAT, введенная компанией Microsoft для больших съемных устройств. Компания Apple лицензировала exFAT, поэтому она является одной из современных файловых систем, которая может использоваться для переноса файлов в обе стороны между компьютерами Windows и компьютерами OS X. Поскольку на exFAT распространяется право собственности и компания Microsoft не выпустила ее спецификацию, далее она рассматриваться не будет.

Для всех вариантов FAT размер дискового блока может быть кратен 512 байтам (это число может быть разным для каждого раздела) и браться из набора разрешенных размеров блока (которые Microsoft называет размерами кластера), разных для каждого варианта. В первой версии MS-DOS использовалась FAT-12 с блоками по 512 байт, задавая максимальный размер раздела 212 • 512 байт (на самом деле только 4086 • 512 байт, поскольку 10 дисковых адресов задействовано в качестве специальных маркеров, например конца файла, плохого блока и т.

д.). При этом максимальный размер дискового раздела составлял около 2 Мбайт, а размер таблицы FAT в памяти был 4096 записей по 2 байта каждая, поскольку при использовании в таблице 12-разрядных записей система работала бы слишком медленно.

Эта система хорошо работает с гибкими дисками, но с появлением жестких дисков возникла проблема. Microsoft решила эту проблему, разрешив дополнительные размеры блоков в 1, 2 и 4 Кбайт. Такое изменение сохраняет структуру и размер таблицы FAT-12, но допускает использование размера дисковых разделов вплоть до 16 Мбайт.

Так как MS-DOS поддерживала четыре дисковых раздела на каждый привод, новая файловая система FAT-12 работала с дисками объемом до 64 Мбайт. Но кроме этого нужно было что-нибудь другое. Поэтому была представлена FAT-16 с 16-разрядными дисковыми указателями. Дополнительно были разрешены размеры блоков 8, 16 и 32 Кбайт. (32 768 — это наибольшее число, кратное степени двойки, которое может быть представлено 16 разрядами.) Таблица FAT-16 теперь все время занимала 128 Кбайт оперативной памяти, но с ростом доступного объема памяти она получила широкое распространение и быстро вытеснила файловую систему FAT-12. Объем наибольшего дискового раздела, поддерживаемого FAT-16, стал равен 2 Гбайт (64 K записей по 32 Кбайт каждая), а наибольший объем диска — 8 Гбайт, то есть четыре раздела по 2 Гбайт каждый. Долгое время этого было вполне достаточно.

Но такая ситуация сохранилась не навсегда. Для деловых писем такое ограничение не играло существенной роли, а вот при хранении цифрового видео, использующего DV- стандарт, в файле размером 2 Гбайт умещался видеофрагмент продолжительностью чуть больше 9 минут. Как следствие того, что на диске персонального компьютера поддерживаются только четыре раздела, самый большой видеофрагмент, который можно было сохранить на диске, продолжался около 38 минут независимо от того, насколько объемным был сам диск. Это ограничение также означало, что продолжительность наибольшего видеофрагмента, который можно было подвергнуть линейному монтажу, мог быть менее 19 минут, поскольку для этого требовался как входной, так и выходной файлы.

Начиная со второго выпуска Windows 95 была представлена файловая система FAT-32, использующая 28-разрядные дисковые адреса, а версия MS-DOS, положенная в основу Windows 95, была приспособлена для поддержки FAT-32. В этой системе разделы теоретически могли быть по 228 • 215 байт, но на самом деле они ограничивались размером 2 Тбайт (2048 Гбайт), поскольку система ведет учет размеров разделов секторами по 512 байт, используя 32-разрядные числа, а 29 • 232 = 2 Тбайт. Максимальный размер раздела для различных размеров блока и всех трех типов FAT показан в табл. 4.4.

Кроме поддержки дисков большого объема файловая система FAT-32 имеет два других преимущества над FAT-16. Во-первых, диск объемом 8 Гбайт, на котором используется FAT-32, может быть отформатирован одним разделом. При использовании FAT-16 он должен был иметь четыре раздела, которые появлялись бы для пользователя Windows как логические диски C:, D:, E: и F:. Пользователь должен был сам решать, какой файл на какой диск поместить, и следить за тем, что где находится.

Таблица 4.4. Максимальный размер раздела для различных размеров блока (пустые клетки означают запрещенные комбинации)
Размер блока, Кбайт FAT-12, Мбайт FAT-16, Мбайт FAT-32, Тбайт
0,5 2
1 4
2 8 128
4 16 256 1
8 512 2
16 1024 2
32 2048 2


Другое преимущество FAT-32 над FAT-16 заключается в том, что для дискового раздела заданного размера могут использоваться блоки меньшего размера. Например, для 2-гигабайтного дискового раздела система FAT-16 должна использовать 32-килобайтные блоки, иначе при наличии всего 64 К доступных дисковых адресов она не смогла бы покрыть весь раздел. В отличие от нее FAT-32 может использовать, к примеру, блоки размером 4 Кбайт для 2-гигабайтного дискового раздела. Преимущество блоков меньшего размера заключается в том, что длина большинства файлов менее 32 Кбайт. При размере блока 32 Кбайт даже 10-байтовый файл будет занимать на диске 32 Кбайт. Если средний размер файлов, скажем, равен 8 Кбайт, то при использовании 32-килобайтных блоков около 3/4 дискового пространства будет теряться впустую, то есть эффективность использования диска будет очень низкой. При 8-килобайтных файлах и 4-килобайтных блоках потерь дискового пространства не будет, но зато для хранения таблицы FAT потребуется значительно больше оперативной памяти. При 4-килобайтных блоках 2-гигабайтный раздел будет состоять из 512 К блоков, поэтому таблица FAT должна состоять из 512 К элементов (занимая 2 Мбайт ОЗУ).

Файловая система MS-DOS использует FAT для учета свободных блоков. Любой нераспределенный на данный момент блок помечается специальным кодом. Когда системе MS-DOS требуется новый блок на диске, она ищет в таблице FAT элемент, содержащий этот код. Поэтому битовый массив или список свободных блоков не нужен.

4.5.2.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Файловая система MS-DOS:

  1. § 39 Классификация договоров в отдельных видах. – Римская классификация. – Система прусского закона, французского и австрийского кодекса. – Система русского свода. – Система настоящего изложения.
  2. Тема 15 Правова система і система права. Система законодавства та систематизація нормативно-правових актів
  3. Глава 4. Система права и система законодательства
  4. §5. Система военных судов в РФ как часть системы судов общей юрисдикции
  5. Единство и взаимосвязь правовой системы и системы правового общества
  6. § 1.3. Система трудового права і система трудового законодавства
  7. § 33 Общее правило о переходе наследства к детям. – Отличие отделенных от неотделенных. – Право представления. – Право родительское. – Право боковых родственников. – Римская система определения прав по классам и степеням. – Германская система определения прав по линиям и коленам.
  8. § 14 Отношения супругов по имуществу. – Германское начало общения имуществ в браке и римская система приданого. – Особое имущество жены. – Разнообразные системы западных законодательств. – Раздел имуществ по прекращении брака. – Ограничения брачных договоров и сделок между супругами. – Английский закон об отношениях супругов по имуществу.
  9. § 34 Смешанные системы в новейших законодательствах. – Происходящее от различия сих систем различие в порядке раздела и в допущении права представления. – Ограничение наследственного права пределами родства. – Ограничение женщин. – Разделение наследства между родами. – Возвращение подаренного родителями. – Наследование супругов и незаконных детей и родителей. – Закон наследования в Англии.
  10. Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание, 2007
  11. СИСТЕМА
  12. СИСТЕМА НЕРВНАЯ
  13. Тема 20. Смешанные правовые системы
  14. СИСТЕМА ТЕЙЛОРА
  15. 3. Система законодавства
  16. СИСТЕМА ЭРРАТИЧЕСКАЯ
  17. СИСТЕМА ИНДИКАЦИИ
  18. СИСТЕМА ВЕСТИБУЛЯРНАЯ
  19. СИСТЕМА СИГНАЛЬНАЯ