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

ФАЙЛОВЫЕ СИСТЕМЫ WINDOWS NT

Файловая система FAT (File Allocation Table) представляет собой простую файловую систему, разработанную для небольших дисков и простых структур каталогов. Название этой файловой системы происходит от метода, применяемого для организации файлов, — таблица размещения файлов (File Allocation Table, FAT), которая размещается в начале тома. В целях защиты тома на нем хранятся две копии FAT, на тот случай, если одна из них окажется поврежденной. Кроме того, таблица размещения файлов и корневой каталог должны размещаться по строго фиксированным адресам, чтобы файлы, необходимые для запуска системы, были размещены корректно.

Том, отформатированный для использования файловой системы FAT, размечается по кластерам. Размер кластера по умолчанию определяется размером тома. При использовании файловой системы FAT номер кластера должен иметь длину не более 16 бит и представлять собой одну из степеней 2. Размеры кластеров по умолчанию в зависимости от размера тома приведены в таблице. При форматировании тома FAT с помощью программы Format из командной строки пользователь имеет возможность указать другой размер кластера, отличный от значения, устанавливаемого по умолчанию. Однако устанавливаемый размер не может быть меньше размера по умолчанию, указанного в таблице для соответствующего размера тома.

На рисунке представлена структура тома FAT.

Рис. Структура тома FAT

Таблицы расположения файлов (области FAT1 и FAT2) содержат следующую информацию о каждом кластере тома:

— Unused (кластер не используется)
— Cluster in use by a file (кластер используется файлом)
— Bad cluster (плохой кластер)
— Last cluster in a file (последний кластер файла)

Корневой каталог содержит записи для каждого файла и каждого каталога, расположенных в корневом каталоге. Единственным различием между корневым каталогом и всеми остальными каталогами является то, что корневой каталог занимает четко определенное место на диске и имеет фиксированный размер (512 записей для жесткого диска; для дискет этот размер определяется объемом дискеты).

Каталоги содержат 32-байтные записи для каждого содержащегося в них файла и каждого вложенного каталога. Эти записи содержат следующую информацию:
— имя (в формате «8+3»),
— байт атрибутов (8 бит),
— время создания (24 бит),
— дата создания (16 бит),
— дата последнего доступа (16 бит),
— время последней модификации (16 бит),
— дата последней модификации (16 бит),
— номер начального кластера файла в таблице расположения файлов (16 бит),
— размер файла (32 бит).

Структура каталога FAT не имеет четкой организации, и файлам присваиваются первые доступные адреса кластеров на томе. Номер начального кластера файла представляет собой адрес первого кластера, занятого файлом, в таблице расположения файлов. Каждый кластер содержит указатель на следующий кластер, использованный файлом, или индикатор (OxFFFF), указывающий на то, что данный кластер является последним кластером файла.

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

Файл FAT имеет 4 атрибута, которые могут сбрасываться и устанавливаться пользователем:
— archive file (архивный файл),
— system file (системный файл),
— hidden file (скрытый файл),
— read-only file (файл только для чтения).

Доступ к файлам, хранящимся на томах, использующих файловую систему FAT, может быть осуществлен, если компьютер работает под управлением одной из следующих операционных систем: MS DOS, Windows 95, Windows NT, OS/2.

Ограничение системы FAT на размер логического диска составляет 2 Gb. При этом каждая запись FAT (на разделах объемом более 16 Mb) является 2-байтовым числом, следовательно, на логическом разделе может быть не более 65536 кластеров. Поэтому на дисках объемом более 1 Gb размер кластера в системе FAT составляет 32 K, т.е. «хвост» (slack) каждого файла занимает от 0 до 32 К, из чего следует, что каждая тысяча файлов поглощает в среднем 16 Mb дискового пространства. Файловую систему FAT, вследствие больших накладных расходов памяти, не рекомендуется использовать для томов, размер которых превышает 511 Mb.

В Windows NT файловая система FAT работает точно так же, как и в MS DOS, Windows 3.1x и Windows 95. Windows NT можно установить на существующем разделе FAT. В процессе работы под управлением Windows NT можно копировать файлы с томов FAT на тома NTFS и обратно.

Нельзя использовать Windows NT совместно с программными средствами, осуществляющими разбиение диска на тома и сжатие дисков с использованием драйверов устройств, которые загружаются MS-DOS. Поэтому, если вы хотите иметь доступ к разделу или логическому диску FAT, работая под управлением Windows NT, не применяйте для них таких средств, как DoubleSpace (MS DOS 6.0) или DiskSpace (MS DOS 6.22).

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

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

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

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

Как было уже выше сказано, записать и прочитать можно только кратно 512 байтам, т.е. 1 сектор. Также есть понятие — кластер это тупо несколько секторов, например если размер кластера 16кБ, то значит что в нем 16000/512 = 31.25, точнее 32 сектора, а реальный размер кластера 16384 байта. Все файлы занимают размер кратно размеру кластера. Даже если файл размером 1кБ, а кластер 16кБ, то файл будет занимать все 16кБ.

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

Исходные данные: имеется карта памяти micro SD на 1Гб. Имеет метку MYDISK, отформатирована полностью, размер кластера 16кБ.

Понадобится Hex редактор, но любой не подойдет, нужен такой, который может просматривать диск целиком, а не только файлы на диске. Из того что мне удалось найти: WinHex самый годный, но платный; HxD простой, бесплатный, но мне так и не удалось заставить его сохранять изменения на диске; DMDE — немного не user friendly, бесплатный и позволяет сохранить изменения. В общем я остановился на HxD.

Для начала стоит рассмотреть структуру FAT16, картинка показывает в каком порядке расположены различные части файловой системы.

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

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

Наиболее интересные данные указаны в таблице

Смещение Размер в байтах Описание
0x0D 1 количество секторов в кластере = 0x20 или 32
0x0E 2 количество зарезервированных секторов = 0x0004 или 4
0x10 1 0x02 количество таблиц FAT
0x11 2 0x0200*32 размер корневой директории
0x16 2 количество секторов для одной таблицы FAT = 0x00EE или 238
0x36 8 используется FAT16
0x1FE 2 0x55AA конец загрузочного сектора

Первое что нам нужно, это узнать размер загрузочной области. Смотрим адрес 0x0E и видим, что под загрузочную область выделено 4 сектора, т.е. с адреса 4*512 = 0x800 начинается область FAT.

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

Внутри корневого каталога все элементы разбиты по 32 байта. Первый элемент, это метка тома, а вот последующие элементы это файлы и папки. Если название файла начинается с 0xE5, то это значит что файл удален. Если название начинается с 0x00, то это значит, что предыдущий файл был последним.

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

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

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

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

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

Прибавим к адресу корня его размер: 3С000 + 4000 = 40000 это адрес первого кластера данных, но нам нужен второй, чтобы найти MyFile.txt. Количество секторов в кластере 32, размер кластера = 32*512 = 16384 или 0x4000, поэтому прибавим к адресу первого кластера, его размер т.е. с 0x44000 по идее должен начаться второй кластер.

Идем по адресу 0x44000 и видим, что данные принадлежат BigFile.txt (в нем просто мусор)

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

Теперь спрашивается. Зачем же нам нужна таблица FAT? Дело в том, что данные могут быть фрагментированы, т.е. начало файла может находиться в одном кластере, а конец в совсем другом. Причем это могут быть совершенно разные кластеры. Их может быть несколько, разбросанных в разных областях данных. Таблица FAT это своего рода карта, которая нам указывает, как нам перемещаться между кластерами.

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

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

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

Перейдем к FAT32. Загрузочная часть немного изменена.

Смещение Размер в байтах Описание
0x52 8 Имя файловой системы
0x24 4 Количество секторов занимаемых одной FAT
0x0E 2 количество резервных секторов
0x10 2 число таблиц FAT
0x0D 1 секторов в кластере
0x2C 4 номер первого кластера корневого каталога

Есть некоторые принципиальные изменения. Имя файловой системы перекочевало по адресу 0x52, размер корневого теперь игнорируется. Область данных находится сразу за таблицами FAT, корневой каталог находится внутри области данных. Кроме того корневой каталог не имеет фиксированного размера.

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

Адрес корневого каталога вычисляется:
(номер первого кластера корневого каталога — 2) * размер кластера + адрес начала области данных,
т.е. в данном примере он будет совпадать с началом области данных.

Как и прежде данные в корневом занимают 32байта, как и прежде «удаленные» магические файлы, предполагаю это временные файлы блокнота.

А вот начало первого кластера в MYFILE.txt определяется теперь двумя байтами, старший по смещению 0x14, младший как и прежде 1A. Поэтому номер первого кластера данных для файла будет:
8000A0 + 0x14 = 0x8000B4 — старший байт
8000A0 + 0x1A = 0x8000BA — младший байт
В моем случае карта была всего с одним файлом, поэтому это третий кластер.

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

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

Где же находятся данные?
начало области данных + размер кластера * (номер кластера корневого — 1)
= 0x800000 + (2*4096) = 0x801000

Надеюсь в общих чертах стало понятно, вроде как ничего сверхестественного нет. Кто прочитал и повторил может скушать печеньку 🙂

4 комментария: Файловая система FAT

Там какая-то фишка и длинными именами, afaik. При создании нового файла венда создала файл типа «new text document.тхт», который больше чем 8.3. А это длинное имя записалось в volume label (Microsoft implemented support for LFNs in the FAT filesystem by using hidden directory entries—of the volume label type—to store the longer names; this scheme is known as VFAT, and it was chosen for compatibility, as volume labels are generally ignored by programs and operating system components.). Останки этих имен мы и наблюдаем, видимо.

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

Почему в программе по адресу 0х0Е написано значение 04, по адресу 0х0F 00 соответственно 0400, а вы пишите 0х0004? Здесь запутался как располагаются байтики по адресам в памяти?

если число двухбайтное то справа налево, поэтому 0x04 младший байт, а 00 старший байт

[Информационный пост] Файловые системы для USB накопителей и карт памяти

Привет, Гиктаймс! Большинство пользователей не задумываются о том, в какой файловой системе у них отформатирована флешка или карта памяти. И в самом деле, зачем вникать в такие тонкости — проще доверить форматирование фотоаппарату или согласиться с выбором десктопа. Под катом напомню о природе FAT32, NTFS и exFAT и буду разбираться как влияет (если влияет вовсе) файловая система на производительность накопителя.

Про файловые системы приведу краткую историческую справку в порядке появления ФС на свет.

Файловая система NTFS — прочитать подробнее в Wikipedia

Изначально стандартная файловая система для операционных систем Microsoft Windows NT. Представлена в июле 1993 года, вместе с операционной системой Windows NT 3.1. NTFS была призвана заменить файловую систему FAT и повысить производительность дисковой подсистемы.

Файловая система FAT32 — прочитать подробнее в Wikipedia

Файловая система exFAT — прочитать подробнее в Wikipedia

Самая «свежая» файловая система из списка. Ее особенностью является то, что она разрабатывала специально для накопителей на флэш-памяти. Датой появления стал ноябрь 2006 года, момент выхода операционной системы Windows Embedded CE 6.0. Некоторые источники называют exFAT — FAT64. Самое важное новшество по сравнению с FAT32 — уменьшение количества перезаписей информации в один и тот же сектор (использование wear leveling), что позволяет продлить срок службы флэш-устройств.

Собственно к чему ведется разговор? Как я уже сказал во вступлении многие не задумываются, какую ФС выбрать, оставляя значение по умолчанию, а еще большее количество людей даже не знают — как отформатирована карточка памяти или флешка.
Выбор небольшой, но есть всегда, к примеру карта памяти Kingston SDXC на 256 гигабайт имеет всего две опции — exFAT и NTFS, причем дефолтной для Windows является exFAT, да и фотоаппарат Canon 6D при форматировании карточки в нем выбирает именно эту систему. Выбор в общем-то разумный и оправданный. Но вот флэш-накопитель Kingston DataTraveler Locker+ G3 32 Gb будет отформатирован операционной системой Windows 8.1 по умолчанию в FAT32, что неминуемо приведет к вопросам со стороны пользователя, как только ему потребуется перенести огромный образ DVD диска или BDRemux какого-нибудь фильма. Кроме того, теория говорит о разнице в производительности между файловыми системами.
Проверю это несложное предположение на практике, используя уже упомянутый накопитель Kingston DataTraveler Locker+ G3 32 Gb.

Тестовый стенд

  • Процессор: Intel Core i7-5960X
  • Материнская плата: ASUS Rampage V Extreme
  • Оперативная память:HyperX Fury DDR4-2133 32 Gb (4*8 Gb)
  • Системный SSD-накопитель:HyperX Predator PCI-E SSD 480 Gb
  • Видеокарта: ASUS Radeon R9 290X Matrix
  • Блок питания: Corsair AX1200i, 1200W
  • Операционная система: Windows 8.1 Профессиональная (64-bit)

Набор тестовых приложений:

  • ATTO disk benchmark 2.4.7
  • TeraCopy

ATTO disk benchmark 2.4.7

Синтетический тест для оценки корректности заявленных производителем скоростей. Собственно большинство данных, указанных на коробках флешек и SSD разных производителей, получены именно с помощью ATTO Disk Benchmark.

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

TeraCopy

Для оценки самой что ни на есть реальной производительности я записывал на флешку BDRemux фильма The Hobbit. Battle Of Five Armies (размер файла 28 851 025 килобайт) и фиксировал время, за которое фильм скопируется на накопитель.

Разница по времени копирования между NTFS и exFAT составила около 45 секунд, в переводе в относительные значения — около 2,5%, небольшая, но все же разница. FAT32 по очевидным причинам в этом тесте участия не принимала.

Финальные размышления

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

Файловая система — что это такое и их виды

Файловая система является важной частью любого накопителя информации. Она позволяет организовывать файловое пространство и работать с ней операционной системе.

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

Прошлый материал был посвящен сочетанию клавиш WIN + R. Сегодня мы разберем понятие/определение файловой системы, рассмотрим, какие они бывают и чем отличаются друг от друга.

  • 1 Что такое файловая система
    • 1.1 Как это работает
  • 2 Виды
    • 2.1 FAT
    • 2.2 FAT32
    • 2.3 NTFS
    • 2.4 exFAT
    • 2.5 В заключение

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

Файловая система (File System, ФС) — определяет и контролирует, как будут храниться и именоваться данные на носителе/накопителе информации: флешке, жестком или ssd диске и других. От нее зависит способ хранения данных на накопителе, сам формат данных и то, как они будут записываться/читаться в дальнейшем.

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

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

Что определяет файловая система:

  • Структура
  • Правила хранения и чтения данных
  • Размер кластеров
  • Формат содержимого
  • Размер имен файлов
  • Максимально возможный размер файла и раздела. К примеру, в ФАТ32 максимальный размер всего 4 ГБ, т.е. 4 294 967 295 байт.
  • Набор атрибутов файла

Как это работает

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

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

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

Прочитает ли ваше устройство флешку или SD карту с определенной файловой системой, определяет то, какая операционная система установлена на этом устройстве. С компьютерами все просто, здесь читается практически любая ФС на носителях, и более того — мы сами можем определять ее при форматировании. Windows, Linux, Mac OS, Android и IOS — универсальные ОС, которые поддерживают сразу несколько разных видов файловых систем.

А вот в случае с оборудованием типа: магнитол, телевизоров, DVD плееров с USB входом и другим аналогичным — прочитает ли оно флешку, к примеру, в формате NTFS, будет зависеть уже от производителя этого оборудования. Поэтому, перед тем, как покупать такую аппаратуру, или записывать файлы для нее на накопитель, посмотрите какую ФС она вообще поддерживает.

Интересно! Термин файловая система раньше использовался для описания метода хранения бумажных документов/файлов. Только в 1 961 году его начали применять для использования к компьютерам, причем своего значения он не потерял.

Есть определенные файловые системы, которые используются повсеместно, это: FAT32, NTFS и exFAT. Это универсальные ФС, которые видят все ОС: Windows, Linux, Mac OS, IOS, Android и другие. А также их читают практически все фотоаппараты, видеокамеры, телевизоры и другое оборудование. Есть и ФС, которые были специально разработаны для работы в определенных приложениях, к примеру, ISO 9660 разработана специально для оптических дисков.

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

FAT (таблица размещения файлов) — это простая ФС с классической архитектурой. Была разработана еще в 1 976 годах Биллом Гейтсом и Марком МакДональдом для MS-DOS и Windows. До сих пор применяется для некоторых флеш накопителей. Используется исключительно для небольших флеш накопителей, дисков и простых структур папок.

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

Существует четыре версии этой ФС, самые известные и распространенные на данный момент — FAT32 и exFAT (FAT64). Цифра в конце названия означает количество бит, которые отведены для хранения кластера.

FAT32

FAT32 — это разновидность файловой системы FAT. На данный момент является предпоследней версией этой ОС, прямом перед exFAT. Имеет расширенный размер тома, т.е. использует 32-разрядную адресацию кластеров.

Появилась вместе с Windows 95. Поддерживается практически всеми ОС. Но, практически уже не используется, так как, имеет ограничение на размер файла в 4Гб и полный размер накопителя может быть только менее 8 терабайт.

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

NTFS — это файловая система, являющаяся стандартом для Windows и других ОС. Поддерживается практическими всеми устройствами и не имеет лимита на размер файлов в 4 Гб.

Была разработана на смену FAT, обладает более высокой производительностью, защитой, механизмом хранения информации. Данные располагаются в главной таблице — MFT. Файлы можно именовать на любом языке в стандарте юникода UTF.

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

exFAT

exFAT — это улучшенная система FAT32, избавленная от ее недостатков. Была создана специально для SSD дисков, здесь используется куда меньшее количество перезаписей секторов, что увеличивает срок службы таких дисков. Ограничения на размер данных нет и увеличен размер кластера.

Из минусов — не все ОС и устройства видят ее на данный момент, те же Windows Vista без Service Pack и более ранние просто не могут с ней работать. Это же относится и к некоторым моделям устройств: телевизоров, планшетов, магнитол и других.

В заключение

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

Различия FAT и NTFS

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

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

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

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

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

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

Файловые системы fat32 и ntfs очень сильно отличаются. FAT расшифровывается как File Allocation Table. Это очень давняя файловая система в истории вычислительных систем. Ее история началась в 1977 году. Тогда была разработана 8 битная файловая система, которая использовалась в NCR 7200 на основе Intel 8080. Это был терминал ввода, который работал с гибкими дисками. Файловая система была написана сотрудником Microsoft, Марком Макдональдом после обсуждения ее концепции с Билом Гейтсом.

Затем файловая система FAT начала использоваться в операционной системе MDOS для платформы Z80. Спустя несколько лет были выпущены новые версии, такие как FAT12, FAT16 и FAT32.

FAT32 увеличила максимальный размер тома до 16 Тб, по сравнению с FAT16. Также был увеличен размер файла до 4 Гб. File Allocation Table 32 бит вышла в августе 1995 года для Windows 95. Но эта файловая система все еще не может использоваться для установки тяжелых приложений или хранения больших файлов. Поэтому Microsoft разработала новую файловую систему — NTFS, которая лишена таких недостатков.

FAT32 — это отличная файловая система для внешних носителей, если вам нужно передавать файлы размером не более чем 4 Гб. Она поддерживается множеством различных устройств, таких как фотоаппараты, камеры, музыкальные плееры. Все версии Windows и дистрибутивы Linux полностью поддерживают FAT32. Даже Apple MacOS ее поддерживает.

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

Для своих новых систем Microsoft разработала новую файловую систему — New Technology File System или NTFS. Она появилась в 1993 году, в Windows NT 3.1. NTFS сняла многие ограничения на размеры файлов и диска. Ее разработка началась еще в далеком 1980 году, в результате объединения Microsoft и IBM для создания новой файловой системы с улучшенной производительностью.

Но сотрудничество компаний продлилось недолго, и IBM выпустила HPFS, которая использовалась в OS/2, а в Microsoft создали NTFS 1.0. Максимальный размер одного файла в NTFS может достигать 16 экзабайт, а это значит, что в ней поместятся даже самые большие файлы.

NTFS 3.1 была выпущена для Windows XP и получила множество интересных улучшений, таких как поддержку уменьшения размера разделов, автоматическое восстановление и символические ссылки, а максимальный размер диска с файловой системой увеличен до 256 ТБ. Это несмотря на максимальный размер файла в 16 Эб.

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

Сейчас это журналируемая файловая система, все действия с файлами заносятся в специальный журнал, с помощью которого файловая система может быть очень быстро восстановлена при повреждениях. NTFS поддерживается в Windows XP и более поздних версиях. Если сравнивать fat или ntfs, то последняя в Linux поддерживается не полностью, возможна запись и восстановление при повреждениях, а в MacOS поддерживается только чтение.

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

Файловая система exFAT — это еще один проект Microsoft по улучшению старой файловой системы. Ее можно исполосовать там, где не подходит FAT32. Она намного легче за NTFS, но поддерживает файлы размером более 4 Гб, и тоже часто применяется на флешках и накопителях. При ее разработке Microsoft использовала свою технологию поиска имен файлов по хэшу, что очень сильно улучшает производительность.

Большинство стран признают патентное право США, поэтому любая реализация exFAT невозможна в любых системах с закрытым или открытым исходным кодом. Но Microsoft хочет чтобы эта файловая система свободно распространялась и использовалась. Поэтому была разработана версия exFAT на основе FUSE под названием fuse-exfat. Она дает полный доступ на чтение и запись. Также была создана реализация на уровне ядра Linux в Samsung, которая сейчас тоже есть в открытом доступе.

Эта файловая система тоже имеет максимальное ограничение на размер файла 16 ЭБ, но она намного легче и не имеет никаких дополнительных возможностей. Если говорить про совместимость, то она полностью поддерживается в Windows, MacOS, Android и Linux.

Различия FAT и Ntfs

А теперь рассмотрим основные различия FAT и NTFS в виде краткого резюме по каждой из файловых систем:

FAT32

  • Совместимость: Windows, Mac, Linux, игровые консоли, практически все устройства, имеющие USB порт;
  • Плюсы: кроссплатформенность, легкость;
  • Минусы: максимальный размер файла 4 ГБ и раздела 16 ГБ, не журналируемая;
  • Использование: внешние носители.
  • Совместимость: Windows, Linux, Xbox One, и только чтение в Mac;
  • Плюсы: журналируемая, большие лимиты на размер раздела и файла, шифрование, автоматическое восстановление;
  • Минусы: ограниченная кроссплатформенность;
  • Использование: для установки Windows.

exFAT

  • Совместимость: Windows XP и выше, MacOS X 10.6.5, Linux (fuse), Android;
  • Плюсы: большой лимит на размер раздела и файла, легкая по сравнению с NTFS;
  • Минусы: Microsoft ограничивает ее использование лицензионным соглашением;
  • Использование: для внешних носителей и внешних жестких дисков.

Выводы

В этой статье мы выполнили сравнение fat и ntfs. Это очень разные файловые системы. Но понять какая файловая система лучше fat или ntfs сложно, с одной стороны NTFS имеет намного больше возможностей, но зато FAT более легкая и поддерживается везде, где это возможно. Для разделов данных в Linux, которые должны быть доступны в Windows лучше использовать FAT, а не NTFS, поскольку она поддерживается лучше. А по-вашему что лучше fat или ntfs для Linux?