Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО_Лекции_2011_01.docx
Скачиваний:
20
Добавлен:
31.07.2019
Размер:
521.09 Кб
Скачать

Файловая система ntfs (New Technology File System)

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

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

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

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

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

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

поддерживает длинные имена файлов, набор символов Unicode и альтернативные имена формата 8.3 для совместимости с FAT.

NTFS превосходно справляется с обработкой больших массивов данных и достаточно хорошо проявляет себя при работе с томами объёмом от 300-400 Мбайт и выше. Максимально возможные размеры тома (и размеры файла) составляют 16 Экзабайт (один экзабайт равен 2А64, или приблизительно 16 000 млрд гигабайт).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Имя файла

Имя файла в символах Unicode. Файл может иметь несколько атрибутов - имён файла, подобно тому как это имеет место в UNIX-Системах. Это случается, когда имеется связь POSIX с данным файлом или если у файла

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

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

Данные

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

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

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

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

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

Атрибуты файла в записях MFT расположены в порядке возрастания числовых значений кодов типа, причем некоторые типы атрибутов могут встречаться в записи более одного раза. Имя файла в NTFS, в отличие от файловых систем FAT и HPFS, может содержать любые символы, включая полный набор национальных алфавитов, так как данное представлены в Unicode - 16-битном представлении, которое дает 65 535 разных символов. Максимальная длина имени файла в NTFS - 255 символов. Большой вклад в эффективность файловой системы вносит организация каталога. Каталог в NTFS представляет собой специальный файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделён на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога. Главный каталог диска - корневой - ничем не отличается от обычных каталогов, кроме специальной ссылки на него из начала метафайла MFT.

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

Итак, как нам теперь известно, бинарное дерево каталога располагает имена файлов таким образом, чтобы поиск файла осуществлялся с помощью получения двухзначных ответов на вопросы о положении файла. Бинарное дерево способно дать ответ на вопрос: в какой группе, относительно данного элемента, находится искомое имя - выше или ниже? Мы начинаем с такого вопроса к среднему элементу, и каждый ответ сужает зону поиска в среднем в два раза. Если представить, что файлы отсортированы по алфавиту, то ответ на вопрос осуществляется очевидным способом - сравнением начальных букв. Область поиска, суженная в два раза, начинает исследоваться аналогичным образом, начиная опять же со среднего элемента.

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

Рассмотрим основные возможности, связанные как с организацией различных прав доступа к файлам и каталогам при использовании сетевого доступа, так и локальные ограничения на файлы и каталоги. NTFS рассматривает каталоги (папки) и файлы как разнотипные объекты и ведёт отдельные (хотя и перекрывающиеся) списки прав доступа для каждого типа [36]. Ниже перечислены права NTFS, назначаемые папкам (соответствующие права для файлов приведены ниже): ♦нет доступа (no access) (Noiic)(hct): ♦полный доступ (full control) (А11)(А11) (все)(все); ♦право чтения (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, у нас получаются задействованными два последовательных механизма. Сначала мы получаем доступ к файлам, который был определён сетевыми механизмами. Это право «нет доступа» - «по access», право на «чтение» - «read», право «изменение» - «change» и «полный доступ» - «full control». После этого вступают в силу ограничения на файлы и каталоги, определённые свойствами NTFS. То есть нам нужно преодолеть последовательно два препятствия. Другими словами, итоговые права на папки и файлы будут определяться максимальными ограничениями, которые были заданы в каждом из механизмов.

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

♦полный доступ (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 теряются.

Тема 4