Доступ к файлам использованием fat. Файловыe системы изнутри: FAT vs NTFS

Каждый, кто когда-либо инсталлировал операционную систему, сталкивался с тем, что на этапе форматирования установочного раздела жесткого диска программа предлагает выбрать тип файловой системы 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;
  • для любых съемных носителей идеальной будет применение системы

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

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

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

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

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

NTFS – это современная файловая система , которую Windows предпочитает использовать по умолчанию. При установке Windows форматирует системный диск в формат файловой системы NTFS. NTFS имеет настолько огромные ограничения по размеру файла и размеру раздела, что вряд ли Вы когда-либо с ними столкнетесь. NTFS впервые появилась в потребительской версии Windows XP, хотя первоначально дебютировала в Windows NT.

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

Системный раздел Windows должен быть в формате NTFS . Если у вас есть дополнительный диск вместе с Windows, и вы планируете установку программ на нём, лучше также отформатируйте его в NTFS. И, если у вас есть какие-либо диски, для которых совместимость не является проблемой – потому что Вы знаете, что будете использовать их на системах Windows – смело выбирайте NTFS.

Несмотря на свои преимущества, NTFS не хватает совместимости . Она будет работать со всеми последними версиями Windows – вплоть до Windows XP – но он имеет ограниченную совместимость с другими операционными системами. По умолчанию ОС Mac X может только читать NTFS диски, но не записывать данные. Некоторые дистрибутивы Linux могут включать поддержку NTFS-записи, но в других может быть доступно только чтение. Ни одна из консолей Sony PlayStation не поддерживает NTFS. Даже собственная консоль Xbox 360 от Microsoft не может читать NTFS диски, кроме Xbox One. Другие устройства с еще меньшей вероятностью поддерживают NTFS.

Совместимость : работает со всеми версиями Windows, но в Mac доступна только для чтения, и может быть доступна только для чтения в некоторых дистрибутивах Linux. Другие устройства, за исключением Microsoft Xbox One, вероятно, не будут поддерживать NTFS.

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

Идеальное использование : используйте её для диска вашей системы Windows и других внутренних дисков, которые будут использоваться только с Windows.

Таблица распределения файлов 32 (FAT32)

FAT32 является самой старой из трех файловых систем, доступных в Windows. Она была представлена в Windows 95, и заменила собой старую файловую систему FAT16, используемую в MS-DOS и Windows 3.

Возраст файловой системы FAT32 имеет свои преимущества и недостатки. Большие преимущества заключаются в том, что FAT32 является стандартом де-факто. Флэш-накопители из упаковки часто имеют файловую систему FAT32 для максимальной совместимости не только с современными компьютерами, но и другими устройствами, такими как игровые приставки и всё что угодно с USB-портом.

Однако, её ограничения также связаны с возрастом. Отдельные файлы на диске FAT32 не могут иметь размер больше 4 ГБ – это максимум. Раздел FAT32 также должен быть меньше 8 ТБ. Это границы к которым вплотную подобрались современные пользовательские устройства.

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

Совместимость : работает со всеми версиями Windows, Mac и Linux, игровыми приставками, и практически с любым устройством, имеющим порт USB.

Ограничения : максимальный размер файла 4 ГБ, максимальный размер раздела – 8 ТБ.

Идеальное использование : используйте на съемных дисках, где вам нужна максимальная совместимость с широким спектром устройств, если Вы не используете файлы 4 ГБ или большего размера.

Таблица расширенного размещения файлов (exFAT)

Файловая система exFAT была введена в 2006 году и была добавлена к более старым версиям Windows с обновлениями для Windows XP и Windows Vista. exFAT – это оптимизированная для флэш-накопителей файловая система – разработанная, чтобы сохранить совместимость FAT32, но без лишних функций NTFS и без ограничений FAT32.

Как и NTFS, exFAT имеет очень большие ограничения на размер файлов и разделов, что позволяет хранить файлы гораздо больше, чем 4 ГБ, разрешенных в FAT32.

Хотя exFAT не совсем соответствует совместимости FAT32, он более широко совместима, чем NTFS. Даже OS Mac предлагает полную поддержку exFAT для чтения и записи. exFAT диски могут быть доступны на Linux после установки соответствующего программного обеспечения. С другими устройствами немного сложнее: PlayStation 4 поддерживает exFAT; PlayStation 3 не поддерживает; Xbox One поддерживает, а Xbox 360 – нет.

Совместимость : работает со всеми версиями Windows и на современных версиях Mac X, но требует дополнительного программного обеспечения на Linux. Больше устройств поддерживают exFAT, но некоторые – особенно старые – работают только с FAT32.

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

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

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

Каждый раз, когда пользуюсь либой 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выводы

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



Статьи по теме