Лекция №7
Системы управления файлами.
Файловая система NTFS
Вопросы:
1.
Файловая
система NTFS
·
Основные
особенности NTFS
·
Структура тома с файловой системой NTFS
·
MFT (master file
table)
·
Представление
файлов
·
Атрибуты
файлов
·
Организация
каталогов
·
Ограничение доступа к файлам и каталогам
·
Средства
самовосстановления
· Недостатки
файловой системы NTFS
·
Утилита
CONVERT.EXE
Файловая система NTFS (New Technology File System) - новая технология
NTFS содержит ряд значительных усовершенствований и
изменений, существенно отличающих ее от других файловых систем.
За редкими исключениями, с разделами NTFS можно
работать напрямую только из Windows NT, хотя и
имеются для ряда ОС соответствующие реализации систем управления файлами для
чтения файлов из томов NTFS. Так, например, утилита (драйвер) NTFSDOS
позволяет читать данные NTFS на компьютере, загруженном в режиме MS-DOS. Однако
полноценных реализации для работы с NTFS вне системы Windows NT пока нет.
NTFS не поддерживается в широко распространенных ОС Windows
98 и ныне все более часто встречающейся
Windows Millennium Edition.
Основные особенности NTFS
·
работа
на дисках большого объема происходит эффективно (намного эффективнее, чем в FAT);
·
имеются
средства для ограничения доступа к файлам и каталогам Þ разделы NTFS обеспечивают
локальную безопасность как файлов, так и каталогов;
·
введен
механизм транзакций, при котором осуществляется журналирование файловых
операций Þ существенное увеличение
надежности;
·
сняты
многие ограничения на максимальное количество дисковых секторов и/или
кластеров;
·
имя
файла в NTFS, в отличие от файловых систем FAT и
HPFS, может
содержать любые символы, включая полный набор национальных алфавитов, так как
данные представлены в Unicode — 16-битном представлении,
которое дает 65535 разных символов. Максимальная длина имени файла в NTFS —
255 символов.
·
система
NTFS также обладает встроенными средствами сжатия, которые можно применять к
отдельным файлам, целым каталогам и даже томам (и впоследствии отменять или
назначать их по своему усмотрению).
Структура тома с файловой системой NTFS
Раздел NTFS называется томом
(volume).
Максимально возможные размеры тома (и размеры файла) составляют 16 Эбайт
(экзабайт 2**64).
Замечание. Возможно создание тома,
занимающего несколько разделов (отказоустойчивого тома)
Как и многие другие
системы, NTFS делит дисковое пространство тома на кластеры — блоки данных,
адресуемые как единицы данных. NTFS поддерживает размеры кластеров от 512 байт
до 64 Кбайт; стандартом же считается кластер размером 2 или 4 Кбайт.
Все дисковое пространство в NTFS делится на две
неравные части.
Первые 12 % диска отводятся под так называемую
MFT-зону — пространство, которое может занимать, увеличиваясь в размере,
главный служебный метафайл MFT.
Запись каких-либо данных в эту область невозможна.
MFT-зона всегда держится пустой — это делается для того, чтобы MFT-файл по
возможности не фрагментировался при своем росте.
Остальные 88 % тома представляют собой обычное
пространство для хранения файлов.
MFT
(master file table)
MFT
(общая таблица
файлов) по сути - это каталог всех остальных файлов диска, в том числе и себя
самого. Он предназначен для определения расположения файлов.
MFT состоит из записей фиксированного размера.
Размер записи MFT (минимум 1 Кб и максимум 4 Кб) определяется во время
форматирования тома.
Каждая запись соответствует какому-либо файлу.
Первые 16 записей носят служебный характер и
недоступны операционной системе — они называются метафайлами, причем
самый первый метафайл — сам MFT.
Эти первые 16 элементов MFT
— единственная
часть диска, имеющая строго фиксированное положение. Копия этих же 16 записей
хранится в середине тома для надежности.
Остальные части MFT-файла могут располагаться, как и
любой другой файл, в произвольных местах диска.
Метафайлы носят служебный характер - каждый из них
отвечает за какой-либо аспект работы системы. Метафайлы находятся в корневом
каталоге NTFS-тома. Все они начинаются с символа имени “$”, хотя получить
какую-либо информацию о них стандартными средствами сложно. В табл. приведены
основные известные метафайлы и их назначение.
Таблица. Метафайлы NTFS
Имя
метафайла |
Назначение
метафайла |
|
$MFT $ |
Сам Master File
Table |
|
$MFTmirr |
Копия
первых 16 записей MFT, размещенная посередине тома |
|
$LogFile |
Файл
поддержки операций журналирования |
|
$Volume |
Служебная
информация — метка тома, версия файловой системы и т. д. |
|
$AttrDef |
Список стандартных
атрибутов файлов на томе |
|
$. |
Корневой
каталог |
|
$Bitmap |
Карта
свободного места тома |
|
$Boot |
Загрузочный
сектор (если раздел загрузочный) |
|
$Quota |
Файл,
в котором записаны права пользователей на использование дискового
пространства (этот файл начал работать лишь в Windows 2000 с системой NTFS 5.0) |
|
$Upcase |
Файл
— таблица соответствия заглавных и прописных букв в именах файлов. В NTFS
имена файлов записываются в Unicode (что
составляет 65 тысяч различных символов) и искать большие и малые эквиваленты
в данном случае — нетривиальная задача |
|
В соответствующей записи MFT
хранится вся информация о файле:
·
имя
файла,
·
размер;
·
атрибуты
файла;
·
положение
на диске отдельных фрагментов и т. д.
Если для информации не хватает одной записи MFT, то
используется несколько записей, причем не обязательно идущих подряд.
Если файл имеет не очень
большой размер, то данные файла хранятся прямо в MFT, в оставшемся от основных
данных месте в пределах одной записи MFT.
Таким образом, файлы, занимающие сотни байт, обычно не
имеют своего “физического” воплощения в основной файловой области - все данные
такого файла хранятся в одном месте, в MFT.
Файл в томе с NTFS идентифицируется так называемой файловой
ссылкой (File Reference), которая представляется как
64-разрядное число.
Файловая ссылка состоит из
·
номера
файла, который соответствует номеру записи в MFT,
·
и
номера последовательности. Этот номер увеличивается всякий раз, когда данный
номер в MFT используется повторно, что позволяет файловой системе NTFS
выполнять внутренние проверки целостности.
Представление файлов
Каждый файл в NTFS представлен с помощью потоков (streams),
то есть у него нет как таковых “просто данных”, а есть потоки.
Один из потоков - это и есть данные файла.
Большинство атрибутов файла - это тоже потоки.
Таким образом, получается, что базовая сущность у
файла только одна — номер в MFT, а все остальное, включая и его потоки, —
опционально.
Данный подход может эффективно использоваться —
например, файлу можно “прилепить” еще один поток, записав в него любые данные.
В Windows 2000
таким образом записана информация об авторе и содержании файла (одна из
закладок в свойствах файла, просматриваемых, например, из проводника).
Интересно, что эти дополнительные потоки не видны
стандартными средствами работы с файлами: наблюдаемый размер файла — это лишь
размер основного потока, который содержит традиционные данные. Можно, к
примеру, иметь файл нулевой длины, при стирании которого освободится 1 Гбайт
свободного места — просто потому, что какая-нибудь
хитрая программа или технология “прилепила” к нему дополнительный поток
(альтернативные данные) такого большого размера. Но на самом деле в настоящее
время потоки практически не используются, так что опасаться подобных ситуаций
не следует, хотя гипотетически они возможны.
На идее потока основан один из новейших вирусов,
который был не так давно создан для распространения в среде Windows 2000.
Атрибуты файлов
Стандартные атрибуты для файлов и каталогов в томе
NTFS имеют фиксированные имена и коды типа.
Таблица. Атрибуты файлов в системе NTFS. * отмечены обязательные
атрибуты.
Системный атрибут |
Описание атрибута |
* Стандартная информация о файле |
Традиционные
атрибуты Read Only, Hidden, Archive, System, отметки времени, включая время создания или последней модификации,
число каталогов, ссылающихся на файл |
Список
атрибутов |
Список
атрибутов, из которых состоит файл, и файловая ссылка на файловую запись и
MFT, в которой расположен каждый из атрибутов. Последний используется, если
файлу необходимо более одной записи в MFT |
* Имя файла |
Имя
файла в символах Unicode. Файл может иметь
несколько атрибутов — имен файла, подобно тому как это имеет место в
UNIX-системах. Это случается, когда имеется связь POSIX с данным файлом или если у файла есть автоматически
сгенерированное имя в формате 8.3 |
* Дескриптор защиты |
Структура
данных защиты (ACL), предохраняющая файл от
несанкционированного доступа. Атрибут “дескриптор защиты” определяет, кто
владелец файла и кто имеет доступ к нему |
* Данные |
Собственно
данные файла, его содержимое. В NTFS у файла по умолчанию есть один
безымянный атрибут данных, и он может иметь дополнительные именованные
атрибуты данных. У каталога нет атрибута данных по умолчанию, но он может
иметь необязательные именованные атрибуты данных |
Корень
индекса, размещение индекса, битовая карта (только для каталогов) |
Атрибуты,
используемые для индексов имен файлов в больших каталогах |
Расширенные
атрибуты HPFS |
Атрибуты,
используемые для реализации расширенных атрибутов HPFS для подсистемы OS/2 и
OS/2-клиентов файл-серверов Windows NT |
Атрибуты файла в записях MFT расположены в порядке
возрастания числовых значений кодов типа, причем некоторые типы атрибутов могут
встречаться в записи более одного раза: например, если у файла есть несколько
атрибутов данных или несколько имен. Обязательными для каждого файла в томе NTFS
являются атрибут стандартной информации, атрибут имени файла, атрибут
дескриптора защиты и атрибут данных. Остальные атрибуты могут встречаться при
необходимости.
Организация каталогов
Каталог в NTFS представляет
собой специальный файл, хранящий ссылки на другие файлы и каталоги.
Файл каталога разделен на блоки (2 Кб !!!), каждый
из которых содержит
·
имя
файла,
·
базовые
атрибуты и
·
ссылку
на элемент MFT, который уже предоставляет полную информацию об элементе
каталога.
Корневой каталог диска ничем не отличается от
обычных каталогов, кроме специальной ссылки на него из начала метафайла MFT.
Внутренняя структура
каталога представляет собой бинарное дерево, как в HPFS.
Количество файлов в корневом
и некорневом каталогах не ограничено.
Ограничение доступа к файлам
и каталогам
Файловая система NTFS поддерживает объектную модель
безопасности NT: NTFS рассматривает каталоги и файлы как
разнотипные объекты и ведет отдельные (хотя и перекрывающиеся) списки прав
доступа для каждого типа.
NTFS обеспечивает
безопасность на уровне файлов; это означает, что права доступа к томам,
каталогам и файлам могут зависеть от учетной записи пользователя и тех групп, к
которым он принадлежит. Каждый раз, когда пользователь обращается к объекту
файловой системы, его права доступа проверяются по списку разрешений данного
объекта. Если пользователь обладает достаточным уровнем прав, его запрос
удовлетворяется; в противном случае запрос отклоняется. Эта модель безопасности
применяется как при локальной регистрации пользователей на компьютерах с NT, так
и при удаленных сетевых запросах.
Права NTFS, назначаемые папкам:
·
нет
доступа;
·
полный
доступ;
·
право
чтения;
·
право
добавления;
·
право
добавления и чтения;
·
право
просмотра;
·
право
изменения (чтение/запись/ выполнение/ удаление)
В NTFS файлы и папки по умолчанию наследуют права
доступа, установленные для их родительской папки, однако эти права могут быть
изменены любым пользователем, которому разрешено изменять права доступа для
соответствующих объектов NTFS.
Файлы
в NTFS могут обладать следующими правами:
·
полный
доступ;
·
нет
доступа;
·
право
изменения;
·
право
чтения.
При сетевом подключении пользователей права NTFS
могут вступить в конфликт с правами общих каталогов. В такой ситуации
применяется право доступа с наиболее жесткими ограничениями.
Средства самовосстановления
Система NTFS также обладает
определенными средствами самовосстановления. NTFS поддерживает различные
механизмы проверки целостности системы, включая ведение журналов транзакций,
позволяющих воспроизвести файловые операции записи по специальному системному
журналу.
При журналировании файловых операций система
управления файлами фиксирует в специальном служебном файле происходящие
изменения. В начале операции, связанной с изменением файловой структуры, делается
соответствующая пометка. Если во время операций над файлами происходит
какой-нибудь сбой, то упомянутая отметка о начале операции остается указанной
как незавершенная. При выполнении процедуры проверки целостности файловой
системы после перезагрузки машины эти незавершенные операции будут отменены и
файлы будут приведены к исходному состоянию. Если же операция изменения данных
в файлах завершается нормальным образом, то в этом самом служебном файле
поддержки журналирования операция отмечается как завершенная.
Недостатки
файловой системы NTFS
Основной недостаток. В NTFS служебные данные
занимают много места (например, каждый элемент каталога занимает 2 Кбайт) - для
малых разделов служебные данные могут занимать до 25% объема носителя.
Þ система NTFS не может
использоваться для форматирования флоппи-дисков.
! |
Совет. Не стоит пользоваться
ею для форматирования разделов объемом менее 100 Мбайт.
В результате отказа от
разбиения всего дискового пространства на зоны, в каждой из которых хранилась
бы информация об имеющихся свободных кластерах, и введения механизма транзакций
скорость работы файловой системы NTFS существенно ниже скорости работы
системы HPFS.
Windows NT
содержит специальную утилиту CONVERT.EXE, которая
преобразует тома FAT в эквивалентные тома NTFS, однако для обратного
преобразования (из NTFS в FAT) подобных утилит не
существует. Чтобы выполнить такое обратное преобразование, вам придется
создать раздел FAT, скопировать в него файлы из раздела NTFS и затем
удалить оригиналы. Важно при этом не забывать и о том, что при копировании
файлов из NTFS в FAT теряются все атрибуты безопасности NTFS (напомним,
что в FAT не предусмотрены средства для определения и последующего хранения
этих атрибутов).