Что такое fat. Файловые системы FAT32, exFAT и NTFS – в чем главное отличие

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

Общее описание

Файловая система представляет собой часть операционной системы, которая несет ответственность за размещение, хранение, удаление информации на носителях, предоставление пользователям и приложениям этой информации, а также обеспечение ее безопасного использования. Кроме того, именно она помогает в восстановлении данных в случае аппаратного или программного сбоя. Поэтому так важна файловая система. Что такое ФС и какой она может быть? Имеется несколько видов:

Для жестких дисков, то есть устройств с произвольным доступом;

Для магнитных лент, то есть устройств с последовательным доступом;

Для оптических носителей;

Виртуальные системы;

Сетевые системы.5

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

Программный подход

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

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

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

Этот тип разрабатывался еще в 1977 году Биллом Гейтсом и Марком МакДональдом. Первоначально ее использовали в ОС 86-DOS. Если говорить о том, что такое файловая система FAT, то стоит отметить, что первоначально она не была способна поддерживать жесткие диски, а работала только с гибкими носителями объемом до 1 мегабайта. Сейчас это ограничение уже неактуально, а данная ФС использовалась компанией "Майкрософт" для ОС MS-DOS 1.0 и последующих версий. В FAT используются определенные соглашения в плане наименования файлов:

В начале имени должна быть буква или цифра, а в нем самом может присутствовать любой символ ASCII, помимо пробела и специальных элементов;

Длина имени должна быть не более 8 символов, после него ставится точка, а далее указывается расширение, которое состоит из трех букв;

В именах файлов может использоваться любой регистр, он не различается и не сохраняется.

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

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

Эта ФС является наиболее предпочтительной для работы с ОС Windows NT, так как она разрабатывалась специально под нее. В состав ОС включена утилита convert, которая конвертирует тома с FAT и HPFS в тома NTFS. Если говорить о том, что такое файловая система NTFS, то стоит отметить, что в ней существенно расширены возможности управления доступом к определенным каталогам и файлам, введено множество атрибутов, реализованы средства сжатия файлов динамически, отказоустойчивость, поддерживаются требования стандарта POSIX. В данной ФС можно использовать имена длиной до 255 символов, при этом короткое имя в ней генерируется так же, как и в VFAT. Разбираясь, что такое файловая система NTFS, стоит отметить, что в случае сбоя операционной системы она способна сама восстанавливаться, поэтому дисковый том останется доступным, а каталожная структура не пострадает.

Особенности NTFS

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

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

Особенности EFS

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

Особенности RAW

Устройства, предназначенные для хранения данных, представляют собой наиболее уязвимые комплектующие, которые чаще всего подвержены повреждениям не только в физическом плане, но и в логическом. Определенные проблемы с оборудованием могут оказаться фатальными, а другие имеют какие-то решения. Иногда у пользователей возникает вопрос: "Что такое файловая система RAW?"

Как известно, для записи на жесткой диск или флеш-накопитель какой-либо информации у накопителя должна иметься ФС. Наиболее распространенными являются FAT и NTFS. А RAW даже не является файловой системой, каковой мы обычно ее себе представляем. На самом деле это логическая ошибка уже установленной системы, то есть ее фактическое отсутствие для Windows. Чаще всего RAW связана с разрушением структуры файловой системы. После этого ОС не просто к данным, но и не отображает техническую информацию по оборудованию.

Особенности UDF

Универсальный дисковый формат (UDF) разработан для замены CDFS и добавления поддержки устройств DVD-ROM. Если говорить о том, что такое то это новая реализация старой версии для которая соответствует требованиям Она характеризуется определенными особенностями:

Длина имен файлов может быть до 255 символов;

Регистр имени может быть нижним и верхним;

Максимальная длина пути составляет 1023 символа.

Начиная с Windows XP, данная файловая система поддерживает чтение и запись.

Данная ФС используется для флеш-накопителей, которые предполагается применять при работе с разными компьютерами, работающими под управлением разных операционных систем, в частности Windows и Linux. Именно EXFAT стала тем «мостиком» между ними, так как она способна работать с данными, получаемыми от ОС, в каждой из которых работает своя файловая система. Что такое и как это работает, будет понятно уже на практике.

Выводы

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

Эту файловую систему используют такие операционные системы, как Windows NT/2000/XP. При установке NTFS, диск разделяется на две неравные части: первая отводиться под MFT (Master File Table - общая таблица файлов), называется MFT - зоной и занимает порядка 12% от общего размера диска, вторую часть занимают собственно Ваши данные. Есть еще и третья зона, но о ней позже. Что за зверь этот MFT? Это основа NTFS. Он лежит, как было сказано ранее, в MFT - зоне т. е. в начале диска. Каждая запись в MFT соответствует какому-либо файлу и занимает около 1 Kb. По своей сути это каталог всех файлов находящихся на диске. Надо заметить, что любой элемент данных в NTFS рассматривается как файл, даже MFT. Первые 16 файлов (метафайлы) в MFT - зоне являются особой кастой. В них содержится служебная информация, они имеют фиксированное положение и они недоступны даже операционной системе. Кстати, первым из этих 16 является сам MFT - файл. Существует копия первых трех записей. Помните, я говорил о третьей зоне, так вот там она и лежит и своим положением, если можно так выразиться, делит диск пополам. Зачем это сделано? Да для надежности, в случае утери информации в MFT - файле, всегда можно восстановить информацию, а там уже дело техники, как говориться. Все остальные файлы в MFT - зоне могут располагаться произвольно. Надо заметить, что в MFT - зоне теоретически кроме служебных файлов ничего не находиться. Но бывают случаи, когда места на той части диска, что отведена для пользователя не остается:-(и тогда MFT - зона уменьшается. Соответственно появляется место во второй половине диска для записи данных. Когда же в этой зоне освобождается достаточное количество свободного места, MFT - зона опять расширяется. И вот тут то появляется проблема. В MFT - зону попадают обычные файлы и она начинает фрагментироваться. Это не смертельно конечно, но и приятного тут мало. Но вернемся к нашим баранам, то бишь метафайлам. Каждый из них отвечает за какую-либо область работы. Начинаются они с символа имени $ (тем, кто занимается программированием значок известен). Приведу пример некоторых из них:

  • MFT - не что иное как сам MFT
  • MFTmirr - та самая копия, что по серединке диска
  • LogFile - это файл журналирования
  • Boot - как видно из названия, его величество загрузочный сектор
  • Bitmap - карта свободного места раздела

Ну и так далее. Информация о метафайлах находиться в MFT - файле. Сложно? Есть такое дело. Но вся эта фигня придумана для увеличения надежности NTFS и себя оправдывает. Едем дальше. NTFS практически не имеет ограничения на размеры диска (во всяком случае при нынешних технологиях производства жестких дисков). Размер кластера может варьироваться от 512 b до 64 Kb, хотя обычный его размер равен 4 Kb.

Поговорим теперь о каталоге. Это метофайл с обозначением $. . Он разделен на части в каждой из которых содержится имя файла, его атрибуты и ссылка на MFT - файл. А там уже есть вся остальная информация. Каталог представляет собой бинарное дерево. Попробуем разобраться, что это за фигня такая. В каталоге информация о данных на диске расположена таким образом, что при поиске какого-либо файла каталог разбивался на две части и ответ заключался в том, в какой именно части находиться искомое. Затем та же самая операция повторяется в выбранной половине. И так до тех пор, пока не будет найден нужный файл.

А теперь о файлах. Их как таковых нет. Нормально, да! Есть так называемые стримы, или говоря нормальным русским языком - потоки. То есть, любая единица информации представляет собой несколько потоков. Один поток - это сами данные, он является основным. Другие потоки - атрибуты файла. К любому файлу можно прикрепить любой другой файл. Проще говоря, к потокам одних данных можно прикрепить совершенно новый поток и записать туда новые данные. Вот только информация по объему файла берется по объему основного потока. Пустые или малоразмерные файлы на диске отображены только в метафайлах. Сделано это в целях экономии дискового пространства. Вообще надо отметить, что понятие файл намного глубже и шире и все свойства описать довольно сложно. Отмечу, что максимальная длина имени файла может достигать 255 символов.

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

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

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

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

На данный момент времени эта файловая система является самой распространенной, хотя и сдает постепенно свои позиции после выхода Windows XP. Поддерживают FAT 32 все операционные системы семейства Windows начиная с Windows 95 OSR2. Итак, FAT 32 (File Allocation Table) - это электронная таблица размещения файлов. Находиться она практически в самом начале диска. Структура диска FAT:

    1. загрузочные секторы главного и дополнительного разделов;
    2. загрузочный сектор логического диска;
    3. корневой каталог;
    4. область данных;
    5. цилиндр для выполнения диагностических операций чтения/записи;

Основное преимущество FAT 32 перед FAT 16 заключается в том, что вместо 16 разрядных записей используются 32х разрядные. Это в свою очередь увеличивает количество кластеров в разделе до 268 435 456 (в FAT - 65 536). При использовании FAT 32 размер тома равен 2 Tb, а размер одного файла может достигать 4 Gb. Заметное отличие FAT 32 от предшествующих таблиц заключается в том, что корневой каталог не занимает фиксированного места на диске и может иметь любой размер.

Размер кластера при использовании FAT 32 в разделе размером 2 Gb с 5 000 файлами равен 4 Kb (в FAT 16 - 32 Kb), в таблице будет использоваться до 524 288 записей. При этом сама таблица будет весить порядка 2 Мb.

Сравнение NTFS и FAT 32.

Ну что, займемся неблагодарным делом - сравнением двух файловых систем.

Достоинства:

    1. Быстрая скорость доступа к файлам малого размера;
    2. Размер дискового пространства на сегодняшний день практически не ограничен;
    3. Фрагментация файлов не влияет на саму файловую систему;
    4. Высокая надежность сохранения данных и собственно самой файловой структуры;
    5. Высокая производительность при работе с файлами большого размера;

Недостатки:

    1. Более высокие требования к объему оперативной памяти по сравнению с FAT 32;
    2. Работа с каталогами средних размеров затруднена из-за их фрагментации;
    3. Более низкая скорость работы по сравнению с FAT 32

Достоинства:

    1. Высокая скорость работы;
    2. Низкое требование к объему оперативной памяти;
    3. Эффективная работа с файлами средних и малых размеров;
    4. Более низкий износ дисков, вследствие меньшего количества передвижений головок чтения/записи.

Недостатки:

    1. Низкая защита от сбоев системы;
    2. Не эффективная работа с файлами больших размеров;
    3. Ограничение по максимальному объему раздела и файла;
    4. Снижение быстродействия при фрагментации;
    5. Снижение быстродействия при работе с каталогами, содержащими большое количество файлов;

Итак, некоторые соображения. Обе файловые системы хранят данные в кластерах минимальный размер которого равен 512 b. Как правило обычный размер кластера равен 4 Kb. На этом сходства пожалуй и заканчиваются. Кое-что о фрагментации: скорость работы NTFS резко снижается при заполнении диска на 80 - 90 %. Это связано с фрагментацией служебных и рабочих файлов. Чем больше Вы работаете с таким загруженным диском, тем сильнее фрагментация и тем ниже производительность. В FAT 32 фрагментация рабочей области диска происходит и на более ранних этапах. Дело тут зависит от того, насколько часто Вы записываете/стираете данные. Как и в NTFS, фрагментация сильно снижает производительность. Теперь об оперативной памяти. Объем самой электронной таблицы FAT 32 может занимать в ОЗУ порядка нескольких мегабайт. Но на помощь приходит кэширование. Что записывается в кэш:

    1. Наиболее используемые каталоги;
    2. Данные о всех используемых в данный момент времени файлах;
    3. Данные о свободном пространстве диска;

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

Файловая система 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) представляет собой единое логическое адресное пространство. Томом может быть обыч­ный логический диск либо несколько дисковых пространств.

Должно быть, вы уже неоднократно слышали о таких файловых системах, как FAT32, NTFS и exFAT . Но в чем же между ними разница? Каждый тип обладает своим собственным набором плюсов и минусов. Именно поэтому нет единого варианта. В этой статье мы разберем основные отличия трех файловых систем.

Говоря об операционной системе Windows, мы точно знаем, что она устанавливается только на логический раздел формата NTFS. Съемные накопители и другие устройства хранения, основанные на USB-интерфейсе, используют тип FAT32.

Одним из форматов, которые можно использовать для форматирования Flash-накопителей, является exFAT — преемник старой файловой системы FAT32.

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

Что такое файловая система

Файловая система представляет из себя набор правил, определяющих то, как хранятся и извлекаются документы, хранящиеся на устройстве. Это может быть жесткий диск, Flash-накопитель или SD-карта.

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

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

На самом деле существует большое количество файловых систем, например Flash File System, Tape File System и Disk File System, однако мы остановимся только на основных — FAT32 , NTFS и exFAT .

Что такое FAT32

Файловая система FAT32 является самой старой и опытной в истории компьютерных технологий. Ее путь начался с оригинальной 8-битной системы FAT в 1977 году, которая функционировала внутри автономного диска Microsoft Standalone Disk Basic-80 . Он был запущен специально для Intel 8080 NCR 7200 в 1977/1978 году, работая терминалом ввода данных с 8-дюймовыми гибкими дисками.

После обсуждений о введении системы с учредителем Microsoft Биллом Гейтсом, код был написан первым наемным сотрудником компании Марком Макдональдом.

Основной задачей файловой системы FAT была работа с данными в операционной системе Microsoft 8080/Z80 на базе платформы MDOS/MIDAS, написанной Марком Макдональдом.

В дальнейшем FAT претерпела некоторые изменения, постепенно переходя от своего первоначального вида к FAT12, FAT16 и, наконец, FAT32, название которой теперь тесно ассоциируется с внешними накопителями.

Основным отличием FAT32 от ее предшественников является преодоление ограниченного объема доступной для хранения информации. 32-разрядная система была выпущена в августе 1995 года вместе с релизом Windows 95 и в своем обновленном варианте позволила увеличить верхние пределы размера файлов и хранилища данных до 4 Гб и 16 Тб.

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

Резюмируя, система FAT32 идеально подойдет для хранения данных, объем которых не превышает 4 Гб, на любых съемных носителях. Ее популярность не ограничивается только компьютерной сферой. Она используется в игровых консолях, телевизорах с высокой четкостью изображения, DVD-проигрывателях, Blu-Ray плеерах и любых других устройствах с USB-портом. FAT32 поддерживают все версии Windows, Linux и MacOS.

Что такое NTFS

В 1993 году компания Microsoft представила новую файловую систему NTFS (New Technology File System) параллельно с появление операционной системы Windows NT 3.1.

Главной особенностью системы NTFS является отсутствие каких-либо ограничений на размеры загружаемых файлов. Даже в случае попытки превзойти этот лимит, мы бы потерпели неудачу — настолько он велик.

Разработка началась в середине 1980-х годов в период сотрудничества Microsoft и IBM, целью которого было создание новой операционной системы, превосходящей предыдущие по графической производительности.

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

Для компьютерных технологий 1989 год ознаменовался созданием HPFS от IBM, которая использовалась для операционной системы OS/2. Несколькими годами позже, в 1993, компания Microsoft запустила NTFS v1.0 , которая стала официальной файловой системой для Windows NT 3.1.

Теоретический размер файла NTFS — 16 Эб — 1 Кб, что составляет 18 446 744 073 709 550 502 байта. В команду разработчиков входили Том Миллер, Гарри Кимуру, Брайан Эндрю, Девид Гебель.

Следующей версией файловой системы стала NTFS v3.1 , запущенная специально для Microsoft Windows XP. В дальнейшем она не претерпевала особых изменений, хотя в нее и было внесено множество различных дополнений. Например, появилась возможность сжатия логических разделов, восстановление и символические ссылки NTFS. Кроме того начальная емкость файловой системы составляла всего 256 Мб из колоссальных 16 Эб — 1 Кб в новых версиях, запущенных с выходом Windows 8.

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

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

Данная файловая система поддерживается всеми версиями Windows, начиная с Windows XP. К сожалению, MacOS не разделяет стремление к совместимости, продвигаемое Microsoft. Apple оставили для пользователей возможность чтения данных с дисков NTFS, однако записывать на них не получится. Поддержка данной файловой системы от Linux ограничивается лишь несколькими ее версиями.

Что такое exFAT

ExFAT (Extended FAT) — новая, расширенная файловая система от Microsoft, которая с успехом заменяет своего предшественника на поле, когда дело доходит до больших объемов информации.

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

Таким образом, копируя на Flash-накопитель с файловой системой exFAT документ размером 6 Гб, вы не столкнетесь с негативными последствиями, которые можно наблюдать, используя предшествующую версию системы.

Формат exFAT набирает все большую популярность и используется преимущественно с высокоемкими картами памяти SDXC. Основной причиной тому является небольшой размер файловой системы и, как ранее описывалось, возможность сохранять документы объемом более 4 Гб.

Интересным будет факт, что Microsoft хранит патент США 8321439, позволяющий быстро найти файл при помощи хэша имени. Благодаря данной функции, любой документ можно найти в разы быстрее.

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

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

Поскольку Microsoft неизменны в своем упрямстве, многие пользователи занялись созданием собственными модификациями exFAT, одной из которых стала exfat-fuse . Она обеспечивает операции чтения и записи для дистрибутивов Linux, включая FreeBSD.

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

ExFAT поддерживает функции чтения, записи и совместима с операционными системами Mac, Android и Windows. Для Linux понадобится вспомогательное программное обеспечение.

Сравнение файловых систем

FAT32:

  • Совместимость: Windows, MacOS, Linux, игровые консоли и устройства с USB-портом.
  • Плюсы: кросс-платформенная совместимость, легкая файловая система.
  • Минусы: ограничения в размерах файлов (доступны документы до 4 Гб) и размеры разделов до 16 Тб.
  • Назначение: съемные накопители. Используется для форматирования Flash-накопителей, однако exFAT предпочтительнее.

NTFS:

  • Совместимость: Windows, MacOS (доступно только чтение), Linux (только чтение для некоторых дистрибутивов), Xbox One.
  • Плюсы: отсутствие ограничений по размеру файлов и разделов.
  • Минусы: ограниченная межплатформенная совместимость.
  • Назначение: хорошо подходит для внутренних жестких дисков, поскольку позволяет хранить информацию большого объема, справиться с которым другие файловые системы не смогут.

exFAT:

  • Совместимость: Windows XP и более поздние версии, MacOS 10.6.5 и выше, Linux (с использованием FUSE), Android.
  • Плюсы: имеет общие положительные эффекты от FAT32 и NTFS, которые включают в себя возможность хранения файлов, размером свыше 4 Гб.
  • Минусы: Microsoft ограничивают использование лицензии.
  • Назначение: позволяет исключить ограничения по размеру файлов для съемных накопителей. Гораздо предпочтительнее своего предшественника FAT32.

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

Инструмент Starus Partition Recovery , или его аналоги, Starus FAT Recovery, Starus NTFS Recovery, предназначены для работы с определенными файловыми системами - FAT и NTFS. Основной софт способен взаимодействовать с обоими. Cкачать и опробовать программы для восстановления файловых систем FAT32 и NTFS можно совершенно бесплатно!

В 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