Какая разница между FAT32, ExFAT и NTFS? Что такое NTFS, и как она работает

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

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

Основными целями NTFS являются:

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

NTFS начала использоваться вместе с Windows NT 3.1 в 1993 году. Вот основные ее технологические достижения:

  1. Работа с большими дисками. NTFS имеет размер кластера 512 байт, но его можно менять до 64К.
  2. Устойчивость. NTFS содержит две копии аналога FAT, которые называются MFT (Master File Table. Если оригинал MFT повреждён в случае аппаратной ошибки, то система при следующей загрузке использует копию MFT, и автоматически создаёт новый оригинал, уже с учётом повреждений. NTFS использует систему транзакций при записи файлов на диск.
  3. Защищенность. NTFS рассматривает файлы, как объекты. Каждый файловый объект обладает свойствами, такими как его имя, дата создания, дата последнего обновления, архивный статус. Файловый объект также содержит набор методов, которые позволяют с ним работать, такие как open, close, read и write.
  4. Компрессия данных. NTFS позволяет компрессировать отдельные каталоги и файлы. Это позволяет экономить пространство на диске, например можно сжимать большие графические файлы формата BMP, или текстовые файлы.
  5. Поддержка формата ISO Unicode. Формат Unicode использует 16bit для кодировки каждого символа. Простой пользователь может называть файлы на любом языке - система это будет поддерживать, не требуя изменить кодовую страницу, как это делал DOS и W9x.

Основные свойства файловой системы NTFS:

  1. NTFS обладает характеристиками защищенности, позволяет контролировать доступ к данным и привилегии владельца для обеспечения целостности важных данных. Папки и файлы NTFS могут иметь назначенные им права доступа.
  2. NTFS имеет возможность введения квот. Это свойство, как правило, необходимо системным администраторам, больших компаний, где работают большое количество пользователей, которые не следят за актуальностью информации, и которые хранят ненужные файлы, тем самым занимая дисковое пространство. Так как администратор не может проследить за всем этим, он может ввести квоту на использование диска определенному пользователю. Если пользователь превысит выданную ему квоту, в журнал событий будет внесена соответствующая запись. Чтобы включить квоты на диске нужно:
  • чтобы диск был в формате NTFS
  • в свойствах папки Tools-Folder Options-View убрать флажок Simple File Sharing.
  • в появившейся вкладке Quota необходимо установить флажок на Enable quota managment (Активизировать управление квотами). Это будет установлена мягкое квотирование, которое выдаст предупреждение, что пользователь превысил квоту, но право на запись у него будет. Чтобы в случае превышения квоты пользователю было отказано в доступе к этому тому, необходимо установить флажок на Deny disk space to users exceeding quota limit (Запретить запись на диск пользователям, превысившим размер дискового пространства).

В название файловой системы NTFS входят слова «новая технология». NTFS содержит ряд значительных усовершенствований и изменений, существенно отличающих ее от других файловых систем. С точки зрения пользователей, файлы по-прежнему хранятся в каталогах (часто называемых «папками»). Однако в NTFS в отличие от FAT работа на дисках большого объема происходит намного эффективнее; имеются средства для ограничения в доступе к файлам и каталогам, введены механизмы, существенно повышающие надежность файловой системы, сняты многие ограничения на максимальное количество дисковых секторов и/или кластеров.

Основные возможности файловой системы NTFS:

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

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

    поддержка POSIX. Поскольку правительство США требовало, чтобы все закупаемые им системы хотя бы в минимальной степени соответствовали стандарту POSIX, такая возможность была предусмотрена и в NTFS. К числу базовых средств файловой системы POSIX относится необязательное использование имен файлов с учетом регистра, хранение времени последнего обращения к файлу и механизм так называемых «жестких ссылок» – альтернативных имен, позволяющих ссылаться на один и тот же файл по двум и более именам;

    гибкость. Модель распределения дискового пространства в NTFS отличается чрезвычайной гибкостью. Размер кластера может изменяться от 512 байт до 64 Кбайт; он представляет собой число, кратное внутреннему кванту распределения дискового пространства. NTFS также поддерживает длинные имена файлов, набор символов Unicode и альтернативные имена формата 8.3 для совместимости с FAT.

NTFS превосходно справляется с обработкой больших массивов данных и достаточно хорошо проявляет себя и при работе с томами объемом от 300 - 400 Мбайт, и при работе с максимально возможными томами и файлами – 16 Эбайт (экзабайт 2 64 байт, или 16000 млрд. гигабайт). Количество файлов в корневом и некорневом каталогах не ограничено. Поскольку в основу структуры каталогов NTFS заложена эффективная структура данных, называемая «бинарным деревом». Время поиска файлов в NTFS (в отличие от систем на базе FAT) не связано линейной зависимостью с их количеством.

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

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

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

Структура тома с файловой системой NTFS.

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

Все дисковое пространство в NTFS делится на две неравные части. Первые 12% диска отводятся под так называемую MFT-зону – пространство, которое может занимать, увеличиваясь в размере, главный служебный метафайл MFT.

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

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

Упомянутые первые 16 файлов NTFS (метафайлы) носят служебный характер; каждый из них отвечает за какой-либо аспект работы системы. Метафайлы находятся в корневом каталоге NTFS-тома. Все они начинаются с символа имени «$», хотя получить какую-либо информацию о них стандартными средствами сложно. В таблице приведены основные известные метафайлы и их назначение.

Таким образом, можно узнать, например, сколько операционная система тратит на каталогизацию тома, посмотрев размер файла $MFT.

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

Файл в томе с NTFS идентифицируется так называемой файловой ссылкой, которая представляется как 64-разрядное число. Файловая ссылка состоит из номера файла, который соответствует позиции его файловой записи в MFT, и номера последовательности. Последний увеличивается всякий раз, когда данная позиция в MFT используется повторно, что позволяет файловой системе NTFS выполнять внутренние проверки целостности.

Каждый файл в NTFS представлен с помощью потоков, то есть у него нет как таковых «просто данных», а есть «потоки». Для правильного понимания потока достаточно указать, что один из потоков и носит привычный нам смысл – данные файла. Но большинство атрибутов файла - это тоже потоки. Таким образом, получается, что базовая сущность у файла только одна - номер в MFT, а все остальное, включая и его потоки, - опционально. Данный подход может эффективно использоваться - например, файлу можно «прилепить» еще один поток, записав в него любые данные. В Windows 2000 таким образом записана информация об авторе и содержании файла (одна из закладок в свойствах файла, просматриваемых, например, из проводника). Интересно, что эти дополнительные потоки не видны стандартными средствами работы с файлами: наблюдаемый размер файла – это лишь размер основного потока, который содержит традиционные данные. Можно, к примеру, иметь файл нулевой длины, при стирании которого освободится 1 Гбайт свободного места - просто потому, что какая-нибудь хитрая программа или технология «прилепила» к нему дополнительный поток (альтернативные данные) такого большого размера. Но на самом деле в настоящее время потоки практически не используются, так что опасаться подобных ситуаций не следует, хотя гипотетически они возможны. Просто необходимо иметь в виду, что файл в NTFS – это более глубокое понятие, чем можно себе представить, просматривая каталоги диска.

Стандартные же атрибуты для файлов и каталогов в томе NTFS имеют фиксированные имена и коды типа:

Системный атрибут

Описание атрибут

Стандартная информация о файле

Традиционные атрибуты Read Only, Hidden, Archive, System, отметки времени, включая время создания или последней модификации, число каталогов, ссылающихся на файл

Список атрибутов

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

Имя файла

Имя фаула в символах Unicode. Файл может иметь

несколько атрибутов – имен файла, подобно тому как это имеет место в POSIX-системах. Это случается, когда имеется связь POSIX с данным файлом или если у файла есть автоматически сгенерированное имя в формате 8.3

Дескриптор защиты

Структура данных защиты (ACL), предохраняющая файл от несанкционированного доступа. Атрибут «дескриптор защиты» определяет, кто владелец файла и кто имеет доступ к нему

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

Корень индекса, размещение индекса, битовая карта (только для каталогов)

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

Расширенные атрибуты NTFS

Атрибуты, используемые для реализации расширенных атрибутов HPFS для подсистемы OS/2 и OS/2-клиентов файл-серверов Windows NT

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

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

Большой вклад в эффективность файловой системы вносит организация каталога. Каталог в NTFS представляет собой специальный файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога. Главный каталог диска – корневой – ничем не отличается от обычных каталогов, кроме специальной ссылки на него из начала метафайла MFT.

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

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

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

нет доступа (no access) (None)(нет);

полный доступ (full control) (All)(All) (все) (все);

право чтения (read) (RX)(RX) (чтение)(чтение);

право добавления (add) (WX)(not specified) (запись/выполнение не указано);

право добавления и чтения (add&read) (RWX)(RX) (чтение/запись/выполнение) (чтение/выполнение);

право просмотра (list) (RX)(not specified) (чтение/выполнение)(не указано);

право изменения (change) (RWXD))(RWXD) (чтение/запись/ выполнение/ удаление) (чтение/запись/выполнение/удаление).

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

Файлы в NTFS могут обладать следующими правами:

полный доступ (full control) (All) (все);

нет доступа (no access) (None) (нет);

право изменения (change) (RWXD) (чтение/запись/выполнение/удаление);

право чтения (read) (RX) (чтение/выполнение).

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

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

Сначала осуществляется доступ к файлам, который был определен сетевыми механизмами. Это право «нет доступа» - «no access», право на «чтение» - «read», право «изменение» - «change» и «полный доступ» - «full control». После этого вступают в силу ограничения на файлы и каталоги, определенные свойствами NTFS. То есть итоговые права на папки и файлы определяются максимальными ограничениями, которые были заданы в каждом из механизмов.

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

полный доступ (full control) (All);

чтение (read) (R);

запись (write) (W);

выполнение (execute) (X);

удаление (delete) (D);

изменение разрешений (change permissions) (P);

изменение владельца (take ownership) (O).

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

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

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

Три следующих важных правила помогут определить состояние прав доступа при перемещении или копировании объектов NTFS:

    при перемещении файлов в границах раздела NTFS сохраняются исходные права доступа;

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

    при перемещении файлов из раздела NTFS в раздел FAT все права NTFS теряются.

NTFS (англ. New Technology File System — «файловая система новой технологии») — это стандартная файловая система, предназначенная для семейства ОС Microsoft Windows NT .

NTFS пришла на смену файловой систем FAT, использовавшейся ранее в Microsoft Windows и MS-DOS. NTFS поддерживает систему метаданных, а также применяет для хранения информации о файлах специализированные структуры данных, позволяющие улучшить производительность, надежность, эффективность использования дискового пространства. У NTFS есть встроенные возможности, позволяющие разграничивать доступ к данным для разных групп пользователей и отдельных пользователей (ACL — списки контроля доступа), назначать квоты (ограничения по максимальному объему объём дискового пространства, которое занимается тем или иным пользователем). В целях повышения надежности NTFS использует систему журналирования .

Файловая система NTFS была разработана на основе системы HPFS (англ. High Performance File System — высокопроизводительная файловая система), которая была создана совместными усилиями IBM и Microsoft для операционной системы OS/2. Однако, с приобретением весьма полезных новшеств, таких как журналируемость, квотирование, аудит и разграничение доступа, NTFS утратила присущую HPFS высокую производительность файловых операций. На момент своего создания, NTFS включала в себя все самые современные технологические достижения, такие как:

Возможность работы с большими дисками. Размер кластера NTFS - 512 байт, но он может меняться до 64К. Гораздо более важное качество NTFS - теоретическая способность работать с томами в 16,777,216 терабайт. Теоретическая лишь потому, что пока таких жестких дисков еще не создано.

Устойчивость. В NTFS содержатся две копии аналога FAT, называемые MFT (Master File Table). MFT отличается от FAT MSDOS тем, что скорее напоминает таблицу базы данных. В случае повреждения оригинала MFT из-за аппаратной ошибки (к примеру, появления bad-сектора), при следующей загрузке система использует копию MFT, автоматически создав новый оригинал, учтя все повреждения. Но и это не основное преимущество. Основное же заключается в том, что при записи файлов на диск NTFS использует систему транзакций. Данная система пришла из СУБД, где защите целостности данных уделяется особое внимание, что уже может многое сказать о ее эффективности. Эта система обеспечивает абсолютную сохранность данных при копировании, перемещении и удалении файлов или директорий. Если в файл вносятся изменения, то будут потеряны изменения, в момент сбоя находившиеся в кэше контроллера в или памяти, и не записанные на диск.

Защищенность. В NTFS файлы рассматриваются как объекты. И у каждого файлового объекта есть свои свойства, такие как дата создания, имя, архивный статус, дескриптор безопасности и дата последнего обновления. Также файловый объект содержит набор методов, позволяющих работать с ним, таких как write, read, close и open. Пользователи, в том числе и сетевые, вызывают эти методы для обращения к файлу, а Security Reference Monitor определяет, обладает ли пользователь правами, необходимыми для вызова одного из этих методов. Помимо этого файлы можно шифровать, но делать это следует осторожно. В случае переустановки системы вам не удастся прочитать зашифрованные файлы без ERD.

Компрессия данных. В отличие DriveSpace, в котором диски можно было сжимать только целиком, NTFS позволяет компрессировать отдельные файлы и каталоги. Это позволяет экономить место на диске, к примеру, «на лету» сжимать текстовые файлы или объемные графические файлы формата BMP, и все это будет прозрачно для пользователя.

Поддержка формата ISO Unicode. В отличие от формата ASCII , использовавшего для кодировки каждого символа 7 или 8bit, Unicode использует 16bit. Обычному пользователю это позволит называть файлы абсолютно на любом языке, и система будет поддерживать это, без требований об изменении кодовой страницы, как это делал W9x и DOS .

Существует несколько версий NTFS. В Windows NT 4.0 и Windows NT 3.51 используется v1.2, с Windows 2000 поставляется v3.0, с Windows Server 2003 и Windows XP - v3.1. Некоторые последние версии обозначаются v4.0, v5.0, то есть в полном соответствии с версиями Windows NT, вместе с которыми они поставляются.

У Windows NT файловая система NTFS 4.0, у Windows 2000/XP — NTFS 5. Когда вы подключаете 2000/XP диск c NTFS 4.0, он автоматически конвертируется операционной системой в NTFS 5.0.

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

Многие пользователи сталкиваются с непониманием основ работы файловых систем 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% объема носителя.

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

NTFS выросла из файловой системы HPFS, разрабатываемой совместно IBM и Microsoft для проекта OS/2. Она начала использоваться вместе с Windows NT 3.1 в 1993 году. Windows NT 3.1 должна была составить конкуренцию серверам на базе NetWare и Unix, поэтому NTFS вобрала в себя все тогдашние технологические достижения. Вот основные из них:

1. Работа с большими дисками. NTFS имеет размер кластера 512 байт, что в принципе оптимально, но его можно менять до 64К. Более важно то, что NTFS способна теоретически работать с томами размером в 16,777,216 терабайт. Теоретически, потому что таких жестких дисков пока просто не существует, и появятся они весьма не скоро.

2. Устойчивость. NTFS содержит две копии аналога FAT, которые называются MFT (Master File Table). В отличие от FAT MSDOS, MFT больше напоминает таблицу базы данных. Если оригинал MFT повреждён в случае аппаратной ошибки (например, появления bad-сектора), то система при следующей загрузке использует копию MFT, и автоматически создаёт новый оригинал, уже с учётом повреждений. Но это не самое главное. Главное, что NTFS использует систему транзакций при записи файлов на диск. Эта система пришла из СУБД, где защита целостности данных - жизненно важное дело. Уже это говорит о её эффективности. В упрощённом виде она работает так:

  • Драйвер ввода/вывода NTFS инициирует процесс записи, одновременно сообщая сервису Log File Service вести лог всего происходящего.
  • Данные пишутся в кэш, под управлением сервиса Cache Manager.
  • Cache Manager посылает данные Virtual Memory Manager-у (менеджеру виртуальной памяти), для записи на диск в фоновом режиме.
  • Virtual Memory Manager посылает данные драйверу диска, пропустив их через Fault Tolerant Driver (если у вас массив дисков RAID).
  • Драйвер диска шлёт их контроллеру, который уже пишет их либо в кэш, либо прямо на диск.
  • Если эта операция проходит без ошибок, запись лога удаляется.
  • Если происходит сбой, запись лога остается в таблице транзакций, и при следующем доступе к диску Log File Service обнаруживает эту запись, и просто восстанавливает всё как было до этой операции.

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

3. Защищенность. NTFS рассматривает файлы, как объекты. Каждый файловый объект обладает свойствами, такими как его имя, дата создания, дата последнего обновления, архивный статус, и дескриптор безопасности. Файловый объект также содержит набор методов, которые позволяют с ним работать, такие как open, close, read и write. Пользователи, включая сетевых, для обращения к файлу вызывают эти методы, а Security Reference Monitor определяет, имеет ли пользователь необходимые права для вызова какого-либо из этих методов. Кроме этого, файлы можно шифровать. Правда, с шифрованием стоит быть осторожнее. Если у вас рухнет система, или вы её переустановите то вы не сможете прочитать зашифрованные файлы, если не имеете ERD.

4. Компрессия данных. NTFS позволяет компрессировать отдельные каталоги и файлы, в отличие от DriveSpace, который позволял сжимать только диски целиком. Это очень удобно, для экономии пространства на диске, например можно сжимать «на лету» большие графические файлы формата BMP, или текстовые файлы, причём для пользователя всё это будет прозрачно.

5. Поддержка формата ISO Unicode. Формат Unicode использует 16bit для кодировки каждого символа, в отличие от ASCII, который использовал 8bit, или ещё хуже - 7bit. Для простого пользователя это означает то, что теперь он может называть файлы на любом языке, хоть на китайском - система это будет поддерживать, не требуя изменить кодовую страницу, как это делал DOS и W9x.

Переход с FAT32 на NTFS
Всё зависит от того, с какой целью вы используете компьютер, и сколько у вас оперативной памяти. Следует учесть, что NTFS работает несколько медленнее чем FAT, из-за дополнительно загружаемых сервисов и её системы безопасности. Если у вас мало оперативной памяти, и вы решили поставить себе XP, то вам однозначно нельзя ставить себе NTFS. Если у вас 128MB или больше, то можно уже подумать об NTFS. Следует взвесить преимущества и недостатки NTFS для простого пользователя и решить, что вам нужно. К преимуществам FAT32 можно отнести то, что она быстрее и требует меньше памяти для работы. Если система работает только с FAT32, то в память не грузятся драйвера и сервисы, необходимые NTFS. Кроме этого, при использовании FAT32 имеется возможность доступа к диску при загрузке с загрузочного флоппи W9x. Преимущества NTFS для простого пользователя можно описать одним ёмким словом: indestructible. На полном серьёзе, вышибить NTFS чрезвычайно сложно, хоть и возможно. Для опыта запускалась куча различных приложений, оптимизаторы диска, и в самые неподходящие моменты жалась кнопка reset. Повторение этого садизма добрый десяток раз никакого впечатления на систему не произвело, она продолжала работать без ошибок. Кроме этого, NTFS обладает встроенными средствами шифрования файлов, что обеспечивает определённую уверенность в сохранности данных. Конечно, при условии что система не будет переустанавливаться.

Конвеpтируем диск FAT32 в NTFS без потеpи данных.
1. Можно воспользоваться командой CONVERT том: /FS:NTFS Преобразование произойдет при следующей перезагрузке. Потери информации не при этом не будет, но нужно иметь в виду, что размер кластера после конвертации составит 512 байт, что не очень хорошо на больших разделах, кроме того, диск после конвертации будет сильно фрагментирован. Обратное преобразование (NTFS -> FAT) без потери данных средствами XP невозможно, потребуется отформатировать раздел заново.
2. Выполнить конвертацию также сможет программа Partition Magic. C NTFS 5 нормально работает, начиная с версии 6.0, но если использовать только загрузочную дискету, то подойдет и версия 5.01. Данная программа также позволяет выполнять обратное преобразование без потери данных и даже может менять размер кластера (к сожалению, только на FAT16 и FAT32). Partition Magic не работает с динамическими дисками, только с основными.