Сравнительная характеристика файловых систем FAT32 и NTFS

Содержание



1.Введение

2.Основная часть

Глава 1. Общие сведения о файловых системах

	1.1 Что такое файловая система

	1.2 Определение файловой системы

	1.3 Распространенные файловые системы

	1.4 Типы файлов

1.5 Логическая организация файла

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

	2.1 Структура

	2.2 Кластеры

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

	3.1 MFT и его структура

	3.2 Каталоги

3.3 Сравнение FAT и NTFS

	3. Заключение

	4. Техника безопасности

	5. Список используемой литературы


1. Введение



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

Файловая система с точки зрения пользователя — это «пространство», в котором размещаются файлы. А как научный термин - это способ хранения и организации доступа к данным на информационном носителе или его разделе. Наличие файловой системы позволяет определить, как называется файл, где он находится. Поскольку на IBM PC – совместимых компьютерах информация храниться в основном на дисках, то применяемые на них файловые системы определяют организацию данных именно на дисках (точнее, на логических дисках). Мы рассмотрим две файловые системы –, FAT 32, NTFS.


2.Основная часть



	Глава 1. Общие сведения о файловых системах



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

Файл – минимальная структурированная именованная последовательность данных. Каталог (папка) является своеобразной объединяющей структурой для расположенных на диске файлов. Каталог может содержать в себе файлы и другие (вложенные) каталоги. Каталоги и файлы образуют на диске древовидную иерархическую структуру – дерево каталогов. Единственный каталог не входящий ни в одну из директорий называется корневым каталогом. Все файлы в компьютере хранятся на магнитных дисках, которые являются частью его конструкции. Магнитные диски являются устройствами произвольного доступа. В них каждая запись данных имеет свой уникальный адрес, обеспечивающий непосредственный доступ к ней, минуя все остальные записи. Для хранения данных служит диск (пакет из нескольких дисков), покрытый ферримагнитным слоем. Запись на магнитный диск и считывание данных с него осуществляется головками чтения/записи.



	

	Рис. 4 Структура поверхности магнитного диска

	Поверхность диска разбита на дорожки, представляющие собой окружности (рис. 4). Дорожки разделены на секторы. Размер сектора обычно составляет 512 байт. В большинстве файловых систем пространство на диске выделяется кластерами, которые состоят из нескольких секторов. Кластер – минимальный размер места на диске, которое может быть выделено для хранения одного файла. Перед тем, как диск может быть использован для записи данных, он должен быть размечен — на его дорожки должны быть записаны заголовки секторов с правильными номерами дорожки и сектора, а также, если это необходимо, маркеры. Как правило, при этом же происходит тестирование поверхности диска для поиска дефектов магнитного слоя. Не следует путать эту операцию — физическое форматирование диска — с логическим форматированием, заключающемся в создании файловых систем. Современные жесткие диски обычно требуют физической разметки при их изготовлении.

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

	В операционных системах MS-DOS и Windows каждое дисковое устройство обозначается латинской буквой. Для имени логического диска используются буквы от A до Z. Буквы A и B обозначают дисководы гибких магнитных дисков (FDD). Начиная с буквы C, именуются разделы жесткого диска (HDD), дисководы оптических дисков и виртуальные диски. Для обращения к файлу используется следующая спецификация: 

	устройство:\путь\имя файла. Расширение

	Здесь путь – список каталогов, входящих друг в друга, в последнем из которых и содержится указанный файл. Если путь не указан, следует что, файл находится в корневом каталоге данного диска. В MS-DOS имя файла состоит из 8 символов, точки и 3 символов расширения имени файла. Точка отделяет собственно имя от расширения. Имя файла может состоять из латинских букв, цифр 0 – 9, некоторых других символов, и не может содержать пробел. В Windows поддерживаются длинные имена файлов (от 1 до 255 символов), имя может содержать пробелы. При использовании файловых систем HPFS и NTFS имя файла может содержать несколько точек.

	В именах файлов нельзя использовать символы “ * ” и “ ? ”, так как они используются в масках имен при поиске файлов.

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

	Различают следующие типы файлов:

	Текстовые файлы. Текстовые файлы могут содержать простой или размеченный текст, в кодировке ASCII, ANSI или UNICODE. Текст без разметки содержит только отображаемые символы и простейшие управляющие символы (возврат каретки и табуляции). Размеченный текст содержит бинарную и символьную разметку (межстрочный интервал, новая страница и т.п.), может содержать таблицы и рисунки;

	Графические файлы – файлы, содержащие точечные или векторные изображения;

	Файлы мультимедиа – различают файлы, содержащие оцифрованный звук (файлы аудио) и фалы видео (содержат изображение и звук);

	Исполняемые файлы – программы готовые к исполнению (файлы с расширением exe и com).

	Архивные файлы – файлы архивов rar, tar, zip, cab и т.п.

	Файлы библиотек – файлы с расширением DLL, OCX и LIB;

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

	Информация о логической организации физического жесткого диска 

	(числе логических дисков, их размере) расположена в главной загрузочной записи (MBR). MBR расположена в самом первом секторе жесткого диска и не входит в структуру файловой системы.

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

	Проверку типа монтируемой файловой системы; проверку целостности файловой системы; 

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



1.1 Что такое файловая система



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



1.2 Определение файловой системы



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

Файловая система определяет: 

- как хранятся файлы и каталоги на диске;

- какие сведения хранятся о файлах и каталогах;

- как можно узнать, какие участки диска свободны, а какие – нет;

- формат каталогов и другой служебной информации на диске.

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



1.3 Распространенные файловые системы



Операционные системы Microsoft семейства Windows NT, Windows XP, Windows Vista, Windows 7 нельзя представить без файловой системы NTFS,FAT. Поскольку на IBM PC – совместимых компьютерах информация храниться в основном на дисках, то применяемые на них файловые системы определяют организацию данных именно на дисках (точнее, на логических дисках). Мы рассмотрим четыре файловые системы –FAT 32, NTFS.



1.4 Типы файлов



Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.

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

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

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

информация о разрешенном доступе, 

пароль для доступа к файлу, 

владелец файла, 

создатель файла, 

признак "только для чтения", 

признак "скрытый файл", 

признак "системный файл", 

признак "архивный файл", 

признак "двоичный/символьный", 

признак "временный" (удалить после завершения процесса), 

признак блокировки, 

длина записи, 

указатель на ключевое поле в записи, 

длина ключа, 

времена создания, последнего доступа и последнего изменения, 

текущий размер файла, 

максимальный размер файла. 

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



Рис. 1. Структура каталогов: а - структура записи каталога MS-DOS (32 байта); б - структура записи каталога ОС UNIX



Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX'е - сетевую. Как и любой другой файл, каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога.



Рис. 2. Логическая организация файловой системы  а - одноуровневая; б - иерархическая (дерево); в - иерархическая (сеть)





1.5 Логическая организация файла



Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система обеспечивает программисту доступ к отдельной логической записи. На рисунке 3 показаны несколько схем логической организации файла. Записи могут быть фиксированной длины или переменной длины. Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием, так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом. В файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру - последовательность однобайтовых записей. 





Рис. 3. Способы логической организации файлов


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



2.1Структура



Файловая система FAT представляет собой таблицу размещения файлов, в которой указываются:

непосредственно адреса участков логического диска, предназначенные для размещения файлов;

свободные области дискового пространства;

дефектные области диска.

В этой таблице каждому блоку, предназначенному для хранения данных, F







2.2 Кластеры



В таблице FAT кластеры, принадлежащие файлу или каталогу, связываются в цепочки. В 16-разрядной FAT можно иметь до 65536 кластеров. В операционных системах Windows NT/2000/XP разделы FAT могут иметь до 4097 Мб. В этом случае кластер занимает 128 секторов диска.

.Логическое объединение секторов в кластеры позволяет уменьшить размер таблицы FAT и ускорить доступ к файлу. Спустя 5 лет этого стало мало для человека. И в 1991 году выпустили обновленную версию FAT32. В настоящее время файловая система FAT 32 поддерживается современными операционными системами 

Windows ME/2000/XP. Имеются реализации FAT 32 для Windows NT и Linux. Файловая система FAT 32 является полностью самостоятельной 32-разрядной файловой системой и имеет более совершенную структуру. 

FAT 32 намного эффективнее расходует дисковое пространство. Кластеры в этой файловой системе меньше, чем кластеры в предыдущих версиях FAT. Следовательно, для дисков размером до 8 Гб FAT 32 может использовать кластеры размером 4 Кб. Таблица размещения файлов в FAT 32 может содержать до  кластеров (в 32-разрядном коде, используемом для представления номера кластера, фактически используются только 28 разрядов). Система FAT 32 также может перемещать корневой каталог и использовать резервную копию FAT вместо стандартной. Но и эта система не самая лучшая. Самая лучшая и прекрасная в работе файловая система NTFS опишем её достоинства.


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



Раздел NTFS, теоретически, может быть почти какого угодно размера. Предел, конечно, есть, но я даже не буду указывать его, так как его с запасом хватит на последующие сто лет развития вычислительной техники - при любых темпах роста. Как обстоит с этим дело на практике? Почти так же. Максимальный размер раздела NTFS в данный момент ограничен лишь размерами жестких дисков. NT4, правда, будет испытывать проблемы при попытке установки на раздел, если хоть какая-нибудь его часть отступает более чем на 8 Гб от физического начала диска, но эта проблема касается лишь загрузочного раздела. Метод инсталляции NT4.0 на пустой диск довольно оригинален и может навести на неправильные мысли о возможностях NTFS.

Если вы укажете программе установки, что желаете отформатировать диск в NTFS, максимальный размер, который она вам предложит, будет всего 4 Гб. Почему так мало, если размер раздела NTFS на самом деле практически неограничен? Дело в том, что установочная секция просто не знает этой файловой системы :) Программа установки форматирует этот диск в обычный FAT, максимальный размер которого в NT составляет 4 Гбайт (с использованием не совсем стандартного огромного кластера 64 Кбайта), и на этот FAT устанавливает NT. А вот уже в процессе первой загрузки самой операционной системы (еще в установочной фазе) производится быстрое преобразование раздела в NTFS; так что пользователь ничего и не замечает, кроме странного \"ограничения\" на размер NTFS при установке.


Структура раздела - общий взгляд

MFT

Зона MFT

Зона для размещения

Файлов и каталогов

Копия первых 16 записей MFT

Зона для размещения

файлов и каталогов



Как и любая другая система, NTFS делит все полезное место на кластеры - блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров - от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт. Никаких аномалий кластерной структуры NTFS не имеет, поэтому на эту, в общем-то, довольно банальную тему, сказать особо нечего. Диск NTFS условно делится на две части. Первые 12% диска отводятся под так называемую MFT зону - пространство, в которое растет метафайл MFT (об этом ниже). Запись каких-либо данных в эту область невозможна. MFT-зона всегда держится пустой - это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов. Свободное место диска, однако, включает в себя всё физически свободное место - незаполненные куски MFT-зоны туда тоже включаются. Механизм использования MFT-зоны таков: когда файлы уже нельзя записывать в обычное пространство, MFT-зона просто сокращается (в текущих версиях операционных систем ровно в два раза), освобождая таким образом место для записи файлов. При освобождении места в обычной области MFT зона может снова расширится. При этом не исключена ситуация, когда в этой зоне остались и обычные файлы: никакой аномалии тут нет. Что ж, система старалась оставить её свободной, но ничего не получилось. Жизнь продолжается... Метафайл MFT все-таки может фрагментироваться, хоть это и было бы нежелательно. 

3.1 MFT и его структура



Файловая система NTFS представляет собой выдающееся достижение структуризации: каждый элемент системы представляет собой файл - даже служебная информация. Самый главный файл на NTFS называется MFT, или Master File Table - общая таблица файлов. Именно он размещается в MFT зоне и представляет собой централизованный каталог всех остальных файлов диска, и, как не парадоксально, себя самого. MFT поделен на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны операционной системе - они называются метафайлами, причем самый первый метафайл - сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей, для надежности - они очень важны - хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска - восстановить его положение можно с помощью его самого, \"зацепившись\" за самую основу - за первый элемент MFT. 



Метафайлы



Имя метафайла

Описание

$MFT

Файл с таблицей MFT

$MFTmirr

Копия первых 16 записей табл.MFT, размещенная

посередине тома

$LogFile

Файл журнала

$Volume

Служебная информация – метка тома, версия ФС и т.д.

$AttrDef

Список стандартных атрибутов файлов на томе

$

Корневой каталог

$Bitmap

Битовая карта свободного места тома

$Boot

Загрузочный сектор (если раздел загрузочный)

$Quota

Файл, с записями прав пользователей на работу с данными

$Upcase

Файл с таблицей соответствия строчных и прописных букв в именах

файлов. В NTFS имена файлов в Unicode.



Таблица метафайлов

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

Метафайлы находятся корневом каталоге NTFS диска - они начинаются с символа имени \"$\", хотя получить какую-либо информацию о них стандартными средствами сложно. Любопытно, что и для этих файлов указан вполне реальный размер - можно узнать, например, сколько операционная система тратит на каталогизацию всего вашего диска, посмотрев размер файла $MFT. В следующей таблице приведены используемые в данный момент метафайлы и их назначение.



$MFT

сам MFT

$MFTmirr

копия первых 16 записей MFT, размещенная посередине диска

$LogFile

файл поддержки журналирования (см. ниже)

$Volume

служебная информация - метка тома, версия файловой системы, т.д.

$AttrDef

список стандартных атрибутов файлов на томе

$.

корневой каталог

$Bitmap

карта свободного места тома

$Boot

загрузочный сектор (если раздел загрузочный)

$Quota

файл, в котором записаны права пользователей на использование дискового пространства (начал работать лишь в NT5)

$Upcase

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



Файлы и потоки

Итак, у системы есть файлы - и ничего кроме файлов. Что включает в себя это понятие на NTFS? 

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

Опциональный элемент - потоки данных файла. Может показаться странным определение \"опциональный\", но, тем не менее, ничего странного тут нет. Во-первых, файл может не иметь данных - в таком случае на него не расходуется свободное место самого диска. Во-вторых, файл может иметь не очень большой размер. Тогда идет в ход довольно удачное решение: данные файла хранятся прямо в MFT, в оставшемся от основных данных месте в пределах одной записи MFT. Файлы, занимающие сотни байт, обычно не имеют своего \"физического\" воплощения в основной файловой области - все данные такого файла хранятся в одном месте - в MFT. 

Довольно интересно обстоит дело и с данными файла. Каждый файл на NTFS, в общем-то, имеет несколько абстрактное строение - у него нет как таковых данных, а есть потоки (streams). Один из потоков и носит привычный нам смысл - данные файла. Но большинство атрибутов файла - тоже потоки! Таким образом, получается, что базовая сущность у файла только одна - номер в MFT, а всё остальное опционально. Данная абстракция может использоваться для создания довольно удобных вещей - например, файлу можно \"прилепить\" еще один поток, записав в него любые данные - например, информацию об авторе и содержании файла, как это сделано в Windows 2000 (самая правая закладка в свойствах файла, просматриваемых из проводника). Интересно, что эти дополнительные потоки не видны стандартными средствами: наблюдаемый размер файла - это лишь размер основного потока, который содержит традиционные данные. Можно, к примеру, иметь файл нулевой длинны, при стирании которого освободится 1 Гбайт свободного места - просто потому, что какая-нибудь хитрая программа или технология прилепила в нему дополнительный поток (альтернативные данные) гигабайтового размера. Но на самом деле в текущий момент потоки практически не используются, так что опасаться подобных ситуаций не следует, хотя гипотетически они возможны. Просто имейте в виду, что файл на NTFS - это более глубокое и глобальное понятие, чем можно себе вообразить просто просматривая каталоги диска. Ну и напоследок: имя файла может содержать любые символы, включая полый набор национальных алфавитов, так как данные представлены в Unicode - 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла - 255 символов. 

Журналирование

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

Сжатие

Файлы NTFS имеют один довольно полезный атрибут - \"сжатый\". Дело в том, что NTFS имеет встроенную поддержку сжатия дисков - то, для чего раньше приходилось использовать Stacker или DoubleSpace. Любой файл или каталог в индивидуальном порядке может хранится на диске в сжатом виде - этот процесс совершенно прозрачен для приложений. Сжатие файлов имеет очень высокую скорость и только одно большое отрицательное свойство - огромная виртуальная фрагментация сжатых файлов, которая, правда, никому особо не мешает. Сжатие осуществляется блоками по 16 кластеров и использует так называемые \"виртуальные кластеры\" - опять же предельно гибкое решение, позволяющее добиться интересных эффектов - например, половина файла может быть сжата, а половина - нет. Это достигается благодаря тому, что хранение информации о компрессированности определенных фрагментов очень похоже на обычную фрагментацию файлов: например, типичная запись физической раскладки для реального, несжатого, файла: 

кластеры файла с 1 по 43-й хранятся в кластерах диска начиная с 400-го 

кластеры файла с 44 по 52-й хранятся в кластерах диска начиная с 8530-го ... 

Физическая раскладка типичного сжатого файла: 

кластеры файла с 1 по 9-й хранятся в кластерах диска начиная с 400-го 

кластеры файла с 10 по 16-й нигде не хранятся 

кластеры файла с 17 по 18-й хранятся в кластерах диска начиная с 409-го 

кластеры файла с 19 по 36-й нигде не хранятся 

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

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

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

Права файловой системы NTFS неразрывно связаны с самой системой - то есть они, вообще говоря, необязательны к соблюдению другой системой, если ей дать физический доступ к диску. Для предотвращения физического доступа в Windows2000 (NT5) всё же ввели стандартную возможность - об этом см. ниже. Система прав в своем текущем состоянии достаточно сложна, и я сомневаюсь, что смогу сказать широкому читателю что-нибудь интересное и полезное ему в обычной жизни. Если вас интересует эта тема - вы найдете множество книг по сетевой архитектуре NT, в которых это описано более чем подробно. 

Hard Links

Эта штука была в NTFS с незапамятных времен, но использовалась очень редко - и тем не менее: Hard Link - это когда один и тот же файл имеет два имени (несколько указателей файла-каталога или разных каталогов указывают на одну и ту же MFT запись). Допустим, один и тот же файл имеет имена 1.txt и 2.txt: если пользователь сотрет файл 1, останется файл 2. Если сотрет 2 - останется файл 1, то есть оба имени, с момента создания, совершенно равноправны. Файл физически стирается лишь тогда, когда будет удалено его последнее имя. 

Symbolic Links (NT5)

Гораздо более практичная возможность, позволяющая делать виртуальные каталоги - ровно так же, как и виртуальные диски командой subst в DOSе. Применения достаточно разнообразны: во-первых, упрощение системы каталогов. Если вам не нравится каталог Documents and settings\\Administrator\\Documents, вы можете прилинковать его в корневой каталог - система будет по прежнему общаться с каталогом с дремучим путем, а вы - с гораздо более коротким именем, полностью ему эквивалентным. Для создания таких связей можно воспользоваться программой Junction, которую написал известный специалист Mark Russinovich (http://www.sysinternals.com/). Программа работает только в NT5 (Windows 2000), как и сама возможность. 

Для удаления связи можно воспользоваться стандартной командой rd.

Шифрование (NT5)

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



3.2 Каталоги



Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который в свою очередь предоставляет полную информацию об элементе каталога. Внутренняя структура каталога представляет собой бинарное дерево. Вот что это означает: для поиска файла с данным именем в линейном каталоге, таком, например, как у FAT-а, операционной системе приходится просматривать все элементы каталога, до тех пор пока она не найдет необходимый. Бинарное же дерево располагает имена файлов таким образом, чтобы поиск файла осуществлялся наиболее быстрым способом - с помощью получения двухзначных ответов на запросы о расположении файла. Запрос, на который бинарное дерево способно дать ответ, таков: в какой группе, относительно данного элемента, находится искомое имя - выше или ниже? Начинается такой запрос с центрального элемента списка, и каждый ответ сокращает область поиска в среднем в два раза. Файлы, скажем, просто отсортированы по алфавиту, и ответ на запрос осуществляется элементарным способом - сравнением начальных букв. Область поиска, суженная в два раза, исследуется аналогичным образом, начиная опять же с центрального элемента.







Вывод - для поиска одного файла среди 1000, например, FAT придется осуществить в среднем 500 сравнений (наиболее вероятно, что файл будет найден посередине выполнения поиска), а системе на основе дерева - всего около 12-ти (2^10 = 1024). Экономия времени поиска налицо. Не стоит, однако думать, что в традиционных системах (FAT) всё так запущено: во-первых, поддержание списка файлов в виде бинарного дерева довольно трудоёмкая операция, а во-вторых - даже FAT в исполнении современной системы (Windows 2000, Windows XP или Windows 98) использует сходную оптимизацию поиска. Хочется также развеять распространенное заблуждение о том, что добавлять файл в каталог в виде дерева сложнее, чем в линейный каталог: это примерно одинаковые по времени операции. Дело в том, что для добавления файла в каталог, необходимо сначала убедится, что файла с таким именем в этом каталоге еще нет - и вот тут-то в линейной системе возникают трудности с поиском файла, описанные выше, которые с лихвой компенсируют саму простоту добавления файла в каталог.

Какую информацию можно получить, просто прочитав файл каталога? Ровно то же, что выдает команда dir. Для выполнения простейшей навигации по диску не нужно обращаться в MFT за каждым файлом, надо лишь считывать самую общую информацию о файлах из файлов каталогов. Главный каталог диска - корневой - ничем не отличается от обычных каталогов, кроме специальной ссылки на него из начала метафайла MFT



3.3 Сравнение FAT и NTFS



Любая из представленных ныне файловых систем уходит своими корнями в глубокое прошлое - еще к 80-м годам. Да, NTFS, как это не странно - очень старая система! Дело в том, что долгое время персональные компьютеры пользовались лишь операционной системой DOS, которой и обязана своим появлением FAT-а. Но параллельно разрабатывались и тихо существовали системы, нацеленные на будущее. Две таких системы, получившие всё же широкое признание - NTFS, созданная для операционной системы Windows NT 3.1 еще в незапамятные времена, и HPFS - верная спутница OS/2.

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

NTFS же долго не могла завоевать персональные компьютеры из-за того, что для организации эффективной работы с её структурами данных требовались значительные объемы памяти. Системы с 4 или 8 МБ (стандарт 95-96 годов) были просто неспособны, получить хоть какой-либо плюс от NTFS, поэтому за ней закрепилась не очень правильная репутация медленной и громоздкой системы. На самом деле это не соответствует действительности - современные компьютерные системы с памятью более 64 МБ получают просто огромный прирост производительности от использования NTFS.

В данной таблице сведены воедино все существенные плюсы и минусы распространенных в наше время систем, таких как FAT, FAT32 и NTFS. Вряд ли разумно обсуждать другие системы, так как в настоящее время 97% пользователей делают выбор между Windows XP (NT5.1), Windows Xp(sp2), Windows Xp(sp3), Windows Vista, Windows 7 а других вариантов там просто нет.





FAT

FAT32

NTFS

Поддерживающие

Системы

DOS, Windows9Х, NT всех версий

Windows 98, NT5, Windows Xp, Windows 2000, WindowsVista, Windows Seven

NT4, NT5, NT5.1, Windows Xp, Windows Vista, Windows 7

Максимальный размер тома

2 ГБ

практически неограничен

практически неограничен

Максимальное число файлов на томе

примерно 65 тысяч

практически неограниченно

практически не ограничено

Имена файлов

с поддержкой длинных имен - 255 символов, системный набор символов

с поддержкой длинных имен - 255 символов, системный набор символов

255 символов, любые символы любых алфавитов (65000 разных начертаний)

Возможные атрибуты файла

базовый набор

базовый набор

всё, что придет в голову производителям программного обеспечения

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

Нет

Нет

да

(начиная с NT5.0 и выше, встроена возможность физического шифрования данных)

Сжатие

Нет

Нет

Да

Устойчивость к сбоям

Средняя

(система слишком проста, и поэтому ломаться особо нечему)

плохая

(средства оптимизации по скорости привели к появлению слабых по надежности мест)

полная

 - автоматическое восстановление системы при любых сбоях (не считая физические ошибки записи, когда пишется одно, а на самом деле записывается другое)

Экономичность

минимальная (огромные размеры кластеров на больших дисках)

средняя

(улучшена за счет уменьшения размеров кластеров)

максимальная

(очень эффективная и разнообразная система хранения данных)

Быстродействие

высокое 

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

полностью аналогично FAT, но на дисках большого размера (десятки гигабайт) начинаются серьезные проблемы с общей организацией данных

система не очень эффективна для малых и простых разделов (до 1 ГБ), но работа с огромными массивами данных и внушительными каталогами организована как нельзя более эффективно и очень сильно превосходит по скорости другие системы



Хотелось бы сказать, что если ваша операционная система - NT (Windows 2000, Windows XP, Windows Vista, Windows 7), то использовать какую-либо файловую систему, отличную от NTFS - значит существенно ограничивать свое удобство и гибкость работы самой операционной системы. NT, а особенно Windows 2000 или Windows XP, составляет с NTFS как бы две части единого целого - множество полезных возможностей NT напрямую завязано на физическую и логическую структуру файловой системы, и использовать там FAT или FAT32 имеет смысл лишь для совместимости - если у вас стоит задача читать эти диски из каких-либо других систе


3. Заключение



В заключение сравним файловые cистемы FAT и NTFS

FAT - плюсы:

Для эффективной работы требуется немного оперативной памяти. 

Быстрая работа с малыми и средними по количеству файлов каталогами. 

Диск совершает в среднем меньшее количество движений головок (по сравнению с NTFS). 

Эффективная работа на медленных дисках. 

FAT - минусы:

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

Сложности с произвольным доступом к большим (скажем, 10% и более от размера диска) файлам. 

Очень медленная работа с каталогами, содержащими большое количество файлов. 

NTFS - плюсы:

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

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

Быстрый доступ к произвольному фрагменту файла (например, редактирование больших *.wav файлов). 

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

NTFS - минусы:

Существенные требования к оперативной памяти системы (64 МБ - абсолютный минимум, лучше - больше). 

Медленные диски и контроллеры без Bus Mastering сильно снижают быстродействие NTFS. 

Работа с каталогами средних размеров затруднена тем, что они почти всегда фрагментированы. 

Диск, долго работающий в заполненном на 80% - 90% состоянии, будет показывать крайне низкое быстродействие. 

Хотелось бы еще раз подчеркнуть, что на практике основной фактор, от которого зависит быстродействие файловой системы - это, как ни странно, объем оперативной памяти машины. Системы с памятью 64-96 МБ - некий рубеж, на котором быстродействие NTFS и FAT32 примерно эквивалентно. Обратите внимание также на сложность организации данных на вашей машине. Если вы не используете ничего, кроме простейших приложений и самой операционной системы - может случиться так, что FAT32 сможет показать более высокое быстродействие и на машинах с большим количеством памяти. 

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

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





2