NTFS (New Technology File System)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:40, 10 ноября 2016.
NTFS
Полное название New Technology File System
Содержимое каталога B+ дерево
Распределение файлов Bitmap[1]
Limits
Макс. размер тома

264 clusters − 1 cluster (format);

256 TiB − 64 KiB (implementation)/>
Макс. размер файла 1 EiB (8 TiB on 32 bit systems)
Макс. количество файлов 4,294,967,295 (232-1)
Макс. длина имени файла

255 UTF-16 code units;

16 TiB – 64 KiB (Windows 7, Windows Server 2008 R2 or earlier implementation)[3] 256 TiB – 64 KiB (Windows 8, Windows Server 2012 implementation)
Разрешенные символы
в именах файлов
In POSIX namespace, any UTF-16 code unit (case-sensitive) except U+0000 (NUL) and / (slash). In Win32 namespace, any UTF-16 code unit (case-insensitive) except U+0000 (NUL) / (slash) \ (backslash) : (colon) * (asterisk) ? (Question mark) " (quote) < (less than) > (greater than) and
Features
Даты зарегистрирован Creation, modification, POSIX change, access
Диапазон дат 1 January 1601 – 28 May 60056 (File times are 64-bit numbers counting 100-nanosecond intervals (ten million per second) since 1601, which is 58,000+ years)
Дата резолюции 100 ns
Вилка Yes (see § Alternate data streams below)
Разрешения файловой системы Per-file, LZ77 (Windows NT 3.51 onward)
Прозрачное сжатие

Per-file, DESX (Windows 2000 onward), Triple DES (Windows XP onward),

AES (Windows XP Service Pack 1, Windows Server 2003 onward)
Транспорантное шифрование No
Другие
Операционная система Linux

NTFS (англ. New Technology File System — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT фирмы Microsoft. NTFS поддерживает хранение метаданных. С целью улучшения производительности, надёжности и эффективности использования дискового пространства для хранения информации о файлах в NTFS используются специализированные структуры данных. Информация о файлах хранится в главной файловой таблице — MFT (Master File Table). NTFS поддерживает разграничение доступа к данным для различных пользователей и групп пользователей (списки контроля доступа — англ. access control lists, ACL), а также позволяет назначать дисковые квоты (ограничения на максимальный объём дискового пространства, занимаемый файлами тех или иных пользователей). Для повышения надёжности файловой системы в NTFS используется система журналирования USN. Для NTFS размер кластера по умолчанию составляет от 512 байт до 64 КиБ в зависимости от размера тома и версии ОС.[2]

История

Файловая система NTFS заменила файловую систему FAT, использовавшуюся в ОС MS-DOS и ОС Windows.

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

Возможности NTFS

Файловая система NTFS разрабатывалась Microsoft в начале 1990 х гг. как основная файловая система для серверных версий операционных систем Windows. NTFS была представлена в 1993 году в операционной системе Windows NT 3.1. В настоящее время NTFS рассматривается в качестве предпочтительной файловой системы как для серверных, так и для клиентских версий Windows. В NTFS используются 64 разрядные идентификаторы кластеров, поэтому теоретически том NTFS может содержать 264 кластеров (16 ЭБ3 ). Однако текущие реализации в Windows поддерживают только 32 разрядную адресацию кластеров, что при размере кластера максимум 64 КБ (216 байт) позволяет NTFS тому достигать размера до 256 ТБ:

232 * 216 байт = 248 байт = 28 * 240 байт = 256 ТБ.

Для томов, больших 4 ГБ, при форматировании Windows предлагает размер кластера по умолчанию 4 КБ.

Перечислим некоторые возможности NTFS:

  1. восстанавливаемость (recoverability)– способность файловой системы возвращаться к работоспособному состоянию после возникновения сбоя. Реализуется такая возможность, во первых, за счет поддержки атомарных транзакций, во вторых, за счет избыточности хранения информации. Атомарная транзакция (atomic transaction) – операция с файловой системой, приводящая к её изменению, которая либо полностью успешно выполняется, либо не выполняется вообще (т. е. в случае сбоя во время атомарной транзакции все изменения откатываются). Избыточность используется при хранении важнейших данных файловой системы, критически необходимых для её корректной работы;
  2. безопасность (security) – защищенность файлов от несанкционированного доступа. Реализуется при помощи модели безопасности Windows, рассмотренной в лекции 9 "Безопасность в Windows";
  3. шифрование (encryption) – преобразование файла в зашифрованный код, который невозможно прочесть без ключа. Обычные механизмы безопасности, такие как назначение прав доступа пользователей к файлам, не обеспечивают полной защиты информации, например, в случае перемещения диска на другой компьютер. Администратор операционной системы всегда может получить доступ к файлам других пользователей, даже на томе NTFS. Поэтому в NTFS включена поддержка шифрующей файловой системы EFS (Encrypting File System), которая позволяет легко зашифровывать и расшифровывать файлы;
  4. поддержка RAID (Redundant Array of Inexpensive (Independent) Disks – массив недорогих (независимых) дисков с избыточностью) – возможность использования для хранения информации нескольких дисков; данные с одного диска автоматически копируются на другие, обеспечивая тем самым повышенную надежность;
  5. дисковые квоты для пользователей (Per-User Volume Quotas) – возможность выделения для каждого пользователя определенного пространства на диске (квоты);
  6. NTFS не позволяет пользователю записывать данные на диск сверх выделенной квоты.

Структура NTFS

Структуры данных, связанные с NTFS
Структура NTFS тома

В начале тома находится загрузочная запись тома (Volume Boot Record), в которой содержится код загрузки Windows, информация о томе (в частности, тип файловой системы), адреса системных файлов ($Mft и $MftMirr – см. далее). Загрузочная запись занимает обычно 8 КБ (16 первых секторов).

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

Важной особенностью NTFS является то, что вся информация, как пользовательская, так и системная, хранится в виде файлов. Имена системных файлов начинаются со знака "$". Например, загрузочная запись тома содержится в файле $Boot, а главная таблица файлов – в файле $Mft. Такая организация информации позволяет единообразно работать как с пользовательскими, так и с системными данными на томе.

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

Остальное место на томе NTFS отводится под файлы – системные и пользовательские.

Файлы NTFS

Основная информация о файле содержится в файловой записи (File Record) размером 1 КБ таблицы MFT, а небольшие файлы целиком хранятся в файловой записи.

Файловая запись состоит из заголовка (Header) и набора атрибутов (Attribute). В заголовке содержится служебная информация о файловой записи, например, её тип и размер. Все данные, относящиеся непосредственно к файлу, хранятся в виде атрибутов. Названия атрибутов, так же как и системных файлов, начинаются с "$". Например, отдельными атрибутами являются имя файла ($FILE_NAME), информация о его свойствах ($STANDARD_INFORMATION), данные файла ($DATA).[3]

Файловая запись

Файловая запись

На диске файловая запись всегда расположена в начале сектора, первые байты файловой записи кодируют слово "FILE" (ASCII-коды: 46 49 4C 45). Конец записи определяется 4 байтовой последовательностью FF FF FF FF.

Физически атрибут файла хранится в виде потока байтов (stream) – простой последовательности байтов. Такое представление позволяет одинаковым образом работать с разнотипными атрибутами, а также добавлять нестандартные пользовательские атрибуты.

Каждый атрибут состоит из заголовка (attribute header), определяющего тип атрибута и его свойства, и тела (attribute body), содержащего основную информацию атрибута.

Структура файловой записи

Структура файловой записи

По расположению относительно MFT атрибуты бывают резидентные и нерезидентные. Резидентные атрибуты (resident attributes) полностью помещаются в файловую запись MFT, нерезидентные атрибуты (nonresident attributes) хранятся вне MFT. Область, в которой расположен нерезидентный атрибут, называется группой (run). Поскольку нерезидентных атрибутов в файле может быть несколько, то и групп бывает тоже несколько. Множество групп файла называется списком групп (RunList). Файловая запись при наличии нерезидентных атрибутов содержит ссылку на расположение группы на диске.

Безопасность

NTFS содержит множество средств разграничения прав объектов — есть мнение, что это самая совершенная файловая система из всех ныне существующих. В теории это, без сомнения, так, но в текущих реализациях, к сожалению, система прав достаточно далека от идеала и представляет собой хоть и жесткий, но не всегда логичный набор характеристик. Права, назначаемые любому объекту и однозначно соблюдаемые системой, эволюционируют — крупные изменения и дополнения прав осуществлялись уже несколько раз и к Windows 2000 все-таки они пришли к достаточно разумному набору. Права файловой системы NTFS неразрывно связаны с самой системой — то есть они, вообще говоря, необязательны к соблюдению другой системой, если ей дать физический доступ к диску. Для предотвращения физического доступа в Windows2000 (NT5) всё же ввели стандартную возможность.[4]

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

Файловая система — это основная структура, используемая компьютером для упорядочения информации на жестком диске. При установке нового жесткого диска его необходимо разбить на разделы и отформатировать под определенную файловую систему, после чего на нем можно хранить данные и программы. В Windows существует три возможных варианта файловой системы: NTFS, FAT32 и редко используемая устаревшая система FAT (также известная как FAT16).[5]

NTFS

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

  • Способность автоматически восстанавливаться после некоторых ошибок диска (FAT32 не обладает такой способностью).
  • Улучшенная поддержка больших жестких дисков.
  • Более высокая степень безопасности. Возможно использование разрешений и шифрования для запрета пользовательского доступа к определенным файлам.

FAT32

Файловая система FAT32 и редко применяемая система FAT использовались в предыдущих версиях Windows, в том числе в Windows 95, Windows 98 и Windows Millenium Edition. Файловая система FAT32 не обеспечивает уровня безопасности, предоставляемого NTFS, поэтому если на компьютере имеется раздел или том, отформатированный под FAT32, файлы на этом разделе видны любому пользователю, имеющему доступ к компьютеру. Файловая система FAT32 также имеет ограничения по размеру файлов. В этой версии Windows невозможно создать раздел FAT32 размером более 32Гб. Кроме того, раздел FAT32 не может содержать файл размером более 4Гб.

Основной причиной использования системы FAT32 может служить то, что на компьютере можно будет запустить как Windows 95, Windows 98 или Windows Millenium Edition, так и эту версию Windows (конфигурация с несколькими операционными системами). Для создания такой конфигурации необходимо установить предыдущую версию операционной системы на раздел, отформатированный под FAT32 или FAT, сделав его основным (основной раздел может содержать операционную систему). Другие разделы, доступ к которым осуществляется из предыдущих версий Windows, также должны быть отформатированы под FAT32. Более ранние версии Windows могут обращаться только к сетевым NTFS-разделам или томам. NTFS-разделы на локальном компьютере будут недоступны.

FEATURE FAT32 NTFS
Max. Partition Size 2TB 2TB
Max. File Name 8.3 Characters 255 Characters
Max. File Size 4GB 16TB
File/Folder Encryption No Yes
Fault Tolerance No Auto Repair
Security Only Network Local and Network
Compression No Yes
Conversion Possible NotAllowed
Compatibility Win 95/98/2K/2K3/XP Win NT/2K/XP/Vista/7
NTFS VS FAT

Примечания

  1. Reiser FS node layout, Namesys .
  2. NTFS [Электронный ресурс] : Материал из Википедии — свободной энциклопедии: — Режим доступа:https://ru.wikipedia.org/wiki/NTFS
  3. NTFS [Электронный ресурс] : Материал из http://www.intuit.ru/: — Режим доступа: http://www.intuit.ru/studies/courses/10471/1078/lecture/16586?page=2
  4. NTFS [Электронный ресурс] : Материал из http://www.ixbt.com/: — Режим доступа: http://www.ixbt.com/storage/ntfs.html
  5. NTFS [Электронный ресурс] : Материал из https://www.microsoft.com/ru-ru/: — Режим доступа: https://support.microsoft.com/ru-ru/products/windows?os=windows-7