60 какую информацию содержит fat. Файловые системы FAT32, exFAT и NTFS – в чем главное отличие

21.06.2020

До возникновения операционной системы Microsoft Windows NT у пользователей персональных компьютеров редко возникала проблема выбора файловой системы. Все владельцы операционных систем (ОС) MS-DOS и Microsoft Windows применяли одну из разновидностей файловой системы с названием FAT (FAT-12, FAT-16 или FAT-32).

Теперь же ситуация изменилась. Устанавливая ОС Microsoft Windows NT/2000/XP, при форматировании диска Вам необходимо сделать выбор между тремя файловыми системами - FAT-16, FAT-32 или NTFS.

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

Кратко о файловой системе FAT

Файловая система FAT появилась на заре развития персональных компьютеров и первоначально предназначалась для хранения файлов на дискетах.

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

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

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

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

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

При разработке формата таблицы FAT стояла задача экономии места, т.к. дискета имеет весьма небольшой объем (от 180 Кбайт до 2,44 Мбайт). Поэтому для хранения номеров кластера было отведено всего 12 двоичных разрядов. В результате таблицу FAT удалось упаковать так плотно, что она занимала всего один сектор дискеты.

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

Различные версии FAT

После появления жестких дисков большого объема (в те времена большими считались диски размером 10-20 Мбайт) количество кластеров увеличилось, и 12 разрядов стало недостаточно для хранения их номеров. Был разработан новый 16-разрядный формат таблицы размещения файлов, где для хранения номера одного кластера выделялось два байта. Старая файловая система, разработанная для дискет, стала называться FAT-12, а новая - FAT-16.

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

Однако когда объем диска стал измеряться в сотнях Мбайт и даже в гигабайтах, файловая система FAT-16 опять стала неэффективной. Чтобы номера кластеров помещались в 16 разрядов, при форматировании дисков большого объема приходится увеличивать размер кластера до 16 Кбайт и даже больше. Это вызывало проблемы при необходимости хранения на диске большого количества маленьких файлов. Так как пространство для хранения файлов выделяется кластерами, даже для очень маленького файла приходится отводить слишком много дисковой памяти.

В результате была предпринята еще одна, по всей видимости, последняя попытка усовершенствования файловой системы FAT - размер ячейки таблицы размещения файлов был увеличен до 32. Это позволило форматировать диски размером в сотни Мбайт и единицы Гбайт с использованием относительно небольшого размера кластера. Новая файловая система стала называться FAT-32.

Стандарт 8.3

До появления ОС Microsoft Windows 95 пользователи персональных компьютеров были вынуждены использовать для именования файлов весьма неудобный "стандарт 8.3", в котором имя файла должно было состоять из 8 символов плюс 3 символа расширения. Это ограничение накладывалось не только программным интерфейсом операционной системы MS-DOS, но и структурой записи каталога файловой системы FAT.

После модификации структуры записей каталога ограничение на количество символов в имени файла было практически снято. Теперь длина имени файла может достигать 255 символов, что, очевидно, достаточно в большинстве случаев. Однако такая модифицированная файловая система FAT стала несовместима с операционной системой MS-DOS, а также с работающей в ее среде оболочкой Microsoft Windows версий 3.1 и 3.11.

Более подробно о форматах внутренних структур FAT Вы можете прочитать в нашей статье "Восстановление данных в разделах FAT", опубликованных на этом сайте.

Ограничения файловой системы FAT

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

Максимальный размер логического диска FAT-16 составляет 4 Гбайт, что очень мало по современным понятиям. Компания Microsoft, однако, не рекомендует создавать диски FAT-16 размером более 200 Мбайт, т.к. при этом дисковое пространство будет использоваться очень неэффективно.

Теоретически максимальный размер диска FAT-32 может составлять 8 Тбайт, что должно хватить для развертывания любых современных приложений. Это значение получается путем перемножения максимального количества кластеров (268 435 445) на максимальный размер кластера, допустимый в FAT-32 (32 Кбайт).

Однако на практике ситуация выглядит немного по-другому.

Из-за внутренних ограничений утилита ScanDisk в ОС Microsoft 95/98 не способна работать с дисками, превышающими по своему объему значение 127.53 Гбайт. Еще год назад такое ограничение не вызвало бы проблем, однако сегодня на рынке уже появились недорогие диски объемом 160 Гбайт, и скоро их объем будет еще больше.

Что же касается новых операционных систем Microsoft Windows 2000/XP, то они не способны создавать разделы FAT-32 с объемом, превышающим 32 Гбайт. Если Вам нужны разделы такого или большего объема, компания Microsoft предложит Вам использовать файловую систему NTFS.

Другое существенное ограничение FAT-32 накладывается на размер файлов - он не может превышать 4 Гбайт. Это ограничение будет сказываться, например, при записи на диск видеофрагментов или при создании объемных файлов баз данных.

В каталоге FAT-32 может хранить не более 65534 файлов.

Недостатки FAT

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

Загрузив компьютер с системной дискеты, злоумышленник легко получит доступ к любым файлам, хранящимся на дисках с файловой системой FAT. Ему не составит никакого труда скопировать затем эти файлы на устройство ZIP или какой-либо другой внешний носитель данных.

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

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

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

Современная файловая система NTFS, разработанная компанией Microsoft для своей операционной системы Microsoft Windows NT, лишена ограничений и недостатков FAT. С момента своего возникновения развивающаяся файловая система NTFS претерпела несколько усовершенствований, последние из которых (на момент создания этой статьи) были сделаны в ОС Microsoft Windows XP.

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

Файлы небольшого размера (порядка сотен байт) хранятся непосредственно в $MFT, что существенно ускоряет доступ к ним.

Заметим, однако, что накладные расходы NTFS на хранение системной информации, хотя и превышают накладные расходы FAT, все же не очень велики по сравнению с объемом современных дисков. Из-за того, что файл $MFT обычно располагается ближе к середине диска, разрушение первых дорожек диска NTFS не приводит к таким фатальным последствиям, как разрушение начальных областей диска FAT.

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

Перечислим некоторые, наиболее интересные возможности NTFS современных версий.

Средства разграничения доступа

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

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

Шифрование файлов

Упомянутые выше средства разграничения доступа окажутся бесполезными, если физический диск NTFS попадет в руки злоумышленнику. С использованием современных утилит содержимое такого диска может быть без особого труда прочитано в среде любой операционной системе - DOS, Microsoft Windows или Linux.

С целью обезопасить фалы пользователей от несанкционированного доступа, в операционных системах Microsoft Windows 2000/XP предусмотрено дополнительное шифрование файлов, хранящихся в разделах NTFS. И хотя стойкость такого шифрования, возможно, не слишком высока, она вполне достаточна в большинстве случаев.

Программный дисковый массив RAID

Средствами NTFS можно создать так называемый программный массив RAID 1 (Mirrored set). Этот массив, составляемый из двух физических или логических дисков одинакового объема, позволяет дублировать (или, как еще говорят, "зеркалировать") файлы.

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

Наборы Volume Set

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

Наборы, созданные из нескольких разделов или физических дисков, называются Volume Set (в терминологии ОС Microsoft Windows NT) или Spanned Volume (в терминологии ОС Windows 2000/XP).

Упаковка файлов

Для экономии дискового пространства можно использовать способность NTFS упаковывать (сжимать) файлы. Помимо этого NTFS позволяет создавать так называемые разреженные (sparse) файлы, которые содержат области нулевых данных. Такие файлы могут иметь большой объем, но при этом занимать мало места на диске, так как фактически хранятся только значащие байты файла.

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

Многопоточные файлы

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

Жесткие связи

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

Заметим, что подобные возможности характерны для файловых систем, применяемых в Unix-подобных ОС, например, в Linux, FreeBSD и т.д.

Точки переопределения

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

Переходы

Пользуясь переходами NTFS, можно смонтировать в каталог диска другой жесткий диск или компакт-диск. Эта возможность первоначально существовала в файловых системах Unix-подобных ОС.

Квотирование дискового пространства

Файловая система NTFS, использованная в ОС Microsoft Windows 2000/XP, позволяет квотировать, или ограничивать дисковое пространство, предоставляемое в распоряжение пользователей. Такая возможность особенно полезна при создании файловых серверов.

Ведение журнала изменений

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

Ограничения NTFS

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

Максимальный размер логического диска NTFS составляет примерно 18 446 744 Тбайт, что, очевидно, достаточно для всех современных приложений, а также приложений, которые появятся в ближайшем будущем. Максимальный размер файла еще больше, так что это ограничение также несущественно.

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

Сравнение NTFS и FAT по скорости доступа к файлам

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

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

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

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

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

Так что же выбрать - FAT или NTFS?

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

Какие могут быть препятствия, затрудняющие замену FAT на NTFS?

Наиболее серьезное препятствие - необходимость использования ОС Microsoft Windows NT/2000/XP. Для нормальной работы этой ОС требуется как минимум 64 Мбайт оперативной памяти и процессор с тактовой частотой не ниже 200-300 Мгц. Впрочем, этим требованиям не удовлетворяют лишь очень старые компьютеры, не способные работать под управлением ОС Microsoft Windows современных версий.

Если же Ваш компьютер может работать в среде Microsoft Windows 2000/XP, и у Вас нет ни одного прикладного приложения, рассчитанного исключительно на ОС Microsoft Windows 95/98/ME, мы рекомендуем Вам при первой же возможности перейти к новой операционной системе, заменив при этом FAT на NTFS.

При этом Вы также получите заметное увеличение надежности работы, т.к. после установки всех необходимых пакетов исправлений (Service Pack), а также корректных версий драйверов периферийных устройств, ОС Microsoft Windows 2000/XP будет работать очень стабильно.

В некоторых случаях приходится совмещать в рамках одного физического диска несколько файловых систем. Например, если на Вашем компьютере установлено три операционные системы Microsoft Windows ME, Microsoft Windows XP и Linux, можно создать три файловые системы - FAT, NTFS и Ext2FS. Первая из них будет "видна" при работе в Microsoft Windows ME и Linux, вторая - только в Microsoft Windows XP, и третья - только в Linux (заметим, что в ОС LINUX существует также возможность доступа к разделам NTFS).

Но если Вы создаете сервер (файловый, базы данных или Web) на базе ОС Microsoft Window NT/2000/XP, то единственным разумным выбором будет NTFS. Только в этом случае удастся добиться необходимой стабильности, надежности и защищенности сервера.

Существует также общепринятое (и на наш взгляд, ошибочное) мнение, что домашним пользователям компьютеров не нужна ни ОС Microsoft Window NT/2000/XP, ни файловая система NTFS.

Конечно, если компьютер применяется исключительно для игр, из соображений совместимости лучше всего установить Microsoft Windows 98/ME и отформатировать диски в 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. Подробности рассмотрим ниже.

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

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

Первое что нам нужно, это узнать размер загрузочной области. Смотрим адрес 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, размер корневого теперь игнорируется. Область данных находится сразу за таблицами 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

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

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

Возможно вы думаете: «что файловая система это сложная и непонятная штука, ведь с ней работают операционные системы, а там все просто быть не может…»

Частично вы правы, но весь изюм находиться в драйвере файловой системе, т.е. в программе, которая предоставляет API для остальных прикладных программ. Она как раз и выполняет такие действия как:

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

Сам принцип организации файловой системы прост.

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

(про то, как написать драйвер, есть отдельный )

Почему FAT16?

Я считаю её наиболее удобной для обучения, её легко осмыслить. А зная идею, уже не сложно изучать другие файловые системы — FAT32, NTFS, и т.п.

Зачем мне нужно знать как устроена файловая система?

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

Описание файловой системы FAT16

Для удобного ориентирования по посту, я приведу список вопросов, на которые вы найдете ответы:

Файловая система FAT16 делит все адресное пространство носителя на две области:

  • системную область
  • область данных

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

Все данные, которые мы храним на своем носителе, т.е. все файлы и каталоги — хранятся в области данных. Системная же область, хранит параметры данного носителя и характеристики файлов и директорий – имя файла, имя директориии, атрибуты файла и т.п.

Начнем с простого, пару слов про область данных и как там хранятся данные

Про область данных …

Чтобы не адресовать каждый байт (хотя некоторые носители информации позволяют работать и побайтно) в файловой системе используют другую минимальную адресуемую единицу – сектор . Размер сектора 512 байт . Помимо сектора файловая система FAT16 использует еще такое понятие как кластер . Кластер это один или несколько расположенных подряд секторов .

Этим параметром (число секторов на кластере) часто манипулируют при форматирование носителей информации. Т.к. от него зависит скорость работы и «степень упаковка данных». FAT16 как и все файловые системы использует такое понятие как файл. Файл это область данных имеющая имя и некоторые атрибуты. Физически в области данных это один или несколько занятых кластеров, причем файл занимает целое число кластеров. Даже, если он занимает чуть больше чем два кластера для файловой системы занятых под файл будет считаться три кластера. Поэтому, чем меньше размер кластера, тем больше «степень упаковки данных» и экономичнее используется область данных. С другой стороны, считывать файл из больших кусков памяти т.е. кластеров быстрее, чем из мелких. Поэтому, выбор размера кластера это дело компромисса.

Файловая система FAT16 накладывает ограничения на размер кластера , не более 128 секторов (т.е. не более 64 кб) и на количество кластеров не более 65525 штук . Если использовать все по максимум, т.е. максимальные размер секторов и максимальное количество кластером, то выходит что FAT16 не может адресовать больше чем 4.2 гигабайта информации .

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

Про системную область …

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

Разберем каждую часть подробнее

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

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

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

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

Если посмотреть HEX код , какого-нибудь носителя информации отформатированного в формате FAT16 , то мы увидим значение полей. В качестве примера я приведу HEX код образа в формате FAT16 созданного в WinImage. Для удобства ориентирования по коду, я пометил цветами какой фрагмент HEX кода к какому параметру относиться.

P.S. Значение для каждой ячейки считаются справа налево , например если написано 00 02 h, то на самом деле это 02 00 h, т.е. 512

P.S. Загрузочный сектор всегда заканчивается 55AAh.

Важно обратить внимание на параметр «ReservedSectors » — количество зарезервированных секторов, по смещению 0Eh . В самом начале, я говорил, что загрузочный сектор обычно имеет размер 512 байт, но может быть и больше. Определяется его размер параметром «ReservedSectors », в нашем случае ReservedSectors = 01h , значит загрузочный сектор занимает 1-ин сектор или 512 байт .

2. FAT

После загрузочного сектора с размером 512* ReservedSectors байт , идет таблица FAT1 , её размер определяется двухбайтовым полем — SectorPerFat (16h) загрузочного сектора. В примере выше значение данного поля равняется 0001h или 1 , т.е. один сектор или 512 байт .

Что такое FAT?

Первым делом это аббревиатура – File Allocation Table , означающая «таблица расположение файлов». Это таблица с одним столбцом и 512/2 количеством строк (если размер таблицы FAT – 512 байт или SectorPerFat равен 0001h, как в нашем случае). Каждая строка таблицы FAT занимает 2 байта памяти , поэтому количество строк для нашего случая это 512/2 .

Таблица служит в роли карты по кластерам , каждая её строка характеризует какой либо кластер , первая строка – первый кластер, вторая – второй и так для всех кластеров, что есть в области данных. Перед таблицей стоит дескриптор таблицы F8FFh (то же значение, что и в 15h загрузочного сектора) и заполнитель FFFFh . Далее идут строки таблицы, значения которых могут быть следующие:

  • 0000h - свободный кластер;
  • 0002h-FFEFh - номер следующего элемента в цепочке;
  • FFF0h-FFF6h - зарезервированный;
  • FFF7h - дефектный;
  • FFF8h-FFFFh - последний в цепочке;

Приведу пример HEX кода с пояснением .

Синей рамкой я обозначил таблицу FAT1 , красной таблицу FAT2 (копия таблицы FAT1). Закрашенный зеленый квадратик это дескриптор таблицы F8FFh и заполнитель FFFFh . Не закрашенные квадратики, это строки таблицы. Я не стал обозначать все строки зеленой рамкой, обвел только не нулевые.

Как применяется и зачем нужна FAT, я объясню чуть позже.

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

После таблиц FAT идет «корневой каталог ». Это область памяти, содержащая 32-ух байтовые элементы . Каждый элемент описывает , какой либо файл или каталог, находящиеся в корневом каталоге или другим языком «в корне» жесткого диска/флешки. Выходит корневой каталог описывает все то, что есть в корне.

Размер корневого каталога зависит от параметра RootEntries (11h) загрузочного сектора. В нем указывается максимальное число 32-ух байтных элементов в корневом каталоге. Выходит размер каталога это RootEntries * 32 , для нашего случая это 512 * 32 = 16384 байт .

Каждый элемент имеет следующую структуру:

Приведу пример HEX кода с пояснением.

Зеленой рамкой я обозначил область памяти, отвечающая за корневой каталог , синей 32-ух байтные элементы корневого каталога . Не пустые 32-ух байтные элементы я закрасил голубым.

Здесь два не пустых 32-ух байтных элемента , значит, в корневом каталоге храниться два «чего-то» , это могут быть как файлы так и другие каталоги . В данном случае для простоты примера в корне храниться два файла «1.txt » и «test.txt ».

Рассмотрим поближе этих два 32-ух байтных элемента, для удобства я отметил цветами фрагмент HEX кода и соответствующий параметр 32-ух байтного элемента в таблице.

P.S . Если первый байт имени файла заменить на «E5» , то проводник Windows будет считать его как удаленный . Такой файл возможно восстановить, заменив первый символ E5 в имени на прежнее значение. Не уверен до конца, но думаю, что так работает корзина в Windows. Помещая в корзину, операционная система сохраняет, где-то имя файла и заменяет первый байт в имени на E5, а при восстановление присваивает файлу прежнее имя.

P.S . Имена файлов в системе FAT16 хранятся в формате 8.3 . Т.е. 8-байтов выделено для имени и 3-и байта выделено для расширения . Имена кодируются в формате ASCII , один символ это один байт. Поэтому имя не может иметь длину больше чем 8-емь символов , а расширения больше 3-ех . Если имя короче 8-и символов , то недостающие байты заполняются 20h (знак пробела в ASCII коде).

P.S . Напомню, что значение для каждой ячейки считается справа налево, например если написано 00 02 h, то на самом деле это 02 00 h, т.е. 512 в десятичной системе исчисления.

Самый важный для нас параметр находится по адресу 1Аh — «младшее слово первого кластера файлов ». В нем храниться номер кластера, в котором находиться содержимое файл, а это значит мы можем работать с информацией данного файла, т.е. считывать, редактировать его и т.п.

Например «1.txt » храниться в кластере номер 0x0003 или 3 в десятичной системе исчисления. А это значит, что если мы перейдем к кластеру №3 в области данных (напомню, область данных это просто подряд идущие кластеры) мы попадем к содержимому данного файла .

У вас может возникнуть «практический» вопрос, а как найти этот третий кластер? По какому адресу он находиться?

Как найти адрес кластера зная его номер?

Для этого, вам нужно знать какой объем у вас занимает системная область и какого размера кластеры (т.е. сколько секторов (или 512 байт) содержит в себе кластер).

Узнать размер системной области вам поможет следующий рисунок:

Пример для моего случая

Загрузочный сектор имеет объем 512*ReservedSectors байт, в моем случае 512 байт . Далее, таблица FAT у меня занимает один сектор , т.е. 512 байт (т.к. SectroPerFat равен 1). Таблицы две (т.к. NumberOfFATs равен 2), значит две таблицы в сумме 512*2=1024 байт . Размер корневого каталога 512-ть 32-ух значных элементов, т.е. 512*32=16384 байт . Считаем:

512 (загрузочный сектор) + 1024 (две таблицы FAT) + 16384 (корневой каталог) = 17920 байт или 4600 в шестнадцатеричной системе исчисления.

В итоге, в нашем случае область данных начинается с 0x4600 , посмотрим:

Мы видим содержимое, какого то файла, но не нашего. Данные интересующего наc файла (1.txt) хранятся в кластере №3 .

Теперь нужно узнать размер кластера, в этом нам поможет параметр загрузочного сектора – SectorPerCluster (0xD, размер параметра 1 байт). В нашем случае размер кластера 4-е сектора , т.е. 512*4=2048 байт или 800 в шестнадцатеричной системе исчисления. Важно заметить, что кластеры нумеруются с двойки, а не с единицы (!).

Подсчитываем, с какого адреса начинается кластер №3 :

0x4600 (системная область) + 0x800 (второй кластер) = 0x4E00

Подсчитываем, по какому адресу кончается кластер №3 :

0x4E00 (начало кластера №3) + 0x800 (512*4 или размер одного кластера в HEX) = 0x5600

В результате кластер №3 лежит в диапазоне адресов 0x4E00 0x5600.

Посмотрим HEX код

Синий рамкой я обозначил содержимое файла 1.txt . Все, что выше рамки — содержимое другого файла. Пустые области сектора заполняются 0x00.

Так зачем нужна таблица FAT?

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

Если строка имеет значение 0xFF8-0xFFFF , то это значит, что это последний кластер для данного файла, т.е. файл занимает всего один кластер .

Если строка имеет значение 0x0002-0xFFEF , то это означает, что файл растянулся на еще один кластер . Цифра означает номер следующего кластера , в котором храниться продолжение файла. Мы должны продолжить считывать файл по данному номеру кластера.

После считывания нового кластера, нужно посмотреть значение строки по данному номеру в FAT. Если значение строки равно 0x FF8-0xFFFF, то это значит, что данный кластер последний в файле. Если 0x0002-0xFFEF, то это номер для следующего кластера, считываем дальше и повторяем действие. Считывание файла это цикл с условием.

Итак мы разобрались с файлами, теперь пришло время разобраться с директориями.

Что такое директория?

Директория для файловой системы FAT16 (да и для многих других) это особый файл с нулевым размером хранящий список своего содержимого .

Допустим, мы добавили в наш образ FAT16 директорию «TEST_DIR » c файлом «in_dir.txt ». Тогда в корневом каталоге появиться новый 32-ух байтный элемент , он описывает директорию также как и файл , но с небольшими отличиями.

Я отметил красным параметры характерные для директорий, это 0x10 – метка каталога и 0x00000000 — размер файла.

Как видно в синем квадрате, директория у нас лежит в кластере №5 , посмотрим что там.

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

В элементах описывается имя файла или каталога, атрибуты и номер кластера в котором лежат его данные. В любой папке, всегда есть два каталога с именем «.» и «..» .

Первый лежит в кластере №5 , т.е. это тот же самый каталог , а второй на кластер номер №0 . Под этим номером понимается «корневой каталог» , т.е. это выход в корневой каталог.

Описание файла «in_dir.txt » стандартное, как и для корневого каталога (см. корневой каталог). Для нас главное, это номер кластера в котором находиться содержимое данного файла (обозначил красным квадратом).

Смотрим кластер №6 и видим содержимое файла «in_dir.txt ». Красной линей я обозначил начало кластера.

Вам будет интересно:


Введение

2.1 Система FAT16

2.2 Система FAT32

2.3 Сравнение FAT16 и FAT32

3.1 Система NTFS

3.2 Сравнение NTFS и FAT32

Заключение

Список литературы

Введение

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

Файловая система с точки зрения пользователя - это "пространство", в котором размещаются файлы. А как научный термин - это способ хранения и организации доступа к данным на информационном носителе или его разделе. Наличие файловой системы позволяет определить, как называется файл, где он находится. Поскольку на IBM PC - совместимых компьютерах информация храниться в основном на дисках, то применяемые на них файловые системы определяют организацию данных именно на дисках (точнее, на логических дисках). Мы рассмотрим файловую систему FAT.

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

1. История создания и общая характеристика файловой системы FAT

Файловая система FAT (File Allocation Table) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков. В настоящее время FAT поддерживает файлы и разделы размеров до 2 Гбайт.

В FAT применяются следующие соглашения по именам файлов:

имя должно начинаться с буквы или цифры и может содержать любой символ ASCII, за исключением пробела и символов "/\ :; |=,^*?

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

регистр символов в именах файлов не различается и не сохраняется.

Структура раздела FAT изображена на табл 1.1 В блоке параметров BIOS содержится необходимая BIOS информация о физических характеристиках жесткого диска. Файловая система FAT не может контролировать отдельно каждый сектор, поэтому она объединяет смежные сектора в кластеры (clusters). Таким образом, уменьшается общее количество единиц хранения, за которыми должна следить файловая система. Размер кластера в FAT является степенью двойки и определяется размером тома при форматировании диска (табл.1.2). Кластер представляет собой минимальное пространство, которое может занимать файл. Это приводит к тому, что часть пространства диска расходуется впустую. В состав операционной системы входят различные утилиты (DoubleSpace, DriveSpace), предназначенные для уплотнения данных на диске.

Табл. 1.1 - Структура раздела FAT

Загрузочный сектор Блок параметров BIOS (BPB) FATFAT (копия) Корневой каталогОбласть файлов

Свое название FAT получила от одноименной таблицы размещения файлов. В таблице размещения файлов хранится информация о кластерах логического диска. Каждому кластеру в FAT соответствует отдельная запись, которая показывает, свободен ли он, занят ли данными файла, или помечен как сбойный (испорченный). Если кластер занят под файл, то в соответствующей записи в таблице размещения файлов указывается адрес кластера, содержащего следующую часть файла. Из-за этого FAT называют файловой системой со связанными списками. Оригинальная версия FAT, разработанная для DOS 1.00, использовала 12-битную таблицу размещения файлов и поддерживала разделы объемом до 16 Мб (в DOS можно создать не более двух разделов FAT). Для поддержки жестких дисков размером более 32 Мб разрядность FAT была увеличена до 16 бит, а размер кластера - до 64 секторов (32 Кб). Так как каждому кластеру может быть присвоен уникальный 16-разрядный номер, то FAT поддерживает максимально 216, или 65536 кластеров на одном томе.

Табл.1.2 - Размеры кластера

Размер разделаРазмер кластераТип FAT< 16 Мб4 КбFAT1216 Мб - 127 Мб2 КбFAT16128 Мб - 255 Мб4 КбFAT16256 Мб - 511 Мб8 КбFAT16512 Мб - 1023 Мб16 КбFAT161 Гб - 2 Гб32 КбFAT16

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

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

Табл.1.3 - Элементы каталога

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

Еще один недостаток FAT заключается в том, что ее производительность сильно зависит от количества файлов, хранящихся в одном каталоге. При большом количестве файлов (около тысячи), выполнение операции считывания списка файлов в каталоге может занять несколько минут. Это обусловлено тем, что в FAT каталог имеет линейную неупорядоченную структуру, и имена файлов в каталогах идут в порядке их создания. В результате, чем больше в каталоге записей, тем медленнее работают программы, так как при поиске файла требуется просмотреть последовательно все записи в каталоге. Поскольку FAT изначально проектировалась для однопользовательской операционной системы DOS, то она не предусматривает хранения такой информации, как сведения о владельце или полномочия доступа к файлу/каталогу.является наиболее распространенной файловой системой и ее в той или иной степени поддерживают большинство современных ОС. Благодаря своей универсальности FAT может применяться на томах, с которыми работают разные операционные системы.

Хотя нет никаких препятствий использовать при форматировании дискет любую другую файловую систему, большинство ОС для совместимости используют FAT. Отчасти это можно объяснить тем, что простая структура FAT требует меньше места для хранения служебных данных, чем остальные системы. Преимущества других файловых систем становятся заметны только при использовании их на носителях объемом более 100 Мб.

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

2. Характеристика файловых систем FAT16 и FAT32 и их сравнение

.1 Система FAT16

Файловая система FAT 16, являющаяся основной для операционных систем DOS, Windows 95⁄98⁄Me, Windows NT⁄2000⁄XP, а также поддерживается большинством других систем. FAT 16 представляет собой простую файловую систему, разработанную для небольших дисков и простых структур каталогов. Название происходит от названия метода организации файлов - Таблица размещения файлов (File Allocation Table). Эта таблица размещается в начале диска. Число 16 означает, что данная файловая система 16-разрядная - для адресации кластеров используется 16 разрядов. Операционная система использует Таблицу размещения файлов для поиска файла и определения кластеров, которые этот файл занимает на жестком диске. Кроме того, в Таблице фиксируются сведения о свободных и дефектных кластерах. Чтобы легче было осмыслить файловую систему FAT16 представьте себе оглавление книги и как вы работаете с этим оглавлением, вот именно также операционная система работает с FAT 16.

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

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

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

В файловой системе FAT16 под номер кластера отведено 16 разрядов. Поэтому максимальное количество кластеров составляет 65525, а максимальный размер кластера 128 секторов. В таком случае максимальный размер разделов или дисков в FAT16 составляет 4,2 гигабайта. При логическом форматировании диска или раздела операционная система старается использовать минимальный размер кластера, при котором получающееся количество кластеров не превышает 65525. Очевидно, что чем больше размер раздела, тем больше должен быть размер кластера. Многие операционные системы неправильно работают с кластером размером в 128 секторов. В результате максимальный размер раздела FAT16 уменьшается до 2 гигабайт. Обычно, чем больше размер кластера, тем больше становятся потери дискового пространства. Это связано с тем, что последний кластер, занимаемый файлом, заполнен лишь частично. Например, если файл размером 17 Кбайт записывается в раздел с размером кластера 16 Кбайт, то этот файл займет два кластера, причем первый кластер будет заполнен полностью, а во втором кластере будет записан только 1 Кбайт данных, а остальные 15 Кбайт пространства второго кластера останутся не заполненными и будут недоступными для записи других файлов. Если на больших дисках записывается большое количество маленьких файлов, то потери дискового пространства будут значительны. В следующей таблице 2.1 приводятся сведения о возможных потерях дискового пространства при разных размерах раздела.

Табл. 2.1.1 - Потери дискового пространства

Размер разделаРазмер кластераПотери дискового пространства127 Мб2 Кб2%128-255 Мб4 Кб4%256-511 МБ8 Кб10%512-1023 МБ16 Кб25%1024-2047 МБ32 Кб40%2048-4096 Мб64 Кб50%

Возможны два способа уменьшения потерь дискового пространства. Первый - разбиение дискового пространства на мелкие разделы с малым размером кластера. Второй - использование файловой системы FAT32 <#"center">2.2 Система FAT32

Файловая система FAT32 - более новая файловая система на основе формата FAT, она поддерживается Windows 95 OSR2, Windows 98 и Windows Millennium Edition. FAT32 использует 32-разрядные идентификаторы кластеров, но при этом резервирует старшие 4 бита, так что эффективный размер идентификатора кластера составляет 28 бит. Поскольку максимальный размер кластеров FAT32 равен 32 Кбайт, теоретически FAT32 может работать с 8-терабайтными томами. Windows 2000 ограничивает размер новых томов FAT32 до 32 Гбайт, хотя поддерживает существующие тома FАТ32 большего размера (созданные в других операционных системах). Большее число кластеров, поддерживаемое FAT32, позволяет ей управлять дисками более эффективно, чем FAT 16. FAT32 может использовать 512-байтовые кластеры для томов размером до 128 Мбайт.

Файловая система FAT 32 в Windows 98 используется в качестве основной. С этой операционной системой поставляется специальная программа преобразования диска из FAT 16 в FAT 32. Windows NT и Windows 2000 тоже могут использовать файловую систему FAT, и поэтому можно загрузить компьютер с DOS-диска и иметь полный доступ ко всем файлам. Однако некоторые из самых прогрессивных возможностей Windows NT и Windows 2000 обеспечиваются ее собственной файловой системой NTFS (NT File System). NTFS позволяет создавать на диске разделы объемом до 2 Тбайт (как и FAT 32), но, кроме этого, в нее встроены функции сжатия файлов, безопасности и аудита, необходимые при работе в сетевой среде. А в Windows 2000 реализуется поддержка файловой системы FAT 32. Установка операционной системы Windows NT начинается на диске FAT, но по желанию пользователя в конце установки данные на диске могут быть конвертированы в формат NTFS.

Можно сделать это и позже, воспользовавшись утилитой Convert. exe, поставляемой вместе с операционной системой. Преобразованный к системе NTFS раздел диска становится недоступным для других операционных систем. Чтобы вернуться в DOS, Windows 3.1 или Windows 9x, нужно удалить раздел NTFS, а вместо него создать раздел FAT. Windows 2000 можно устанавливать на диск с файловой системой FAT 32 и NTFS.

Возможности файловых систем FАТ32 гораздо шире возможностей FAT16. Самая важная ее особенность в том, что она поддерживает диски объемом до 2 047 Гбайт и работает с кластерами меньшего размера, благодаря чему существенно сокращает объемы неиспользуемого дискового пространства. Например, жесткий диск объемом 2 Гбайт в FAT16 использует кластеры размером по 32 Кбайт, а в FAT32 - кластеры размером по 4 Кбайт. Чтобы по возможности сохранить совместимость с существующими программами, сетями и драйверами устройств, FAT32 реализована с минимальными изменениями в архитектуре, API-интерфейсах, структурах внутренних данных и дисковом формате. Но, так как размер элементов таблицы FAT32 теперь составляет четыре байта, многие внутренние и дисковые структуры данных, а также API-интерфейсы пришлось пересмотреть или расширить. Отдельные API на FАТ32-дисках блокируются, чтобы унаследованные дисковые утилиты не повредили содержимое FAT32-дисков. На большинстве программ эти изменения никак не скажутся. Существующие инструментальные средства и драйверы будут работать и на FAT32-дисках. Однако драйверы блочных устройств MS-DOS (например, Aspidisk. sys) и дисковые утилиты нуждаются в модификации для поддержки FAT32. Все дисковые утилиты, поставляемые Microsoft (Format, Fdisk, Defrag, а также ScanDisk для реального и защищенного режимов), переработаны и полностью поддерживают FAT32. Кроме того, Microsoft помогает ведущим поставщикам дисковых утилит и драйверов устройств в модификации их продуктов для поддержки FAT32. FAT32 эффективнее FAT16 при работе с дисками большего объема и не требует их разбиения на разделы по 2 Гбайт. Windows 98 обязательно поддерживает FAT16, так как именно эта файловая система совместима с другими операционными системами, в том числе сторонних компании. В MS-DOS реального режима и в безопасном режиме Windows 98, файловая система FAT32 работает значительно медленнее, чем FAT16. Поэтому, при запуске программ в режиме MS DOS желательно включить в файл Autoexec. bat или PIF-файл команду для загрузки Smartdrv. exe, что ускорит дисковые операции. Некоторые устаревшие программы, рассчитанные на спецификацию FAT16, могут сообщать неправильную информацию об объеме свободного или общего дискового пространства, если он больше 2 Гбайт. Windows 98 предоставляет новые API-интерфейсы для MS-DOS и Win32, которые позволяют корректно определять эти показатели.

.3 Сравнение FAT16 и FAT32

Табл.2.3.1 - Сравнение файловых систем FAT16 и FAT32

FAT16FAT32Реализована и используется большинством операционных систем (MS-DOS, Windows 98, Windows NT, OS/2, UNIX). На данный момент поддерживается только в Windows 95 OSR2 и Windows 98. Очень эффективна для логических дисков размером менее 256 Мбайт. Не работает с дисками объемом менее 512 Мбайт. Поддерживает сжатие дисков, например по алгоритму DriveSpace. Не поддерживает сжатие дисков. Обрабатывает максимум 65 525 кластеров, размер которых зависит от объема логического диска. Так как максимальный размер кластеров равен 32 Кбайт, FAT16 может работать с логическими дисками объемом не более 2 Гбайт. Способна работать с логическими дисками объемом до 2 047 Гбайт при максимальном размере кластеров в 32 Кбайт.

Максимально возможная длина файла в FAT32 равна 4 Гбайт за вычетом 2 байтов. Win32-приложения могут открывать файлы такой длины без специальной обработки. Остальные приложения должны использовать прерывание Int 21h, функцию 716С (FAT32) с флагом открытия, равным EXTEND-SIZE (1000h).

В файловой системе FAT32 на каждый кластер в таблице размещения файлов отводится по 4 байта, тогда как в FAT16 - по 2, а в FАТ12 - по 1,5.

Старшие 4 бита 32-разрядного элемента таблицы FAT32 зарезервированы и не участвуют в формировании номера кластера. Программы, напрямую считывающие FАТ32-таблицу, должны маскировать эти биты и предохранять их от изменения при записи новых значений.

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

поддерживает диски объемом до 2 Тбайт;

эффективнее организует дисковое пространство. FAT32 использует кластеры меньшего размера (4 Кбайт для дисков объемом до 8 Гбайт), что позволяет сэкономить до 10-15% пространства на больших дисках по сравнению с FAT;

корневой каталог FAT 32, как и все остальные каталоги, теперь не ограничен, он состоит из цепочки кластеров и может быть расположен в любом месте диска;

имеет более высокую надежность: FAT32 способна перемещать корневой каталог и работать с резервной копией FAT, кроме того, загрузочная запись на FАТ32-дисках расширена и теперь включает резервную копию критически важных структур данных, а это означает, что FАТ32-диски менее чувствительны к возникновению отдельных сбойных участков, чем существующие FAT-тома;

программы загружаются на 50% быстрее.

Табл.2.3.2 - Сравнение размеров кластеров

Объем дискаРазмер кластеров в FAT16, КбайтРазмер кластеров в FAT32, Кбайт256 Мбайт-511 Мбайт8Не поддерживается512 Мбайт - 1023 Мбайт1641024 Мбайт - 2 Гбайт3242 Гбайт - 8 ГбайтНе поддерживается48 Гбайт-16 ГбайтНе поддерживается816 Гбайт-32 ГбайтНе поддерживается16Более 32 ГбайтНе поддерживается32

3. Альтернативная файловая система NTFS и её сравнение с FAT32

3.1 Система NTFS

(New Technology File System) - наиболее предпочтительная файловая система при работе с ОС Windows NT, поскольку она была специально разработана для данной системы. В состав Windows NT входит утилита convert, осуществляющая конвертирование томов с FAT и HPFS в тома NTFS. В NTFS значительно расширены возможности по управлению доступом к отдельным файлам и каталогам, введено большое число атрибутов, реализована отказоустойчивость, средства динамического сжатия файлов, поддержка требований стандарта POSIX. NTFS позволяет использовать имена файлов длиной до 255 символов, при этом она использует тот же алгоритм для генерации короткого имени, что и VFAT. NTFS обладает возможностью самостоятельного восстановления в случае сбоя ОС или оборудования, так что дисковый том остается доступным, а структура каталогов не нарушается.

Каждый файл на томе NTFS представлен записью в специальном файле - главной файловой таблице MFT (Master File Table). NTFS резервирует первые 16 записей таблицы размером около 1 Мб для специальной информации. Первая запись таблицы описывает непосредственно саму главную файловую таблицу. За ней следует зеркальная запись MFT. Если первая запись MFT разрушена, NTFS считывает вторую запись, чтобы отыскать зеркальный файл MFT, первая запись которого идентична первой записи MFT. Местоположение сегментов данных MFT и зеркального файла MFT хранится в секторе начальной загрузки. Копия сектора начальной загрузки находится в логическом центре диска. Третья запись MFT содержит файл регистрации, применяемый для восстановления файлов. Семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами на томе.

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

Схема распределения пространства на томе хранится в файле битовой карты (bitmap file). Атрибут данных этого файла содержит битовую карту, каждый бит которой представляет один кластер тома и указывает, свободен ли данный кластер или занят некоторым файлом.также поддерживает файл плохих кластеров (bad cluster file) для регистрации поврежденных участков на томе и файл тома (volume file), содержащий имя тома, версию NTFS и бит, который устанавливается при повреждении тома. Наконец, имеется файл, содержащий таблицу определения атрибутов (attribute definition table), которая задает типы атрибутов, поддерживаемые на томе, и указывает можно ли их индексировать, восстанавливать операцией восстановления системы и т.д.распределяет пространство кластерами и использует для их нумерации 64 разряда, что дает возможность иметь 264 кластеров, каждый размером до 64 Кбайт. Как и в FAT размер кластера может меняться, но необязательно возрастает пропорционально размеру диска. Размеры кластеров, устанавливаемые по умолчанию при форматировании раздела, приведены в табл.3.1.

Размер разделаРазмер кластера< 512 Мб512 байт513 Мб - 1024 Мб (1 Гб) 1 Кб1 Гб - 2 Гб2 Кб2 Гб - 4 Гб4 Кб4 Гб - 8 Гб8 Кб8 Гб - 16 Гб16 Кб16 Гб - 32 Гб32 Кб> 32 Гб64 Кбпозволяет хранить файлы размером до 16 эксабайт (264 байт) и располагает встроенным средством уплотнения файлов в реальном времени. Сжатие является одним из атрибутов файла или каталога и подобно любому атрибуту может быть снято или установлено в любой момент (сжатие возможно на разделах с размером кластера не более 4 Кб). При уплотнении файла, в отличие от схем уплотнения используемых в FAT, применяется пофайловое уплотнение, таким образом, порча небольшого участка диска не приводит к потере информации в других файлах.

Для уменьшения фрагментации NTFS всегда пытается сохранить файлы в непрерывных блоках. Эта система использует структуру каталогов в виде B-дерева, аналогичную высокопроизводительной файловой системе HPFS, а не структуре со связанным списком применяемой в FAT. Благодаря этому поиск файлов в каталоге осуществляется быстрее, поскольку имена файлов хранятся сортированными в лексикографическом порядке.была разработана как восстанавливаемая файловая система, использующая модель обработки транзакций. Каждая операция ввода-вывода, изменяющая файл на томе NTFS, рассматривается системой как транзакция и может выполняться как неделимый блок. При модификации файла пользователем сервис файла регистрации фиксирует всю информацию необходимую для повторения или отката транзакции. Если транзакция завершена успешно, производится модификация файла. Если нет, NTFS производит откат транзакции.

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

Начиная с версии Windows NT 5.0 (новое название Windows 2000) Microsoft поддерживает новую файловую систему NTFS 5.0. В новой версии NTFS были введены дополнительные атрибуты файлов; наряду с правом доступа введено понятие запрета доступа, позволяющее, например, при наследовании пользователем прав группы на какой-нибудь файл, запретить ему возможность изменять его содержимое. Новая система также позволяет:

вводить ограничения (квоты) на размер дискового пространства, предоставленного пользователям;

проецировать любой каталог (как на локальном, так и на удаленном компьютере) в подкаталог на локальном диске.

Интересной возможностью новой версии Windows NT является динамическое шифрование файлов и каталогов, повышающее надежность хранения информации. В состав Windows NT 5.0 входит файловая система с шифрованием (Encrypting File System, EFS), использующая алгоритмы шифрования с общим ключом. Если для файла установлен атрибут шифрования, то при обращении пользовательской программы к файлу для записи или чтения происходит прозрачное для программы кодирование и декодирование файла.

.2 Сравнение NTFS и FAT32

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

Быстрая скорость доступа к файлам малого размера;

Размер дискового пространства на сегодняшний день практически не ограничен;

Фрагментация файлов не влияет на саму файловую систему;

Высокая надежность сохранения данных и собственно самой файловой структуры;

Высокая производительность при работе с файлами большого размера;

Недостатки:

Более высокие требования к объему оперативной памяти по сравнению с FAT 32;

Работа с каталогами средних размеров затруднена из-за их фрагментации;

Более низкая скорость работы по сравнению с FAT 3232

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

Высокая скорость работы;

Низкое требование к объему оперативной памяти;

Эффективная работа с файлами средних и малых размеров;

Более низкий износ дисков, вследствие меньшего количества передвижений головок чтения/записи.

Недостатки:

Низкая защита от сбоев системы;

Не эффективная работа с файлами больших размеров;

Ограничение по максимальному объему раздела и файла;

Снижение быстродействия при фрагментации;

Снижение быстродействия при работе с каталогами, содержащими большое количество файлов;

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

Наиболее используемые каталоги;

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

Данные о свободном пространстве диска;

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

Заключение

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

Область применения FAT32 на самом деле гораздо уже - эту файловую систему стоит применять, если Вы собираетесь получать доступ к разделам и с помощью Windows 9x и с помощью Windows 2000/XP. Но так как актуальность Windows 9x сегодня практически сошла на нет, то и использование этой файловой системы не представляет особого интереса.

Список литературы

1. http://yura. puslapiai. lt/archiv/per/fat.html

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 ГБ, не журналируемая;
  • Использование: внешние носители.

NTFS

  • Совместимость: 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?