Файловые системы FAT, FAT16, FAT32. В чём разница между FAT32, NTFS и exFAT Что относится к разделам файловой системы fat

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

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

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

Файловая структура FAT: принципы и назначение

Файловая структура или File system была разработана в 70-х годах прошлого столетия компанией Microsoft и представляла собой определенный порядок организации пространства для хранения и доступа к данным на компьютерах и других цифровых устройствах.

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

Структурно вся область дискового пространства поделена на кластеры, как лист бумаги в клетку. Каждая клетка – это блок, размер которого задается при форматировании и должен быть кратным 2. Минимальный размер может быть 512 байт (у флешки), для жесткого диска он составляет 32 Кб. Один файл может занимать несколько таких кластеров. Образно можно представить дисковое пространство в виде тетради, где кластер – это буква, файл – слово, а файловая структура – оглавление тетради.

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

  1. Свободный, готовый к записи данных.
  2. Занятый, который хранит часть информации и имеющий в метке данные о следующем кластере в цепочке, при этом последний помечается особой меткой.
  3. BAD-блок – кластер с ошибками, который стане недоступен после форматирования.

Размер метки определяется видом файловой структуры: для FAT32 он равен 32 байтам.

Вся файловая система состоит из следующих частей:

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

Всего существует три типа файловой системы FAT: FAT12, FAT16 и FAT32. На смену FAT пришла NTFS, а exFAT является расширенной версией FAT32 и используется в основном для флеш-накопителей.

Достоинства и недостатки файловых структур FAT32, NTFS и exFAT

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

FAT32

Среди трех рассматриваемых файловых структур FAT32 является самой старшей. Она пришла на смену FAT16 и до недавнего времени была наиболее прогрессивной. Выход FAT32 приурочили к выпуску операционной системы Windows 95 OSR2 в 1996 году. Главные отличительные особенности: 32-разрядная адресация кластеров и ограничения в размерах: файла не более 4 Гб и тома в 128 Гб.

Достоинства

Несмотря на некоторую моральную отсталость, FAT32 обладает рядом преимуществ перед другими файловыми системами. Ее главная привлекательность - совместимость и универсальность. FAT32 работает со всеми версиями операционных систем, включая Windows (сравнение всех версий), Linux и MacOS, подходит к любыми игровым консолям и прочим гаджетам с USB портом. Сегодня она используется во всех внешних накопителях (флешках, CD-картах) по умолчанию, так как многие старые устройства: ПК, ноутбуки, приставки с USB-входом могут работать только с FAT32.

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

Недостатки

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

Размер файла не должен превышать 4 ГБ, таким образом, максимальный размер диска при размере кластера для таблицы размещения файлов в 32 КБ будет около 8 ТБ.

При форматировании диска средством ScanDisk, являющимся 16-разрядной программой, с учетом самих таблиц FAT и при максимальном размере кластера в 32 КБ размер тома ограничивается 128-ю гигабайтами.

С учетом того, что не многие компьютерные устройства оснащены винчестером объемом более 8 Тб, этот недостаток не будет ощутимым для большинства пользователей. Однако тот момент, что FAT32 работает с файлами размером до 4 Гб, является существенным минусом, так как большинство качественных видеофайлов современного формата 4К сегодня имеют размер свыше этих 4 Гб, а значит, не совместимы с данной файловой системой.

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

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

Главное применение файловой системы FAT32 сегодня – это переносные флешки и SD-карты (особенности), которые содержат не много файлов и совместимы с разнообразными цифровыми устройствами.

NTFS

Данная файловая система была разработана компанией Microsoft в 1993 году и представлена вместе версией Windows NT 3.1. В самом названии new technology file system , что означает файловая система новой технологии , заложена ее прогрессивная сущность.

После форматирования диска в системе NTFS он делится на три зоны:

  • MFT - зона или общая таблица файлов (Master File Table), где хранится информация о файлах и каталогах;
  • данные пользователя;
  • метафайлы, в которых содержится служебная информация.

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

Достоинства

В отличие от FAT32 в данной файловой структуре практически отсутствуют ограничения в объеме файлов и каталогов. Размер кластера может варьироваться от 512 байт до 64 Кб, оптимальным считается размер в 4 Кб.

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

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

Недостатки

Главным минусом системы NTFS является несовместимость со всеми операционными системами ниже Windows NT, а также ограничения в совместимости с прочими ОС. Так, Mac OS читает файлы с дисков NTFS, но не может выполнять их запись, такая же ситуация с совместимостью файлов Linux. Самые популярные игровые консоли Playstation и Xbox 360 не работают с NTFS, только Xbox One может с ней взаимодействовать.

Среди недостатков NTFS можно назвать также высокие требования к объему оперативной памяти, более низкая скорость по сравнению с FAT32 и трудности управления каталогами среднего объема.

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

exFAT

Эта файловая система является последней из рассматриваемых по времени выпуска. Она появилась в 2008 году с очередными обновлениями к Windows XP и является, по сути, расширенной версией FAT32.

Главная цель разработчиков – создать производительную, удобную и универсальную файловую структуру для переносных накопительных устройств: флешек, SD-карт и съемных жестких дисков.

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

  • Простая организация без специализированных особенностей и ограничений в размерах файлов и раздела.
  • Отличная совместимость со всеми ОС Windows, а также Mac OS и Linux. В последнем варианте необходима установка дополнительного софта.
  • Поддержка со стороны всех современных яблочных девайсов, а также игровых приставок Xbox One и Playstation 4.

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

Наиболее оптимальная файловая структура

Рассмотрев описания трех популярных файловых систем, можно сделать следующие выводы:

  • для компьютерных устройств с операционной системой выше Windows NT целесообразнее будет форматирование жесткого диска в системе NTFS;
  • для старых устройств, а также с целью совместимости с разными современными цифровыми гаджетами, оптимальным вариантом станет выбор FAT32;
  • для любых съемных носителей идеальной будет применение системы

И последнее: информацию о том, какая файловая структура реализована на ваших дисках, можно узнать во вкладке «Общие» (правая клавиша мышки «Свойства»).

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

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

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

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

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

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

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

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

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

Что такое FAT32

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

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

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

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

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

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

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

Что такое NTFS

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

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

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

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

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

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

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

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

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

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

Что такое exFAT

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

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

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

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

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

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

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

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

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

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

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

FAT32:

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

NTFS:

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

exFAT:

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

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

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

FAT (англ. File Allocation Table - «таблица размещения файлов»)- классическая архитектура файловой системы, которая из-за своей простоты всё ещё широко используется для флеш-накопителей. Используется в дискетах, и некоторых других носителях информации. Ранее использовалась и на жестких дисках.

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

Сейчас существует четыре версии FAT - FAT8, FAT12 , FAT16 и FAT32 . Они отличаются разрядностью записей в дисковой структуре, то есть количеством бит, отведённых для хранения номера кластера . FAT12 применяется в основном для дискет, FAT16 - для дисков малого объёма, FAT32- для жестких дисков. На основе FAT была разработана новая файловая система exFAT (extended FAT), используемая преимущественно для флеш-накопителей.

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

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

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

Организация файловой системы fat

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

A- дорожка

C- кластер

Рисунок 1- Структура диска

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

Каждая дорожка разбивается на участки, называемые секторами . Секторам также присваиваются номера. Первому сектору на дорожке присваивается номер 1, второму - 2 и т.д.

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

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

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

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

Частично вы правы, но весь изюм находиться в драйвере файловой системе, т.е. в программе, которая предоставляет 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 ». Красной линей я обозначил начало кластера.

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


Каждый из нас хотя бы раз в жизни форматировал флешку, SD-карту, внешний или внутренний жесткий диск и наверняка помнит, что перед началом форматирования любого из вышеперечисленных устройств операционная система Windows всегда задает вопрос - в какую файловую систему вы хотите отформатировать ваше устройство: FAT32, NTFS или exFAT?

Разумеется, большинство пользователей не знают разницы между ними, и обычно выбирают тот вариант, который установлен по умолчанию. А всё потому что Windows, задавая этот вопрос, никак не объясняет разницу между ними. Мы же в этой статье постараемся понятным языком вам её объяснить и рассказать, чем отличается файловая система FAT32 от NTFS и exFAT.

FAT32 является самой старой из рассматриваемых файловых систем и чаще всего используется на переносных флеш-накопителях - флешках или SD-картах.

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

exFAT является более современным аналогом устаревшей системы FAT32 и её поддерживает большее количество устройств, чем NTFS, но всё ещё не так много, как "классическую" FAT32.

Теперь давайте рассмотрим подробнее каждую из этих файловых систем.

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

FAT32 является самой старой файловой системой из рассматриваемых в этой статье. Она начала активно использоваться начиная с Windows 95 и пришла на замену еще более устаревшей системе - FAT16.

Большой возраст этой файловой системы имеет свои преимущества и недостатки.

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

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

И если со вторым минусом ещё вполне можно смириться (пока что мало кто использует накопители размером более 8Тб), то ограничение на размер файла является достаточно серьезным минусом - большинство видео в высоком качестве сейчас уже не укладываются в размер 4Гб, особенно если они в современном формате 4K.

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

Совместимость FAT32

Устройства с файловой системой FAT32 являются наиболее универсальными и совместимы со всеми версиями операционных систем Windows, Mac OS, Linux, любыми игровыми консолями и в общем практически всем, что имеет USB порт.

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

Основным минусом этой файловой системы являются ограничения на размер файла и тома - максимальный размер файла не может превышать 4 GB, а максимальный размер раздела ограничен 8 TB.

Применение FAT32

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

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

NTFS - это более современная и технологичная файловая система, о чем говорит даже расшифровка аббревиатуры её названия -"new technology file system". Больше всего её любит операционная система Windows, что в общем и не удивительно - ведь и то, и другое, разработано компанией Microsoft.

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

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

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

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

К примеру, Mac OS может только считывать данные с дисков с файловой системой NTFS, но не может записывать на них. Некоторые редкие дистрибутивы линукса могут иметь возможность записи на диски с NTFS, но большинство всё же ограничены лишь чтением информации. Ни одна из версии Playstation не может работать с NTFS, так же как и Xbox 360 от Microsoft, и лишь новая Xbox One поддерживает эту файловую систему.

Совместимость NTFS

Эта файловая система отлично работает со всеми последними версиями операционной системы Windows начиная с XP, имеет ограничения на запись в Mac OS и Linux, и не работает с большинством других устройств, за исключением разве что Xbox One.

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

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

Применение NTFS

Использование этой файловой системы разумно только на жестких дисках и SSD, на которых установлена операционная система Windows, так как только лишь с ней этот формат раскрывает все свои преимущества.

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

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

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

Также exFAT обладает лучшей совместимостью с различными операционными системами, чем NTFS, и устройства с ней отлично читаются и перезаписываются как на Windows и Mac OS, так и на Linux (при условии установки некоторого программного обеспечения).

Так как exFAT поддерживается операционной системой Mac OS по умолчанию, то вероятно она будет поддерживаться и большинством других современных девайсов, с которым работают устройства от Apple, например, цифровыми камерами.

Современные версии игровых консолей, такие как Xbox One и Playstation 4, также поддерживают устройства с файловой системой exFAT, в отличие от их предыдущих версий (Xbox 360 и Playstation 3).

Совместимость exFAT

exFAT отлично работает со всеми современными версиями Windows (начиная с XP) и Mac OS. Для работы с Linux потребуется установка дополнительного программного обеспечения. Эту файловую систему поддерживает намного больше различных устройств, чем NTFS, однако некоторые из них (в основном старые версии) всё еще могут работать только с FAT32.

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

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

Применение exFAT

Эта файловая система отлично подходит для использования на различных съемных носителях, размер файлов на которых может превышать 4 GB (внешние жесткие диски, флешки большого объема). Если все устройства, с которыми вы работаете, являются современными, вы вполне можете отказаться от FAT32 на съемных накопителях в пользу exFAT.

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

Проблемы