Структура файловой системы fat. Файловые системы FAT, FAT32 и NTFS. Структура и размещение каталогов

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

Для того, чтобы на физическом носителе можно было сохранить информацию, его нужно подготовить для использования в компьютерной операционной системе. Операционная система для сохранения информации выделяет свободную область диска. Для этого необходимо поделить диск на малые контейнеры – сектора. Форматирование диска на низком уровне выделяет для каждого сектора определенный размер. Операционная система группирует эти сектора в кластеры. Форматирование на высшем уровне задает всем кластерам одинаковый размер, обычно в интервале от 2 до 16 секторов. В дальнейшем на каждый файл выделяется по одному или несколько кластеров. Размер кластера зависит от операционной системы, ёмкости диска, а также требуемой скорости работы.

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

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

Файловая система FAT появилась вместе с операционной системой Microsoft DOS, после чего была несколько раз усовершенствована. У нее есть версии FAT12, FAT16 и FAT32. Само название FAT происходит от использования файловой системой своеобразной базы данных в виде «таблицы размещения файлов» (File Allocation Table), которая содержит запись для каждого кластера на диске. Номера версий ссылаются на количество бит, используемых в номерах элементов в таблице. Таким образом файловая система имеет ограничение на поддерживаемый размер диска. В 1987 году она не поддерживала диске размером свыше 32 Мб. С появлением Windows 95 вышла новая версия файловой системы FAT32 с теоретической поддержкой дисков емкостью до 2 ТБ. Постоянные проблемы с поддержкой дисков больших размеров появляются из-за фиксированного количества элементов, ограниченного количеством бит, используемых в определении положения кластера. Например, версия FAT16 не поддерживает более 2 16 или 65536 кластеров. Количество секторов в кластере тоже ограничено.

Еще одна проблема с большими дисками заключалась в невозможности использования огромного пространства, выделенного для мелких файлов. Из-за того, что количество кластеров ограничено, увеличивался их размер, чтобы можно было охватить всю емкость диска. Это приводит к неэффективному использованию пространства при хранении большинства файлов, размер которых не кратен размеру кластера. Например, FAT32 выделяет кластеры размером 16 Кб для разделов диска в интервале от 16 до 32 ГБ. Для хранения файла размером 20 Кб потребуется два кластера размером 16 Кб, которые займут на диске 32 Кб. Файлы размером 1 Кб занимают 16 Кб на диске. Таким образом в среднем 30-40% размера емкости диска пропадает для хранения мелких файлов. Разбиение диска на мелкие разделы позволяет уменьшить размер кластера, но для дисков емкостью более 200 Гб на практике не применяется.

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

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

В начале 90-х Microsoft начала разработку совершенно нового ПО, предназначенного для окружения с большим потреблением ресурсов, чем обычные домашние пользователи. Для потребностей бизнеса и индустрии ресурсов, предоставляемых операционными системами Windows основанных на DOS, стало недостаточно. Корпорация Microsoft совместно с IBM работали над операционной системой OS/2 с файловой системой HPFS (High Performance File System – файловая система высокой эффективности). Корпоративная разработка не принесла успеха и в скором времени каждая компания вновь пошла своим путем. Microsoft разработала различные версии операционной системы Windows NT, на основе которых построены Windows 2000 и Windows XP. В каждой из них используется собственная версия файловой системы NTFS, которая продолжает развитие.

NTFS (New Technology File System – «файловая система новой технологии») является стандартной файловой системой для операционных систем на основе Windows NT. Она была разработана для замены FAT. NTFS наиболее гибкая по сравнению с FAT. В ее системных областях хранятся в основном файлы, а не фиксированные структуры как в FAT, что позволяет их изменять, расширять или перемещать в процессе использования. Простым примером является Master File Table (MFT) – «главная таблица файлов». MFT - это своеобразная база данных с различной информацией о файлах на диске. Файлы малого размера (1 Кб и менее) могут хранится непосредственно в MFT. Для больших файлов NTFS выделяет кластеры, но в отличие от FAT размер кластера обычно не превышает 4 Кб, а встроенный метод сжатия избавляет от проблем с неиспользованным местом, выделенным под файлы. А ещё в NTFS можно использовать .

Файловая система NTFS разработана для многопользовательского окружения и имеет встроенные механизмы защиты и разграничения прав доступа. Например, операционные системы Windows 2000 и Windows XP (кроме «Домашней редакции») позволяют устанавливать разрешения доступа к отдельным файлам и шифровать их. Однако высокий уровень безопасности усложняет работу обычных пользователей с компьютером. Необходимо быть предельно осторожным при установке паролей и разрешений на файлы, чтобы не потерять важные данные.

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

Файловая система состоит из системы управления файлами и совокупности файлов на определенном виде носителя (CD, DVD, FDD, HDD, Flash ит.д.). Система управления файлами обеспечивает пользователям и приложениям возможность доступа к файлам, их сохранения и поддержку целостности их содержимого. Наиболее распространенным долговременным носителем информации в современных вычислительных системах является жесткий диск – «Винчестер». Этот термин применяется к любому герметичному диску с аэродинамической конструкцией считывающих магнитных головок.

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

FAT 32. Простота и надежность.

Существуют три файловые системы FAT: FAT12 (для гибких дисков FDD), FAT16, FAT32. Они различаются количестом бит (12, 16, 32) для указания номера кластера в системе управления файлами. В файловых системах FAT логическое дисковое пространство любого логического диска делится на системную область и область данных. BR – загрузочная запись Boot Record; RS – зарезервированные сектора; FAT1, FAT2 – таблицы 1 и 2 размещения файлов; RDir (Root directory, ROOT) – корневой каталог. Область данных разбивается на кластеры, которые представляют собой 1 или несколько смежных секторов. В таблице FAT кластеры, принадлежащие одному файлу, связываются по цепочке. Картой области данных является, по сути, Таблица размещения файлов (File Allocation Table - FAT) Каждый элемент таблицы FAT (12, 16 или 32 бит) соответствует одному кластеру диска и характеризует его состояние: свободен, занят или является сбойным кластером (bad clаster). Для указания номера кластера в системе управления файлами FAT16 используется 16-ти битовое слово, и можно адресовать 65536 кластеров.

Кластер – это минимально адресуемая единица дисковой памяти, выделяемая для файла. Файл или каталог занимает целое число кластеров. Разбиение области данных на кластеры вместо использования секторов позволяет: уменьшить размер таблицы FAT, уменьшить фрагментацию файлов, сокращается длина цепочек файла, ускоряется доступ к файлу. Последний кластер может быть задействован не полностью, что приведет к заметной потере дискового пространства при большом размере кластера. На дискете кластер занимает 1 или 2 сектора. На жестком диске – 4, 8, 16, 32, 64 – сектора в одном кластере. Каждый элемент имеет следующую структуру: имя файла, атрибут файла, резервное поле, время создания, дата создания, дата последнего доступа, резерв, дата последней модификации, время последней модификации, номер начального кластера Fat, размер файла.

В данном примере файл с именем MyFile.txt размещается, начиная с 8-го кластера и занимает 12 кластеров. Цепочка кластеров для данного случая: 8,9,А,В,15,16,17,19,1А,1В,1C,1D. Кластер с номером 18 помечен кодом F7 как плохой. Он не может быть использован для размещения данных. Этот код выставляется утилитами форматирования и проверки дисков. Кластер 1D помечен кодом FF как конечный, принадлежащий данному файлу. Свободные кластеры помечены кодом 0. При выделении нового кластера для записи в файл берется 1-ый свободный кластер. Поскольку файлы на диске изменяются, удаляются, перемещаются, увеличиваются и уменьшаются, то данное правило размещения приводит к фрагментации, т.е. данные одного файла располагаются не в смежных кластерах, а порой очень удаленных друг от друга. Образовывается сложная цепочка. Это приводит к замедлению работы с файлами. Так как Fat используется при доступе к диску очень интенсивно, она загружается в оперативную память. Система Fat32 намного эффективнее расходует дисковое пространство, так как использует кластеры меньшего размера по сравнению с предыдущими версиями Fat. По сравнению с Fat16 это дает экономию 10-16%.

Элемент каталога в поле атрибут может хранить следующие значения:

1) архивный (устанавливается при изменении файла и снимается программой выполняющей резервное копирование файлов на другой носитель);

2) директория;

3) метка тома;

4) системный;

5) скрытый;

6) только для чтения.

Длинные имена в FAT32 обеспечиваются использованием нескольких элементов записи каталога: для одного файла (один элемент – одна запись для имени 8.3, и 24 записи для самого длинного имени, которое может содержать до 256 символов. Поэтому не рекомендуется использовать длинные имена.

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

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

NTFS: удобство и высокая скорость.

Одним из основных понятий, используемых при работе с NTFS, является понятие тома. Возможно создание отказоустойчивого тома, занимающего несколько разделов, то есть использование RAID-технологии. NTFS делит все полезное дисковое пространство тома на кластеры - блоки данных, адресуемые как единицы данных. NTFS поддерживает размеры кластеров от 512 байт до 64 Кбайт; 2 или 4 Кбайт диска отводятся под MFT-зону - пространство, которое может занимать, увеличиваясь в размере, главный служебный метафайл MFT. Запись данных в эту область невозможна. MFT-зона пуста, чтобы служебный файл (MFT) по возможности не фрагментировался при своем росте.

MFT (общая таблица файлов) - централизованный каталог всех остальных файлов диска, в том числе и себя самого. MFT поделен на записи фиксированного размера в 1 Кбайт, каждая запись соответствует какому-либо файлу. Первые 16 файлов носят служебный характер и недоступны операционной системе - они называются метафайлами, причем самый первый метафайл - сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая строго фиксированное положение. Копия этих же 16 записей хранится в середине тома для надежности, поскольку они очень важны. Остальные части MFT-файла могут располагаться в произвольных местах диска - восстановить его положение можно с помощью его самого, «зацепившись» за самую основу - за первый элемент MFT. Каждый файл в NTFS представлен с помощью потоков, у него нет данных, а есть «потоки». Один из потоков - данные файла. Для одного файла можно определить несколько потоков данных.

Основные особенности NTFS:

Работа на дисках большого объема происходит эффективно (намного эффективнее, чем в FAT);

Имеются средства для ограничения доступа к файлам и каталогам;

Разделы NTFS обеспечивают локальную безопасность как файлов, так и каталогов;

Введен механизм транзакций, при котором осуществляется журналирование файловых операций;

Существенное увеличение надежности;

Сняты многие ограничения на максимальное количество дисковых секторов и/или кластеров;

Имя файла в NTFS, в отличие от файловых систем FAT и HPFS, может содержать любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode - 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла в NTFS - 255 символов.

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

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

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

Основной недостаток файловой системы NTFS - служебные данные занимают много места (например, каждый элемент каталога занимает 2 Кбайт) - для малых разделов служебные данные могут занимать до 25% объема носителя.

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

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

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

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

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


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

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

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

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

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

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

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

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

Выводы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Стандарт 8.3

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

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

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

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

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

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

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

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

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

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

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

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

Недостатки FAT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Наборы Volume Set

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

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

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

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

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

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

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

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

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

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

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

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

Переходы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Конечно, если компьютер применяется исключительно для игр, из соображений совместимости лучше всего установить Microsoft Windows 98/ME и отформатировать диски в FAT. Однако если Вы работаете не только в офисе, но и дома, лучше использовать современные, профессиональные и надежные решения. Это позволит, в частности, организовать защиту от вторжения на Ваш компьютер через Интернет, ограничить доступ к каталогам и файлам с критичными данными, а также повысит шансы на успешное восстановление информации при возникновении различного рода сбоев.

Понравилось? Лайкни нас на Facebook