NTFS (New Technology File System)

Файловые системы

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

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

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

Исходная FAT

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

 

Внимание

Невзирая на свою простоту и даже примитивность, FAT распространена достаточно широко и встречается в различных версиях DOS, Windows З.х, Windows NT, Macintosh и многих разновидностях Unix. Ряд других, более экзотических операционных систем также поддерживают файловую структуру FAT. По этой причине Microsoft рекомендует использовать тома FAT в Windows NT Server или Workstation в тех случаях, когда различные типы клиентов должны обмениваться данными через единую файловую систему (о томах более подробно рассказано в главе 4).

Одной из важнейших характеристик исходной FAT было использование имен файлов формата 8.3.

Поскольку размеры файлов и разделов, находящихся под управлением FAT, росли с каждой новой версией DOS, в таблицах размещения FAT используется два типа указателей. Для разделов объемом менее 50 Мбайт используются 12-разрядные указатели, а для больших разделов — 16-разрядные. Вот почему тома FAT иногда обозначаются FAT12 (для томов с 12-разрядными элементами) или FAT16 (для томов с 16-разрядными элементами). Как видно из рис. 3.1, метка FAT12 или FAT16 отображается в утилитах для работы с разделами диска (например, в утилите FDISK, входящей в большинство версий DOS). В DOS версий от 3.0 до 6.22 использовались 16-разрядные драйверы FAT (хотя это никак не отражается на размере элементов FAT — пометка FAT12 или FAT16 определяется исключительно размерами тома FAT).

В наши дни к стандартной FAT добавились еще две разновидности, используемые в самых современных операционных системах Microsoft (конкретно — в Windows 95 и Windows NT): VFAT (виртуальная FAT) и FAT32.

Таблица 3.1. Основные характеристики файловой системы FAT

Характеристика Значение/максимум
Максимальный размер тома 2 Гбайт
Максимальный размер файла 2 Гбайт
Максимальное количество файлов в корневом каталоге
Максимальное количество файлов в некорневом каталоге
Безопасность на уровне файлов Нет
Поддержка длинных имен файлов Нет
Самовосстановление Нет
Ведение журналов транзакций Нет
Сжатие на уровне файлов Нет
Поддержка файловых ветвлений (Macintosh) Нет
Соответствие стандарту POSIX Нет

VFAT (виртуальная FAT)

Файловая система VFAT впервые появилась в Windows for Workgroups 3.11 и была предназначена для выполнения файлового ввода/ вывода в защищенном режиме. С выходом Windows 95 в VFAT добавилась поддержка длинных имен файлов (LFN). Тем не менее VFAT сохраняет совместимость с исходным вариантом FAT; это означает, что наряду с длинными именами в ней поддерживаются имена формата 8.3, а также существует специальный механизм для преобразования имен 8.3 в длинные имена, и наоборот.

Внимание

Именно файловая система VFAT поддерживается исходными версиями Windows 95, Windows NT 3.51 и Windows NT 4. При работе с VFAT крайне важно использовать файловые утилиты, поддерживающие VFAT вообще и длинные имена в частности. Дело в том, что более ранние файловые утилиты DOS запросто модифицируют то, что кажется им исходной структурой FAT. Это может привести к потере или порче длинных имен из таблицы FAT, поддерживаемой VFAT (или FAT32). Следовательно, для томов VFAT необходимо пользоваться файловыми утилитами, которые понимают и сохраняют файловую структуру VFAT.

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

Таблица 3.2. Основные характеристики файловой системы VFAT

Характеристика Значение/максимум
Максимальный размер тома 4 Гбайт
Максимальный размер файла 4 Гбайт
Максимальное количество файлов в корневом каталоге
Максимальное количество файлов в некорневом каталоге Неограничено
Безопасность на уровне файлов Нет
Поддержка длинных имен файлов Да
Самовосстановление Нет
Ведение журналов транзакций Нет
Сжатие на уровне файлов Нет
Поддержка файловых ветвлений (Macintosh) Нет
Соответствие стандарту POSIX Нет

 

Внимание

Как видно из табл. 3.2, VFAT отличается от исходной FAT в первую очередь увеличением максимального размера тома и отдельных файлов, увеличением количества файлов в некорневых каталогах и поддержкой длинных имен наряду с именами формата 8.3. VFAT также поддерживает 16-и 32-разрядные обращения, тогда как исходная FAT ограничивалась 16-разрядными.

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

32-разрядная файловая система FAT32 пришла на смену VFAT в Microsoft Windows 95 OEM Service Release 2. В публикациях Microsoft эта версия Windows 95 иногда называется Windows 95 OSR2. FAT32 является полностью самостоятельной 32-разрядной файловой системой (как NTFS) и содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациями FAT.

Самое принципиальное отличие заключается в том, что FAT32 намного эффективнее расходует дисковое пространство. FAT32 использует дисковые кластеры меньшего размера по сравнению с предыдущими версиями, которые ограничивались 65 535 кластерами на том (соответственно с увеличением размера диска приходилось увеличивать и размер кластеров). Следовательно, даже для дисков размером до 8 Гбайт FAT32 может использовать 4-килобайтные кластеры. В результате по сравнению с дисками FAT16 экономится в среднем 10-15% дискового пространства.

FAT32 также может перемещать корневой каталог и использовать резервную копию FAT вместо стандартной. Расширенная загрузочная запись FAT32 позволяет создавать копии критических структур данных; это повышает устойчивость дисков FAT32 к нарушениям структуры FAT по сравнению с предыдущими версиями. Корневой каталог в FAT32 представлен в виде обычной цепочки кластеров. Следовательно, корневой каталог может находиться в произвольном месте диска, что снимает действовавшее ранее ограничение на размер корневого каталога (512 элементов). Возможно, в будущих реа-лизациях FAT32 появится возможность динамического изменения размеров разделов FAT32, но в Windows 95 OSR2 она не поддерживается.

Внимание

В настоящее время Windows 95 OSR2 является единственной операционной системой Microsoft с поддержкой FAT32. Даже Windows NT 4 с новейшим Service Pack не поддерживает эту файловую систему. Если организовать многовариантную загрузку на компьютере с установленными Windows 95 OSR2 и Windows NT, то NT не сможет работать с файлами, находящимися в разделе FAT32. Тем не менее при этом Windows 95 OSR2 сможет работать с разделами VFAT, созданными Windows NT. То, что говорилось ранее об использовании файловых утилит VFAT с томами VFAT, относится и к FAT32. Поскольку прежние утилиты FAT (для FAT32 в эту категорию входят обе файловые системы, FAT и VFAT) могут повредить или уничтожить важную служебную информацию, для томов FAT32 нельзя пользоваться никакими файловыми утилитами, кроме утилит FAT32.

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

Таблица 3.3. Основные характеристики файловой системы FAT32

Характеристика Значение/максимум
Максимальный размер тома 4 Тбайт
Максимальный размер файла 4Тбайт
Максимальное количество файлов в корневом каталоге Неограничено
Максимальное количество файлов в некорневом каталоге Неограничено
Безопасность на уровне файлов Нет
Поддержка длинных имен файлов Да
Самовосстановление Да*
Ведение журналов транзакций Нет
Сжатие на уровне файлов Нет
Поддержка файловых ветвлений (Macintosh) Нет
Соответствие стандарту POSIX Нет

Внимание

Появление длинных имен фактически привело к дальнейшему уменьшению количества файлов, находящихся в корневом каталоге. Поскольку длинное имя может содержать до 256 символов, всего один файл с полным длинным именем занимает до 25 элементов FAT (1 для имени 8.3 и еще 24 для самого длинного имени). Таким образом, количество элементов корневого каталога VFAT уменьшается до 21. Microsoft советует избегать длинных имен в корневых каталогах FAT при отсутствии FAT32.

Помните и о том, что длина полной файловой спецификации, включающей путь и имя файла (длинное или 8.3), тоже ограничивается 260 символами. FAT32 успешно справляется с проблемой длинных имен в корневом каталоге, но проблема с ограничением длины полной файловой спецификации остается. По этой причине Microsoft рекомендует ограничивать длинные имена 75-80 символами, чтобы оставить достаточно места для пути (180-185 символов).

Наконец, FAT32 повышает отказоустойчивость FAT. Во-первых, в загрузочных записях FAT32 хранятся важнейшие данные файловой системы (например, сведения о таблице разделов). Во-вторых, в FAT32 можно отключить зеркальное копирование FAT, чтобы для поиска файлов и работы с ними использовалась вторая копия FAT. Вот почему в строке «Самовосстановление» табл. 3.3 стоит значение «Да» (а звездочка показывает, что средства самовосстановления FAT при всей полезности уступают своим аналогам в NTFS).

NTFS (New Technology File System)

В название файловой системы NTFS не зря входят слова «New Technology», то есть «новая технология» — NTFS содержит ряд значительных усовершенствований и изменений, специфических для Windows NT. С точки зрения пользователей, файлы по-прежнему хранятся в каталогах (часто называемых «папками» в среде Windows). Однако в NTFS, в отличие от FAT, не существует ни особых свойств корневых каталогов, ни ограничений, связанных с аппаратурой (например, возможности обращения к максимальному количеству дисковых секторов или кластеров). На томах NTFS не существует специальных областей наподобие таблицы размещения файлов, по которой FAT получила свое имя.

При проектировании NTFS особое внимание было уделено следующим характеристикам:

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

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

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

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

Преимущества NTFS

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

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

Таблица 3.4. Основные характеристики файловой системы NTFS

Характеристика Значение/максимум
Максимальный размер тома 16 Эбайт
Максимальный размер файла 16 Эбайт
Максимальное количество файлов в корневом каталоге Неограничено
Максимальное количество файлов в некорневом каталоге Неограничено
Безопасность на уровне файлов Да
Поддержка длинных имен файлов Да
Самовосстановление Да
Ведение журналов транзакций Да
Сжатие на уровне файлов Да
Поддержка файловых ветвлений (Macintosh) Да
Соответствие стандарту POSIX Да

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

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

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

Наконец, NTFS обладает намного более совершенной файловой структурой, что упрощает поддержку других файловых систем на ее основе. Microsoft использует эту возможность для организации поддержки файловой системы Macintosh HFS (Hierarchical Filing System) в NTFS при установке Windows NT Services for Macintosh. Независимые фирмы также разработали свои собственные реализации сетевой файловой системы NFS (Network Filing System) фирмы Sun, которые работают поверх NTFS (NFS - популярная распределенная файловая система для сетей Unix).

Отличия FAT и NTFS

Если говорить о накладных расходах на хранение служебной информации, FAT отличается от NTFS большей компактностью и меньшей сложностью. В большинстве томов FAT на хранение таблицы размещения, содержащей информацию обо всех файлах тома, расходуется менее 1 Мбайт. Столь низкие накладные расходы позволяют форматировать в FAT жесткие диски малого объема и флоппи-диски. С другой стороны, в NTFS служебные данные занимают больше места, чем в FAT, — отчасти из-за того, что каждый элемент каталога занимает 2 Кбайт (впрочем, это имеет и свои преимущества, так как содержимое файлов объемом 1500 байт и менее может полностью храниться в элементе каталога).

Система NTFS не может использоваться для форматирования флоппи-дисков. Не стоит пользоваться ею для форматирования разделов объемом менее 50 Мбайт. Относительно высокие накладные расходы приводят к тому, что для малых разделов служебные данные могут занимать до 25% объема носителя.

Внимание

Microsoft рекомендует всегда использовать FAT для разделов объемом 50 Мбайт и менее, а NTFS — для разделов объемом 400 Мбайт и более. В промежутке от 0 до 400 Мбайт в расчет принимаются другие факторы, главный из которых — безопасность на уровне файлов. Если она важна, следует выбирать NTFS, хотя в принципе подойдет и FAT (однако с увеличением размера она будет работать медленнее).

Следующий критерий сравнения — размер файлов. Разделы FAT имеют объем до 2 Гбайт, VFAT — до 4 Гбайт и FAT32 — до 4 Тбайт. Тем не менее из-за особенностей своего внутреннего строения разделы FAT лучше всего работают для разделов объемом 200 Мбайт и менее. Разделы NTFS могут достигать 16 Эбайт, однако в настоящее время из-за аппаратных и других системных причин размер файлов ограничивается 2 Тбайт.

Разделы FAT могут использоваться Windows 95, Windows NT, MS-DOS и WfW, не говоря уже о других операционных системах с поддержкой FAT (например, такие дополнения существуют для Unix и Macintosh). За редкими исключениями, с разделами NTFS можно работать напрямую только из Windows NT. Данные NTFS могут читаться по сети многими операционными системами (в том числе DOS, Windows З.х и 95 и т. д.) — как из-за сохраненной совместимости с FAT, так и из-за ее средств поддержки других файловых систем. Недавно выпущенная утилита NTFSDOS позволяет читать данные NTFS на компьютере, загруженном в DOS.

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