Файловые системы fat32 ntfs. Архитектура файловой системы FAT

04.03.2020 Photoshop 3D

Расширенные атрибуты всех файлов.

VFAT

VFAT - это расширение FAT, появившееся в Windows 95 . В 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 для томов объёмом более 2 16 = 65 536 секторов, то есть более 32 Мб при стандартном размере сектора 512 байт. В MS-DOS 4.0 (1988) вышеназванное поле BPB было расширено до 32 бит, что означало увеличение теоретического размера тома до 2 32 = 4 294 967 296 секторов, то есть до 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 for 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 companies sign Microsoft patent protection pacts (англ.) . Блоги Computerworld . IDG (5 марта 2009). Архивировано из первоисточника 22 августа 2011. Проверено 9 марта 2009.
  11. Erica Ogg. TomTom countersues Microsoft in patent dispute (англ.) . CNet (19 марта 2009). Архивировано из первоисточника 22 августа 2011. Проверено 20 марта 2009.

Ссылки

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

На сегодня выбор файловой системы при форматировании носителя становится актуальным. Допустим, Вы хотите отформатировать жесткий диск или флэшку, при этом есть выбор: отформатировать в такие файловые системы как NTFS , FAT32 , FAT , FAT16 , exFAT . Существует еще , но таковой, по сути, не является, а обозначает наличие проблем с диском.

Пользователи начинают форматировать, как им может быть советовали, или они где-то прочитали в NTFS или FAT32, которые являются наиболее популярными файловыми системами, в отличие от остальных. Например, exFAT на сегодня, является еще не самой распространенной, да и не все операционные системы ее поддерживают.

Сейчас мы поговорим о том, в чем отличие FAT32 от NTFS.

Отличие FAT32 от NTFS

FAT32 – файловая система создана на основе FAT16. Она является наиболее старой и не безопасной. Также, технология FAT использовалась еще в Windows 95 и 98. Если Ваш носитель отформатирован под данную файловую систему, то файлы, находящиеся на носителе видны любому пользователю, имеющему доступ к компьютеру. Минус файловой системы в том, что она имеет ограничение на размер. Создать раздел более 32 Гб невозможно. Расшифровка файловой системы выглядит так: File Allocation Table.

NTFS – эта файловая система наиболее предпочтительна и имеет ряд преимуществ перед FAT32

  • Может автоматически восстанавливаться в случае ошибок на диске
  • Поддержка жестких дисков с большим объемом улучшена
  • Более безопасная файловая система. Можно использовать шифрование или запрет на какие-либо данные.

Как показала практика, NTFS работает медленнее FAT32, но в обращении с файлами больших размеров работает эффективнее. Также, для NTFS потребуется больше оперативной памяти, компьютеры и прочие устройства с ОЗУ меньше 64 Мб NTFS не поддерживает. Хотя таких компьютеров, скорее всего и не существует.

В итоге, можно сказать следующее, что NTFS рационально использует дисковое пространство и неплохо работает с файлами большого размера, но FAT32 работает быстрее, правда поддерживает работу с файлами только до 4 Гб. NTFS более надежен, FAT32 не требует большого объема оперативной памяти.

Под какую файловую систему форматировать свой жесткий диск или флэшку решать Вам. Также, обсуждаем в комментариях, какая же все таки лучше.

Системы управления файлами.

Файловая система FAT . Файловые системы VFAT и FAT32 .

1. Области логического диска

2. Загрузочный сектор

3. Таблица размещения файлов

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

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

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

В файловой системе FAT дисковое пространство любого логического диска делится на две области:

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

· область данных.

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

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

· загрузочного сектора, содержащего загрузочную запись (boot record) ;

· зарезервированных секторов (их может и не быть);

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

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

Эти компоненты расположены на диске друг за другом.

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

В отличие от системной области, область данных доступна через пользовательский интерфейс DOS .

Загрузочный сектор

Формирование загрузочной записи происходит при форматировании (например, FORMAT) .Формат загрузочного сектора зависит от ОС и даже от версии.

Загрузочный сектор является самым первым на логическом диске. Он содержит загрузочную запись (boot record) .

Загрузочная запись состоит из двух частей:

· блока параметров диска (disk parameter block) - часто наз. блоком параметров BIOS (BPB) или Extended BPB (для более старших версий ОС)

· программы начальной загрузки ОС (system bootstrap).

Первые два байта загрузочной записи - команда безусловного перехода на системный загрузчик - JMP 3Eh . В третьем байте - NOP (90h ).

Затем следует блок параметров диска, а после него - загрузчик ОС.

Блок параметров диска содержит следующую информацию

· размер сектора,

· число секторов в кластере,

· число зарезервированных секторов,

· количество копий FAT ,

· максимальное количество элементов ROOT ,

· количество секторов в таблице FAT ,

· число секторов на дорожке,

· метку тома,

· имя файловой системы

· и другие параметры (байт-описатель среды по смещ 0Ah= F8H- ж.д. любой емкости; F0 -дискета 1.44, 3.5’’) .

Загрузочные записи различных операционных систем отличаются обычно структурой блока параметров. В некоторых есть и дополнительные поля.

Подробно мы познакомимся с загрузочной записью на лабораторных работах.

Между загрузочным сектором и FAT могут находиться зарезервированные секторы, которые являются служебными для файловой системы или не используются. Количество зарезервированных секторов определено в BPB . (В форматном просмотре - Reserved sectors at beginning - если =1, то это MBR)

Для просмотра и редактирования, а также сохранения и восстановления загрузочной записи можно использовать утилиту Disk Editor .

Таблица размещения файлов

Таблица размещения файлов (File Allocation Table - FAT) по сути является картой области данных.

Область данных разбивают на так называемые кластеры. Кластер - это один или несколько смежных секторов области данных. С другой стороны, кластер - это минимальная адресуемая единица дисковой памяти, выделяемая файлу. Т.е. файл или каталог занимает целое число кластеров. Для создания и записи на диск нового файла операционная системаотводит для него несколько свободных кластеров диска. Эти кластеры не обязательно должны следовать друг за другом. Для каждого файла хранится список всех номеров кластеров, которые предоставлены данному файлу.

На дискетах кластер занимает один или два сектора, а на жестких дисках - в зависимости от объема раздела:

для разделов емкостью 16-127 Мбайт- 4 сектора в кластере (размер кластера - 2 Кбайта);

для разделов емкостью 128-255 Мбайт- 8 секторов в кластере (4 Кб);

для разделов емкостью 256-511 Мбайт- 16 секторов в кластере (8 Кб);

для разделов емкостью 512-1023 Мбайт- 32 сектора в кластере (16 Кб);

для разделов емкостью 1024-2047 Мбайт- 64 сектора в кластере (32 Кб).

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

· уменьшить размер таблицы FAT ;

· уменьшить фрагментацию файлов;

· сокращается длина цепочек файла Þ ускоряется доступ к файлу.

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

В современных файловых системах (FAT32, HPFS, NTFS) эта проблема решается за счет ограничения размера кластера (максимум 4 Кбайта)

Каждый элемент таблицы FAT (12, 16 или 32 бит) соответствует одному кластеру диска и характеризует его состояние: свободен, занят или является сбойным кластером (bad cluster).

· Если кластер распределен какому-либо файлу (т.е., занят), то соответствующий элемент FAT содержит номер следующего кластера файла;

· последний кластер файла отмечается числом в диапазоне FF8h - FFFh (FFF8h - FFFFh);

· если кластер является свободным, он содержит нулевое значение 000h (0000h);

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

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

Первый элемент FAT описывает среду загрузочного сектора. Его первый байт совпадает с байтом-описателем среды носителя данных (смещение 0Ah - см. табл.4) и равен 0F0h для гибкого магнитного 3,5 дм. диска или 0F8h для жесткого диска. Следующие 5 байт (7 байт) для 12-разрядного (16-разрядного) формата содержат значение 0FFh .

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

Она хранится в двух идентичных экземплярах, которые следуют друг за другом. При разрушении первой копии таблицы используется вторая.

В связи с тем, что FAT используется очень интенсивно при доступе к диску, она обычно загружается в ОП (в буфера ввода/ вывода или кэш)и остается там настолько долго, насколько это возможно.

Основной недостаток FAT - медленная работа с файлами. При создании файла работает правило - выделяется первый свободный кластер. Это ведет к фрагментации диска и сложным цепочкам файлов. Отсюда следует замедление работы с файлами.

Для просмотра и редактирования таблицы FAT можно использовать утилиту Disk Editor .

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

Подробнаяинформация о самом файле хранится в другой структуре, которая называется корневым каталогом. Каждый логический диск имеет свой корневой каталог (ROOT, англ. - корень).

Корневой каталог описываетфайлы и другие каталоги. Элементом каталога является дескриптор (описатель) файла.

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

· имя (8 байт)

· расширение (3)

· дату создания или последней модификации (2)

· время создания или последней модификации (2)

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

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

· зарезервированное поле, которое не используется (10)

· номер первого кластера в цепочке кластеров, отведенных файлу или каталогу; получив этот номер, операционная система, обращаясь к таблице FAT, узнает и все остальные номера кластеров файла (2 байта).

Итак, пользователь запускает файл на выполнение. Операционная система ищет файл с нужным именем, просматривая описания файлов в текущем каталоге. Когда найден требуемый элемент в текущем каталоге, операционная система считывает номер первого кластера данного файла, а затем по таблице FAT определяет остальные номера кластеров. Данные из этих кластеров считываются в оперативную память, объединяясь в один непрерывный участок. Операционная система передает управление файлу, и программа начинает работать.

Для просмотра и редактирования корневого каталога ROOT можно также использовать утилиту Disk Editor .

Замечание. В последнее время объемы дисковых механизмов намного превысили максимально до­пустимый размер, приемлемый для FAT, - 8,4 Гбайт. Этот предел объясняется максимально возможными значениями в адресе сектора, для которого отводится всего 3 байта. Поэтому в подавляющем большинстве слу­чаев при работе в среде Windows-систем FAT не используется (используют либо FAT32, либо NTFS ).

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

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

Используется эта файловая система в Windows 95. Поддерживается она также и в Windows NT 4.

VFAT - это «родная» 32-разрядная файловая система Windows95 . Ее контролирует драйвер VFAT.VXD .

Управляет различными файловыми системами и приложениями диспетчер устанавливаемых файловых систем - Installable File Systems Manager .

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

НО, элементы таблицы размещения файлов остаются 12- или 16-разрядными, поэтому на диске используется та же структура данных (FAT ). Т.е. формат таблицы VFAT такой же , как и формат FAT .

VFAT наряду с именами «8.3» поддерживает длинные имена файлов . (Часто говорят, что VFAT - это FAT с поддержкой длинных имен).

Существует специальный механизм преобразования длинных имен в короткие и наоборот.

Вы помните, что длина имени для DOS подчиняется правилу “8.3”, то есть, длина имени не должна превышать 8 символов, а расширения - 3. Главной особенностью файловой системы Windows 95 для пользователя является то, что максимальная длина имени файла в Windows 95 может достигать 256 символов, включая пробелы. Ограничением длины имени файла служит путь к файлу: суммарная длина пути и имени файла не может превышать 260 символов.

При создании файла в Windows95 ему присваивается сразу два имени - длинное и короткое (8.3). Короткое имя образуется из длинного путем удаления из него пробелов и символов / : * ? “ “< > I . Для восьмибуквенного имени файла используются первые шесть оставшихся символов длинного имени, символ “~“ (тильда) и порядковый номер. Для трехбуквенного расширения используются первые три символа после последней точки в длинном имени файла.

Например, короткие имена для файлов (в следующем порядке)

Article about Windows 95.DOS

Next article about Windows 95.DOS

Article about Windows NT.DOS

Microsoft office.HTML

Microsoft Windows. HTML

будут выглядеть так

При этом в структуре ROOT, наряду с обычным дескриптором (называемым алиасным) для файла или каталога создаются дескрипторы специального вида, в которых и хранится длинное имя. Для специальных дескрипторов установлены атрибуты Read Only (только для чтения), System (системный), Hidden (скрытый), Volume Label (Метка Тома). Количество специальных дескрипторов зависит от длины имени.

Специальный дескриптор ссылается на кластер с номером О. Настоящий номер первого кластера, распределенного файлу или каталогу, находится в стандартном (алиасном) дескрипторе, расположенном непосредственно за специальными.

Для томов VFAT нельзя пользоваться никакими утилитами, кроме утилит «понимающих» VFAT

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

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

Это новая реализация идеи использования таблицы FAT .

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

Впервые использовалась в Windows OSR2 (OEM Service Release 2).

В настоящее время FAT32 используется в Windows 98 и Windows ME .

Она содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациями FAT .

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

2. Имеет расширенную загрузочную запись, которая позволяет создавать копии критических структур данных Þ повышает устойчивость диска к нарушениям структур диска

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

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

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

Появились дополнительные поля:

· время создания (2)

· дата создания (2)

· дата последнего доступа (2)

· старшее слово номера начального кластера

· младшее слово номера начального кластера

· контрольная сумма

По-прежнему для длинного имени файла используется несколько дескрипторов.

Для томов FAT32 нельзя пользоваться никакими утилитами, кроме утилит «понимающих» FAT32

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

Файловая система FAT (File Allocation Table - таблица размещения файлов) по­лучила свое название благодаря простой таблице, в которой указываются:

Непосредственно адресуемые участки логического диска, отведенные для раз­мещения в них файлов или их фрагментов;

Свободные области дискового пространства;

Дефектные области диска (эти области содержат дефектные участки и не га­рантируют чтение и запись данных без ошибок).

В файловой системе FAT дисковое пространство любого логического диска де­лится на две области (рис. 6.1): системную область и область данных.

Рис. 6.1. Структура логического диска в FAT

Системная область логического диска создается и инициализируется при форма­тировании, а в последующем обновляется при работе с файловой структурой. Об­ласть данных логического диска содержит обычные файлы и файлы-каталоги; эти объекты образуют иерархию, подчиненную корневому каталогу. Элемент катало-


Файловая система FAT________________________________________________ 167

га описывает файловый объект, который может быть либо обычным файлом, либо файлом-каталогом. Область данных, в отличие от системной области, доступна через пользовательский интерфейс операционной системы. Системная область состоит из следующих компонентов (расположенных в логическом адресном про­странстве друг за другом):

Загрузочной записи (Boot Record, BR);

Зарезервированных секторов (Reserved Sectors, ResSec);

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

Корневого каталога (Root Directory, RDir).

Таблица размещения файлов

Таблица размещения файлов является очень важной информационной структу­рой. Можно сказать, что она представляет собой адресную карту области данных, в которой описывается и состояние каждого участка области данных, и принад­лежность его к тому или иному файловому объекту.

Всю область данных разбивают на так называемые кластеры. Кластер представля­ет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее - только в области данных). Кластер - это минимальная адресуемая единица дисковой памяти, выделяемая файлу (или некорневому ката­логу). Кластеры введены для того, чтобы уменьшить количество адресуемых еди­ниц в области данных логического диска.

Каждый файл занимает целое число кластеров. Последний кластер при этом мо­жет быть задействован не полностью, что при большом размере кластера может приводить к заметной потере дискового пространства. На дискетах кластер зани­мает один или два сектора, а на жестких дисках его размер зависит от объема раз­дела (табл. 6.1). В таблице FAT кластеры, принадлежащие одному файлу (или файлу-каталогу), связываются в цепочки. Для указания номера кластера в файло­вой системе FAT 16 используется 16-разрядное слово, следовательно, можно иметь до 2 10 = 65 536 кластеров (с номерами от 0 до 65 535).

Таблица 6.1 . Соотношения между размером раздела и размером кластеров в FAT16

Емкость раздела, Мбайт Количество секторов в кластере Размер кластеров, Кбайт

Заметим, что в Windows NT/2000/XP разделы файловой системы FAT могут иметь размер до 4097 Мбайт. В этом случае кластер будет объединять уже 128 секторов.

Номер кластера всегда относится к области данных диска (пространству, зарезер­вированному для файлов и подкаталогов). Номера кластеров соответствуют эле-


168____________________________________________ Глава 6, Файловые системы

ментам таблицы размещения файлов. Первый допустимый номер кластера всегда начинается с 2.

Логическое разбиение области данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет следующий смысл:

Прежде всего, уменьшается размер самой таблицы FAT; - уменьшается возможная фрагментация файлов;

Ускоряется доступ к файлу, так как в несколько раз сокращается длина цепочек фрагментов дискового пространства, выделенных для него.

Однако слишком большой размер кластера ведет к неэффективному использова­нию области данных, особенно в случае большого количества маленьких файлов. Как мы только что заметили, в среднем на каждый файл теряется около половины кластера. Из табл. 6.1 следует, что при размере кластера в 32 сектора (объем разде­ла при этом - от 512 до 1023 Мбайт), то есть 16 Кбайт, средняя величина потерь на файл равняется 8 Кбайт, и при нескольких тысячах файлов 1 потери могут со­ставлять более 100 Мбайт. Поэтому в современных файловых системах размеры кластеров ограничиваются (обычно от 512 байт до 4 Кбайт), либо предоставляет­ся возможность выбирать размер кластера.

Достаточно наглядно идею файловой системы, использующей таблицу размеще­ния файлов, иллюстрирует рис. 6.2.

Рис. 6.2. Иллюстрация основной концепции FAT

Из рисунка видно, что файл MYFILE.TXT размещается, начиная с восьмого кластера. Всего файл MYFILE.TXT занимает 12 кластеров. Цепочка (chain) кластеров для на­шего примера может быть записана следующим образом: 8, 9,0А, 0В, 15,16,17,19,

1 Например, число 10 000-15 000 файлов (или даже более, особенно когда файлы небольшого разме­ра) на логическом диске с объемом в 1000 Мбайт встречается достаточно часто.


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

1А, 1B, 1С, 1D. Кластер с номером 18 помечен специальным кодом F7 как плохой (bad), он не может быть использован для размещения данных. При форматирова­нии обычно проверяется поверхность магнитного диска, и те сектора, при конт­рольном чтении с которых происходили ошибки, помечаются в FAT как плохие. Кластер 1D помечен кодом FF как конечный (последний в цепочке) кластер, принадлежащий данному файлу. Свободные (незанятые) кластеры помечаются кодом 00; при выделении нового кластера для записи файла берется первый сво­бодный кластер. Возможные значения, которые могут приписываться элементам таблицы FAT, приведены в табл. 6.2.

Таблица 6.2. Значения элементов FAT

Значение Описание

OOOOh Свободный кластер

fffOh-fff6h Зарезервированный кластер

fff7h Плохой кластер

fffSh-ffffh Последний кластер в цепочке

0002h-ffefh Номер следующего кластера в цепочке

Поскольку файлы на диске изменяются (удаляются, перемещаются, увеличива­ются или уменьшаются), то упомянутое правило выделения первого свободного кластера для новой порции данных приводит к фрагментации файлов, то есть дан­ные одного файла могут располагаться не в смежных кластерах, а порой в очень удаленных друг от друга, образуя сложные цепочки. Естественно, что это приво­дит к существенному замедлению работы с файлами.

В связи с тем, что таблица FAT используется при доступе к диску очень интенсив­но, она обычно загружается в оперативную намять (в буферы ввода-вывода или в кэш) и остается там настолько долго, насколько это возможно. Если таблица боль­шая, а файловый кэш, напротив, относительно небольшой, в памяти размещаются только фрагменты этой таблицы, к которым обращались в последнее время.

В связи с чрезвычайной важностью таблицы FAT она обычно хранится в двух иден­тичных экземплярах, второй из которых непосредственно следует за первым. Об­новляются копии FAT одновременно, используется же только первый экземпляр. Если он по каким-либо причинам окажется разрушенным, то произойдет обраще­ние ко второму экземпляру. Так, например, утилита проверки и восстановления файловой структуры ScanDisk из ОС Windows 9x при обнаружении несоответствия первичной и резервной копии FAT предлагает восстановить главную таблицу, ис­пользуя данные из копии.

Корневой каталог отличается от обычного файла-каталога тем, что он помимо раз­мещения в фиксированном месте логического диска имеет еще и фиксированное число элементов. Для каждого файла и каталога в файловой системе хранится ин­формация в соответствии со структурой, представленной в табл. 6.3.

Для работы с данными на магнитных дисках в системах DOS, которые имеют файло­вую систему FAT, удобно использовать широко известную утилиту Disk Editor из


170___________________________________________ Глава 6. Файловые системы

комплекта утилит Питера Нортона. У нее много достоинств. Прежде всего, она ком­пактна, легко размещается на системной дискете с MS DOS, снабжена встроенной системой подсказок и необходимой справочной информацией. Используя ее, можно сохранять, модифицировать и восстанавливать загрузочную запись, восстанавливать таблицу FAT в случае ее повреждения, а также выполнять много других операций. Основными недостатками этой программы на сегодняшний день являются ограниче­ния на размеры диска и разделов и отсутствие поддержки работы с такими распрост­раненными файловыми системами, как FAT32 и NTFS. Вместо нее теперь часто ис­пользуют утилиту Partition Magic, однако наилучшей альтернативой этой программе на сегодняшний день можно считать утилиту Администратор дисков от Acronis.

Таблица 6.3. Структура элемента каталога

Размер поля данных, байт Содержание поля

11 Имя файла или каталога

1 Атрибуты файла

1 Резервное поле

3 Время создания

2 Дата создания

2 Дата последнего доступа

2 Зарезервировано

2 Время последней модификации

2 Дата последней модификации

2 Номер начального кластера в FAT

4 Размер файла

Структура загрузочной записи DOS

Сектор, содержащий системный загрузчик DOS, является самым первым на логи­ческом диске С:. Напомним, что на дискете системный загрузчик размещается в са­мом первом секторе; его физический адрес равен 0-0-1. Загрузочная запись состо­ит, как мы уже знаем, из двух частей: блока параметров диска (Disk Parameter Block, DPB) и системного загрузчика (System Bootstrap, SB). Блок параметров диска слу­жит для идентификации физического и логического форматов логического диска, а системный загрузчик играет существенную роль в процессе загрузки DOS. Эта информационная структура приведена в табл. 6.4.

Первые два байта загрузочной записи занимает команда безусловного перехода (JMP) на программу SB. Третий байт содержит код 90Н (NOP - нет операции). Да­лее располагается восьмибайтовый системный идентификатор, включающий ин­формацию о фирме-разработчике и версии операционной системы. Затем следует блок параметров диска, а после него - системный загрузчик.

Для работы с загрузочной записью DOS, как и с другими служебными информа­ционными структурами, удобно использовать уже упомянутую программу Disk


Файловая система FAT________________________________________________ 171

Editor из комплекта утилит Питера Нортона. Используя ее, можно сохранять, мо­дифицировать и восстанавливать загрузочную запись, а также выполнять много других операций. Достаточно подробно работа с этой утилитой описана в .

Таблица 6.4. Структура загрузочной записи для FAT16

Смещение поля, Длина поля, Обозначение Содержимое поля
байт байт поля

ООН (0) 3 JUMP 3EH Безусловный переход на начало

системного загрузчика

ОЗН (3) 8 Системный идентификатор

ОВН (11) 2 SectSize Размер сектора, байт

ООН (13) 1 ClastSize Число секторов в кластере

0ЕН(14) 2 ResSecs Число зарезервированных секторов

10Н (16) 1 FATcnt Число копий FAT

11Н (17) 2 RootSize Максимальное число элементов Rdir

13Н (19) 2 TotSecs Число секторов на логическом диске,

если его размер не превышает 32 Мбайт; иначе 0000Н

15Н (21) 1 Media Дескриптор носителя

16Н(22) 2 FATsize Размер FAT, секторов

18Н(24) 2 TrkSecs Число секторов на дорожке

1АН(26) 2 HeadCnt Число рабочих поверхностей

1СН(28) 4 HidnSecs Число скрытых секторов

20Н (32) 4 Число секторов на логическом диске,

если его размер превышает 32 Мбайт

24Н (36) 1 Тип логического диска (ООН - гибкий,

80Н - жесткий)

25Н (37) 1 Зарезервировано

26Н (38) 1 Маркер с кодом 29Н

27Н (39) 4 Серийный номер тома 1

2ВН (43) 11 Метка тома

36Н (54) 8 Имя файловой системы

ЗЕН (62) Системный загрузчик

1FEH (510) 2 Сигнатура (слово АА55Н)

1 Том (volume) представляет собой единое логическое адресное пространство. Томом может быть обыч­ный логический диск либо несколько дисковых пространств.

Приветствую!

Какой бы не был носитель данных – будь то жёсткий диск, SSD накопитель или флешка (MicroSD, microSDXC, USB-Flash Drive и т.д.) им всем необходима файловая система, дабы можно было записывать и считывать с них данные.

Файловых систем существует некоторое количество, но в этой статье мы рассмотрим наиболее популярные и соответственно применяемые.

Представленная информация весьма пригодится в ситуациях, когда потребуется отформатировать жёсткий диск (SSD накопитель) или один из его разделов, флешку и т.п.

Файловая система FAT16, FAT32 – история и особенности

Начнём повествование с файловой системы FAT16 (ещё её называют просто FAT ) – она была создана преимущественно для операционной системы MS DOS, и её поддержка имелась в Windows 95 и Windows 98. Ограничение на максимальный размер одного файла равнялся 2 Гигабайтам. Ровно столько же мог быть максимальный размер раздела.

Господство FAT16 продлилось недолго, вскоре ей на смену пришла файловая система FAT32 – она являлась штатной для Windows 95 и Windows 98,хотя в целях совместимости, как уже говорилось выше, данные операционные системы поддерживали и FAT16.

В FAT32 максимальный размер файла равнялся уже 4 Гигабайтам. Т.е. количество файлов может быть любым, но размер любого из них не может превышать 4-х Гигабайт. А максимальный размер раздела мог составлять теоретические 8 Терабайт, однако в Windows он искусственно ограничивался. К примеру, в Windows 98 размер раздела не мог быть больше 137 Гигабайт.

У вас может возникнуть закономерный вопрос, почему по прошествии стольких лет в данную файловую систему можно отформатировать флеш накопители и жёсткие диски небольшого объёма. Ответ на этот вопрос ниже.

  • Совместимость: FAT32 по сей день повсеместно поддерживается основными операционными системами: Windows, MacOS, Linux, различными автономными устройствами (приставками, MP3 плеерами, телефонами, смартфонами и т.д.) и встраиваемыми системами.
  • Ограничения: Если вы попытаетесь записать файл, размер которого больше 4 Гигабайт, то вы не сможете этого сделать и выскочит ошибка. Есть решения данной проблемы.

    Также имеются и ограничения по размеру раздела – хотя FAT32 теоретически поддерживает носители данных до 8 Терабайт, в Windows XP (и новее) вы не сможете отформатировать в FAT32 диск или раздел, размер которого больше 32 Гигабайт. Это ограничение было введено со стороны Microsoft в целях сохранения оптимальной производительности при работе с данной файловой системой.

  • на сегодняшний день данная файловая система с успехом используется на флеш дисках и накопителях, дабы обеспечить максимальную совместимость с самым широким классом устройств.

    Ещё одним преимуществом является отсутствие избыточной записи\чтения «технических данных» в процессе взаимодействия с данной файловой системой. Для Flash дисков, у которых ресурс считывания\записи ячеек памяти ограничен, это, несомненно, благо.

Файловая система NTFS – описание, применение и ключевые свойства

Файловая система NTFS на сегодняшний день является актуальной и повсеместно распространённой. Впервые дебютировав в Windows XP, она так продолжает использоваться во всех современных версиях ОС от Microsoft, включая самую последнюю Windows 10.

Её разработчики постарались на славу, наделив данную файловую систему множеством особенностей, которые были продиктованы современными реалиями. К примеру, за счёт записи технической информации всех осуществляемых файловых операций, существенно удалось поднять надёжность сохранности данных в случае резкого обесточивания носителя.

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

Естественно, это не полный перечень того, что предлагает современная файловая система NTFS.

Как уже говорилось выше, данная файловая система является штатной для Windows XP и последующих выпущенных ОС от Microsoft. В процессе установки операционной системы вы даже не сможете выбрать файловую систему – жёсткий диск или SSD будет отформатирован строго в NTFS.

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

К примеру, операционная система MacOS способна лишь считывать данные с носителей, на которых используется NTFS, а вот записывать данные на носители с данной файловой системой уже не может.

В Linux ситуация обстоит лучше. Хотя штатно Linux может лишь читать данные с NTFS носителей, но в некоторые конечные дистрибутивы Linux добавляется и поддержка записи на NTFS диски.

Что же касается автономных устройств, игровых приставок (Sony PlayStation, Xbox 360) и т.д., то в большинстве случаев NTFS ими не поддерживается.

  • Совместимость: Полностью поддерживается во всех современных версиях ОС от Microsoft. В Макинтошах (MacOS) поддерживается только чтение, а в Linux чтение и в некоторых конечных дистрибутивах ещё и запись. Что же касается иных устройств – в большинстве случаев не поддерживается вовсе.
  • Ограничения: Ограничений на количество и размер файлов и папок нет.
  • Оптимальная сфера применения: Файловая система создавалась с прицелом на использование для жёстких дисков (а впоследствии и SSD), преимущественно в среде Windows.

Файловая система ExFat – что собой представляет, для чего была создана

ExFat (ещё её называют FAT64 ) – файловая система, дебютировавшая в 2006 году, созданная для флеш накопителей. При её разработке было взято всё лучшее из FAT32 и устранены присущие её ограничения. В ExFat нет ограничений на максимальный размер файла, который может быть записан на носитель с данной файловой системой.

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

Если говорить про совместимость, то с ней ситуация обстоит куда лучше, если сравнить с той же NTFS. MacOS имеет полную поддержку операций чтения\записи, да и поддержка со стороны Linux имеется, при условии установки нескольких пакетов из репозитория.

Что же касается внешних устройств, то ситуация с поддержкой ExFat улучшается, но гарантировать поддержку на всех устройствах определённо нельзя.

  • Совместимость: Имеет полную поддержку в Windows, начиная с Windows XP, в MacOS и ОС Linux (возможно, потребуется установить пакет поддержки из репозитория).

    На старых автономных устройствах (MP3 плееры, фотоаппараты и т.д.) может не поддерживаться.

  • Ограничения: У данной файловой системы нет каких-либо ограничений как на максимальный размер файла, так и их количества.
  • Оптимальная сфера применения: Любые флеш диски и накопители (MicroSD, microSDXC, USB-Флеш драйв и т.д.), размер которых больше 4 Гигабайт. Флеш накопитель с данной файловой системой будет демонстрировать высокие скоростные показатели и дольше проработает, нежели если он будет использовать NTFS.

Краткий итог

Если подытожить наспанное выше, то получается, что файловая система NTFS должна использоваться для жёстких (HDD) и SSD дисков, что установлены внутри компьютера, а ExFat для внешних флеш накопителей.
А FAT32 оптимально использовать для Флеш накопителей малого размера (до 4-х Гигабайт), а также флешек, которые используются в старых устройствах и не понимают ExFat.

На этом всё! Увидимся в новых материалах! Дабы их не пропустить – стоит подписаться!