- •Авторы:
- •Введение
- •Понятие информационной модели
- •Алгоритм и его свойства. Программы
- •Структура программного обеспечения персонального компьютера
- •Системное программное обеспечение
- •Инструментальное программное обеспечение
- •Языки низкого уровня
- •Языки высокого уровня
- •Прикладное программное обеспечение
- •Операционные системы
- •Что такое операционная система?
- •Обеспечение интерфейса пользователя
- •Режимы работы с компьютером
- •Виды интерфейсов пользователя
- •Основные функции операционных систем и их классификация
- •Понятие прерывания в ос
- •Файл, каталог и файловая система
- •Файлы и каталоги
- •Файловая система
- •Имена файлов и каталогов
- •Атрибуты файлов
- •Физическая организация и адресация файла
- •1. Непрерывное размещение
- •2. Связанный список кластеров
- •3. Связанный список индексов
- •4. Перечень номеров кластеров
- •Файловые системы семейства fat (fat16 и fat32) и ntfs
- •Физическая организация fat
- •Физическая организация ntfs
- •Что лучше?
- •Краткая история развития операционных систем корпорации Microsoft
- •Операционная система ms-dos
- •Состав ms-dos
- •Начальная загрузка ms-dos
- •Имена файлов
- •Шаблоны имен файлов
- •Зарезервированные имена
- •Краткое описание основных внутренних и внешних команд ms-dos
- •Внутренние команды
- •Внешние команды
- •Программы-оболочки
- •Операционная система windows
- •Общее представление об операционной системе Windows 9х и ее преимуществах
- •Загрузка операционной системы Windows
- •Файлы операционной системы
- •Драйверы Windows
- •Системный реестр
- •Пользовательский интерфейс windows 9х и понятие объекта
- •Управление манипулятором мышь
- •Указатель мыши
- •Операции с мышью
- •Элементы Рабочего стола Windows 9х
- •Окно – основной элемент интерфейса Windows
- •Установка и удаление приложений
- •Файловые менеджеры для Windows
- •Программы-упаковщики
- •Общие сведения об архиваторах
- •Принципы архивирования и программы архивации
- •Обслуживание магнитных дисков компьютера
- •Разновидности ошибок магнитных дисков и причины их возникновения
- •Программы проверки магнитных дисков на наличие ошибок
- •Программы дефрагментации жесткого диска
- •Программы очистки жесткого диска
- •Программы тестирования компьютера
- •3D Mark, 3d WinBench (тесты видеосистемы)
- •Компьютерные вирусы и антивирусная защита
- •Понятие компьютерных вирусов и их классификация
- •Защита от компьютерных вирусов
- •Заключение
- •Использованная литература
- •4 10034, Саратов, ул. Соколовая, 339
-
Физическая организация ntfs
Файловая система NTFS была разработана в качестве основной файловой системы для ОС Windows NT в начале 90-х гг. прошлого столетия с учетом опыта разработки файловых систем FAT и HPFS (основная файловая система для OS/2), а также других существовавших в то время файловых систем и является последней разработкой компании Microsoft в области файловых систем.
Структура тома NTFS
Как и файловой системе FAT файлы в NTFS записываются в виде последовательности кластеров. Кластеры в файловой системе NTFS могут принимать размеры от 512 байт до 64 Кбт. Стандартным значением длины кластера является размер 4 Кбт.
В отличие от разделов FAT все пространство тома (логического раздела) NTFS представляет собой либо файл, либо часть файла. Основой структуры тома NTFS является MFT (Master File Table) – главная таблица файлов, которая содержит, по крайней мере, одну запись для каждого файла тома, включая одну запись для самой себя, т.е. представляет собой каталог всех имеющихся файлов, причем файлы небольшого размера (менее 1500 байт) хранятся прямо в MFT – это заметно ускоряет доступ к ним.
Первые 12% диска под управлением NTFS отводятся под так называемую MFT зону – пространство, в которое растет метафайл MFT. Запись каких-либо данных в эту область невозможна. Остальные 88% диска представляют собой обычное пространство для хранения файлов.
Все файлы на томе NTFS идентифицируются номером файла, который определяется позицией файла в MFT.
Весь том NTFS состоит из последовательности кластеров, что отличает эту файловую систему от рассмотренных ранее, где на кластеры делилась только область данных. Порядковый номер кластера в томе NTFS называется логическим номером кластера (Logical Cluster Number, LCN). Файл NTFS также состоит из последовательности кластеров, при этом порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number, VCN).
Базовая единица распределения дискового пространства для файловой системы NTFS – непрерывная область кластеров, называемая отрезком. В качестве адреса отрезка NTFS использует логический номер его первого кластера, а также количество кластеров в отрезке k, т. е. пара (LCN, k). Таким образом, часть файла, помещенная в отрезок и начинающаяся с виртуального кластера VCN, характеризуется адресом, состоящим из трех чисел: (VCN, LCN, k).
Для хранения номера кластера в NTFS используются 64-разрядные указатели, что дает возможность поддерживать тома и файлы размером до 264 кластеров. При размере кластера в 4 Кбт это позволяет использовать тома и файлы, практически неограниченного размера.
Структура тома NTFS показана на рис. 4.7. Загрузочный блок тома NTFS располагается в начале тома, а его копия – в середине тома. Загрузочный блок содержит стандартный блок параметров BIOS, количество блоков в томе, а также начальный логический номер кластера основной копии MFT и зеркальной копии MFT.
Далее располагается первый отрезок MFT, который поделен на записи фиксированного размера (около 1 Кбайт), и каждая запись соответствует какому-либо файлу. Для работы файловой системы очень важны первые 16 файлов MFT (указатели на системные файлы) – они называются метафайлами, и их имена начинаются с символа «$», причем самый первый метафайл – сам MFT.
Рис.
4.7. Структура тома NTFS
Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска – восстановить его положение можно с помощью его самого, «зацепившись» за самую основу – за первый элемент MFT. В табл. 4.1 представлен список метафайлов файловой системы NTFS.
Таблица 4.1
Номер записи в MFT |
Имя системного файла |
Комментарий |
0 |
$MFT |
Главная файловая таблица, содержащая полный список файлов тома NTFS |
1 |
$MFTMIRR |
Копия первых 16-ти записей главной файловой таблицы. В обычной ситуации этот файл помещается ровно в середине раздела |
2 |
$LOGFILE |
Журнал для восстановления системы. Здесь учитываются предстоящие операции. По этому журналу операционная система с большой вероятностью сможет восстановить файловую структуру раздела |
3 |
$VOLUME |
Файл тома (метка тома, версия файловой системы, размер и т.п.) |
4 |
$ATTRDEF |
Файл содержит список стандартных атрибутов тома |
5 |
$ |
Корневой каталог. Как и обычный файл, он может увеличиваться или уменьшаться в размерах. Заметим, что все системные файлы располагаются именно в этом каталоге |
6 |
$BITMAP |
В файле содержится битовый массив учета свободного места на томе |
7 |
$BOOT |
Файл начальной загрузки |
8 |
$BADCLUS |
Файл, содержащий дефектные блоки |
9 |
$SECURE |
Информация о защите |
10 |
$UPCASE |
Таблица соответствий заглавных и прописных букв на томе |
11 |
$QUOTA |
Каталог, где содержатся файлы, используемые для дисковых квот пользователей |
12-15 |
|
Зарезервированы для будущего использования |
В NTFS файл целиком размещается в записи таблицы MFT, если это позволяет сделать его размер. В том же случае, когда размер файла больше размера записи MFT, в запись помещаются только некоторые атрибуты файла, а остальная часть файла размещается в отдельном отрезке тома (или нескольких отрезках). Часть файла, размещаемая в записи MFT, называется резидентной частью, а остальные части – нерезидентными. Адресная информация об отрезках, содержащих нерезидентные части файла, размещается в атрибутах резидентной части.
Некоторые системные файлы являются полностью резидентными, а некоторые имеют и нерезидентные части, которые располагаются после первого отрезка MFT. Нулевая запись MFT содержит описание самой MFT, в том числе и такой ее важный атрибут, как адреса всех ее отрезков. После форматирования MFT состоит из одного отрезка, но после создания первого же несистемного файла для хранения его атрибутов требуется еще один отрезок, так как изначально непрерывная последовательность кластеров MFT уже завершена системными файлами.
Из приведенного описания видно, что сама таблица MFT рассматривается как файл, к которому применим метод размещения в томе в виде набора произвольно расположенных нескольких отрезков.
Структура файлов NTFS
Понятие файла для NTFS включает в себя:
– обязательный элемент – запись в MFT. В этом месте хранится вся информация о файле, за исключением собственно данных – имя файла, размер, положение на диске отдельных фрагментов, и т.д. Если для информации не хватает одной записи MFT, то используются несколько, причем не обязательно подряд;
– опциональный элемент – потоки данных файла.
NTFS просматривает каждый файл (или каталог) как набор атрибутов файла. Такие элементы, как имя файла, информация зашиты и даже данные – все это атрибуты файла. Каждый атрибут идентифицирован кодом типа атрибута и необязательно именем атрибута, т. е. в трактовке NTFS кроме атрибутов у файла нет никаких других компонентов.
Атрибут представляется в виде потока (stream) байтов. Наиболее известные файловые менеджеры дают пользователю информацию только об ограниченном и заранее определенном наборе потоков. А размер файла, показываемый пользователю, является объемом только одного потока, который и представляет собой то, что мы привыкли традиционно называть данными файла. Получается, что текстовый документ, состоящий всего из нескольких страниц текста, может занимать не один гигабайт, скрытый в другом потоке.
Таким образом, базовая сущность у файла только одна – номер в MFT, а все остальное опционально, т.е. файл на NTFS – это более глубокое и глобальное понятие, чем то, что мы видим, просто просматривая каталоги диска.
Хотя одна из причин появления множественных потоков данных в NTFS весьма тривиальна – при работе ПК Macintosh и PC с одним и тем же сервером необходимо, чтобы файловая система сервера поддерживала формат файлов клиента, а в файловой системе Macintosh файл может иметь два потока (forks): поток данных и поток ресурсов. Почему потоков в NTFS стало много – вопрос к разработчикам.
Каждый атрибут файла NTFS состоит из полей: тип атрибута; длина атрибута; значение атрибута и, возможно, имя атрибута. Тип атрибута, длина и имя образуют заголовок атрибута.
Имеется системный набор атрибутов, определяемых структурой тома NTFS. Системные атрибуты имеют фиксированные имена и коды их типа, а также определенный формат. Могут применяться также атрибуты, определяемые пользователями. Их имена, типы и форматы задаются исключительно пользователем. Атрибуты файлов упорядочены по убыванию кода атрибута, причем атрибут одного и того же типа может повторяться несколько раз.
Существуют два способа хранения атрибутов файла – резидентное хранение в записях таблицы MFT и нерезидентное хранение вне ее, во внешних отрезках. Таким образом, резидентная часть файла состоит из резидентных атрибутов, а нерезидентная – из нерезидентных атрибутов. Сортировка может осуществляться только по резидентным атрибутам.
Системный набор включает следующие атрибуты:
– Attribute List (список атрибутов) – список атрибутов, из которых состоит файл; содержит ссылки на номер записи MFT, где расположен каждый атрибут; этот редко используемый атрибут нужен только в том случае, если атрибуты файла не умещаются в основной записи и занимают дополнительные записи MFT;
– File Name (имя файла) – этот атрибут содержит длинное имя файла в формате Unicode, а также номер входа в таблице MFT для родительского каталога; если этот файл содержится в нескольких каталогах, то у него будет несколько атрибутов типа File Name; этот атрибут всегда должен быть резидентным;
– MS-DOS Name (имя MS-DOS) – этот атрибут содержит имя файла в формате 8.3;
– Version (версия) – атрибут содержит номер последней версии файла;
– Security Descriptor (дескриптор безопасности) – этот атрибут содержит информацию о защите файла: список прав доступа ACL и поле аудита, которое определяет, какого рода операции над этим файлом нужно регистрировать;
– Volume Version (версия тома) – версия тома, используется только в системных файлах тома;
– Volume Name (имя тома) – имя тома;
– Data (данные) – содержит обычные данные файла;
– MFT bitmap (битовая карта MFT) – этот атрибут содержит карту использования блоков на томе;
– Index Root (корень индекса) – корень бинарного дерева, используемого для поиска файлов в каталоге;
– Index Allocation (размещение индекса) – нерезидентные части индексного списка бинарного дерева;
– Standard Information (стандартная информация) – этот атрибут хранит всю остальную стандартную информацию о файле, которую трудно связать с каким-либо из других атрибутов файла, например, время создания файла, время обновления и другие.
Если файл NTFS имеет небольшой размер, то он может целиком располагаться внутри одной записи MFT, имеющей, например, размер 2 Кбайт. Небольшие файлы NTFS состоят по крайней мере из следующих атрибутов (рис 4.8):
– стандартная информация (SI – standard information);
– имя файла (FN – file name);
– данные (Data);
– дескриптор безопасности (SD – security descriptor).
И
Рис.
4.8. Небольшой файл NTFS
Если данные файла не помещаются в одну запись МFТ, то этот факт отражается в заголовке атрибута Data, который содержит признак того, что этот атрибут является нерезидентным, т. е. находится в отрезках вне таблицы MFT. В этом случае атрибут Data содержит адресную информацию (LCN, VCN, k) каждого отрезка данных.
Если же файл настолько велик, что его атрибут данных, хранящий адреса нерезидентных отрезков данных, не помещается в одной записи, то этот атрибут помещается в другую запись MFT, а ссылка на такой атрибут помещается в основную запись файла. Эта ссылка содержится в атрибуте Attribute List. Сам атрибут данных по-прежнему содержит адреса нерезидентных отрезков данных.
Для сверхбольших файлов в атрибуте Attribute List могут указываться несколько атрибутов, расположенных в дополнительных записях MFT. Кроме того, может использоваться двойная косвенная адресация, когда нерезидентный атрибут будет ссылаться на другие нерезидентные атрибуты, поэтому в NTFS не может быть файлов слишком большой для системы длины.
Каталоги NTFS
Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога.
Если каталог не слишком велик, то, как и в случае с файлом, он помещается в записи MFT.
Для больших каталогов используется другой формат хранения. Внутренняя структура каталога представляет собой бинарное дерево. Это означает, что для поиска файла с данным именем в линейном каталоге операционной системе приходится просматривать все элементы каталога, пока она не найдет нужный. Бинарное же дерево располагает имена файлов таким образом, чтобы поиск файла осуществлялся более быстрым способом – с помощью получения двухзначных ответов на вопросы о положении файла. Вопрос, на который бинарное дерево способно дать ответ, таков: в какой группе, относительно данного элемента, находится искомое имя – выше или ниже? Опрос начинается со среднего элемента, и каждый ответ сужает зону поиска в среднем в два раза. Файлы отсортированы по алфавиту, и ответ на вопрос осуществляется сравнением начальных букв. Область поиска, суженная в два раза, начинает исследоваться аналогичным образом, начиная опять же со среднего элемента (рис. 4.9).
Такой
поиск методом половинного разбиения
дает в сравнении с методом линейного
поиска (поиска перебором) значительную
экономию времени поиска. Например, для
поиска одного файла среди 1000 FAT придется
осуществить в среднем 500 сравнений
(наиболее вероятно, что файл будет найден
на середине поиска), а системе на основе
дерева – всего около 12-ти (210 = 1024).
Экономия времени поиска налицо. Стоит,
однако, заметить, что в традиционной
FAT (Windows 2000 или Wind
Рис. 4.9. Принцип
поиска файлов в каталоге
Какую информацию можно получить, просто прочитав файл каталога? Ту, что выдает команда просмотра каталога. Для выполнения простейшей навигации по диску не нужно обращаться в MFT за каждым файлом, надо лишь читать самую общую информацию о файлах из файлов каталогов. Главный каталог диска – корневой – ничем не отличается от обычных каталогов, кроме специальной ссылки на него из начала метафайла MFT.