- •Введение
 - •Эволюция ос.
 - •Классификация ос.
 - •Краткий обзор архитектуры Windows.
 - •Основные системные файлы Windows 95, nt, 2000.
 - •Средства аппаратной поддержки управления памятью.
 - •Сегментная организация памяти.
 - •Страничная или сегментно-страничная организация памяти.
 - •Механизмы управления памятью Windows.
 - •Раздел 4. В него загружаются ядро Windows nt и драйверы устройств. Этот раздел полностью защищен и по чтению, и по записи. Регионы в адресном пространстве.
 - •Системные переменные и операционные системы.
 - •Передача физической памяти региону.
 - •Механизм выделения страниц физической памяти.
 - •Выделение физической памяти под программный код.
 - •Атрибуты защиты страниц.
 - •Стек потока.
 - •Стек потока под Windows 95, 98.
 - •Функции компилятора для контроля стека.
 - •Кучи (Heaps).
 - •Особенности кучи в Windows 95, Windows nt.
 - •Структура арены.
 - •Рассмотрим функции работы с кучей.
 - •Удаление кучи.
 - •Выделение блока памяти в определённой куче.
 - •Освобождение блока кучи.
 - •Дополнительные кучи Win32 процесса.
 - •Создание дополнительных куч для эффективного управления памятью.
 - •Локальный доступ. Создание дополнительных куч для локализации доступа.
 - •Файлы проецируемые в память (фпвп).
 - •Проецирование в память exe и dll файлов.
 - •Совместное использование статических данных несколькими экземплярами exe и dll модулей.
 - •Иерархия функций работы с памятью.
 - •Объекты kernel32.Dll.
 - •Процессы.
 - •Структуры данных процесса.
 - •Структура блока pdb.
 - •Блок kprocess.
 - •Блок переменных окружения (peb).
 - •Переменная ядра, связанная с процессами.
 - •Последовательность действий, выполняемых функцией CreateProcess.
 - •Потоки.
 - •Основные функции для работы с потоками.
 - •Управляющие структуры ос для работы с потоками.
 - •Описание структур управления потоками.
 - •Управление потоками.
 - •Лекция № 11
 - •Функции Win32 связанные с планированием.
 - •Учёт квантов времени.
 - •Сценарий планирования.
 - •Поток простоя.
 - •Динамическое повышение приоритета потока.
 - •Планирование потоков в системах с симметричной мультипроцессорной системой (smp).
 - •Синхронизация.
 - •Синхронизация потоков без использования объектов синхронизации.
 - •Синхронизация потоков.
 - •Критические секции.
 - •Работа потока с несколькими критическими секциями.
 - •Синхронизация объектов.
 - •События со сбросом вручную.
 - •События с автоматическим сбросом.
 - •Модули.
 - •Структура imte.
 - •Структура modref.
 - •Файлы. Формат pe файла.
 - •Особенности ре формата:
 - •Заголовок ре файла.
 - •Основные секции исполняемого файла.
 - •.Idata bfc0847d .Text jmp dword ptr [00040042 … call 00014408 (Вызов GetMessage) Прикладная программа
 - •Импортирование ре файлов.
 - •Эскпорт ре файлов.
 - •Лекция № 15
 - •Ресурсы ре файла.
 - •Базовые поправки ре файла.
 - •Файловые системы.
 - •Загрузочный сектор.
 - •Особенности ntfs.
 - •Новые возможности ntfs.
 - •Структура ntfs на диске.
 - •Кластеры.
 - •Главная таблица файлов.
 - •Структура файловых ссылок.
 - •Записи о файлах.
 - •Индексация имён файлов.
 - •Битовая карта.
 - •Восстанавливаемость ntfs.
 - •Журнал транзакций.
 - •Записи контрольной точки.
 - •Восстановление данных в ntfs.
 - •Проход повтора.
 - •Проход отмены.
 - •Отказоустойчивость ntfs.
 - •Словарь терминов.
 
Главная таблица файлов.
В NTFS все данные, хранящиеся на томе, содержатся в файлах. Это относится и к структурам данных, используемым для поиска и выборки файлов, к начальному загрузочному коду и битовой карте, в которой регистрируется состояние пространства всего тома (метаданные NTFS). Хранение всех видов данных в файлах позволяет файловой системе легко находить и поддерживать данные, а каждый файл может быть защищен дескриптором защиты. Кроме того, при появлении плохих секторов на диске, NTFS может переместить файлы метаданных.
Главная таблица файлов (MFT) занимает центральное место в структуре NTFS-тома. MFT реализована как массив записей о файлах. Размер каждой записи фиксирован и равен 1 Кб. Логически MFT содержит по одной строке на каждый файл тома, включая строку для самой MFT. Кроме MFT на каждом томе NTFS имеется набор файлов метаданных с информацией, необходимой для реализации структуры файловой системы. Имена всех файлов метаданных NTFS начинаются со знака доллара ($), хотя эти знаки скрыты. Так, имя файла MFT –– $Mft. Остальные файлы NTFS-тома являются обычными файлами и каталогами. Обычно каждая запись MFT соответствует отдельному файлу. Но если у файла много атрибутов или он сильно фрагментирован, для него может понадобиться более одной записи. Тогда первая запись MFT, хранящая адреса других записей, называется базовой (base file record).
При первом обращении к тому NTFS должна смонтировать его, то есть считать с диска метаданные и сформировать внутренние структуры данных, необходимые для обработки обращений к файловой системе. Чтобы смонтировать том, NTFS ищет в загрузочном секторе физический адрес MFT на диске. Запись о самой MFT является первым элементом в этой таблице, вторая запись указывает на файл в середине диска ($MftMirr), который называется зеркальной копией MFT и содержит копию первых нескольких строк MFT. Если по каким-либо причинам считать часть MFT не удастся, для поиска файлов метаданных будет использована именно эта копия MFT.
Файл
- 
	
0
$Mft – MFT
1
$MftMirr – зеркальная копия MFT
2
$LogFile – файл журнала
3
$Volume – файл тома
4
$AttrDef – таблица определения атрибутов
5
\ – корневой каталог
6
$Bitmap – файл распределения кластеров тома
7
$Boot – загрузочный сектор
8
$BadClus – файл плохих кластеров
9
$Secure – файл параметров защиты
10
$UpCase – сопоставление имён с буквами в верхнем регистре
11
$Extend – каталог расширенных метаданных
12
Не используется
…
…
15
Не используется
16
Пользовательские файлы и каталоги
 
Найдя запсиь для МFT, NTFS получает из её атрибута данных информацию о сопоставлении VCN и LCN и сохраняет ее в памяти. В каждой группе (run) хранится сопоставление VCN-LCN и длина этой группы – вот и вся информация, необходимая для того, чтобы найти LCN по VCN. Эта информация сообщает NTFS, где на диске искать группы, образующие МFT. Затем NTFS обраба-тывает записи MFT еще для нескольких файлов метаданных и открывает эти файлы. Наконец, NTFS выполняет операцию восстановления файловой системы и открывает остальные файлы метаданных. С этого момента пользователь может обращаться к данному дисковому тому.
В процессе работы системы NTFS ведет запись в другой важный файл метаданных - файл журнала с именем $LogFile. NTFS использует его для регистрации всех операций, влияющих на структуру тома NTFS, в том числе для регистрации создания файлов и выполнения любых команд вроде Copy, модифицирующих структуру каталогов. Файл журнала используется и при восстанов-лении тома NTFS после аварии системы.
Еще один элемент MFT зарезервирован для корневого каталога (также обозначаемого как «\»). Его запись содержит индекс файлов и каталогов, хранящихся в корне структуры каталогов NTFS. Когда NTFS впервые получает запрос на открытие файла, она начинает его поиск с записи корневого каталога. Открыв файл, NTFS сохраняет файловую ссылку MFT для этого файла и поэтому в следующий раз когда понадобится считать или записать тот же файл, сможет напрямую обратиться к его записи в MFT.
NTFS регистрирует распределение дискового пространства в файле битовой карты (bitmap file) с именем $Bitmap. Атрибут данных для файла битовой карты содержит битовую карту, каждый бит которой представляет кластер тома и сообщает, свободен кластер или выделен.
Файл защиты (security file) с именем $Secure хранит базу данных дескрипторов защиты, действующих в пределах тома. Дескрипторы защиты файлов и каталогов NTFS можно настраивать индивидуально, но для экономии места хранит настройки дескрипторов защиты в общем файле, который позволяет файлам и каталогам с одинаковыми параметрами защиты ссылаться на один и тот же дескриптор защиты. Такая оптимизация даст существенную экономию в большинстве сред, потому что в них целые деревья каталогов имеют одинаковые параметры защиты.
Другой системный файл, загрузочный (boot file), с именем $Boot хранит код начальной загрузки Windows 2000. Для успешного запуска системы код начальной загрузки должен находиться на диске в определенном месте. При форматировании команда format определяет это место в виде файла, создавая для него запись в MFT. При этом NTFS следует своим правилам, согласно которым все данные хранятся на диске в виде файлов. Загрузочный файл, как и файлы метаданных NTFS, может быть защищен индивидуальным дескриптором защиты, в такой модели «на диске есть только файлы» код начальной загрузки может быть изменен путем обычного файлового ввода-вывода, хотя загрузочный файл защищен от редактирования.
NTFS поддерживает файл плохих кластеров (bad-cluster file) с именем $BadClus, в котором регистрируются все сбойные участки дискового тома, и файл тома (volume file) с именем $Volume, который содержит имя тома, версию NTFS, под которую отформатирован том, и бит, устанавливае-мый при каком-либо повреждении диска. Если этот бит установлен, диск должен быть восстановлен утилитой Chkdsk. Файл сопоставления имен с буквами в верхнем регистре (uppercase file) с именем $UpCase включает таблицу трансляции букв между верхним и нижним регистрами. NTFS также поддерживает файл, содержащий таблицу определения атрибутов (attribute definition table), с именем $AttrDef; в нем определяютcя типы атрибутов, поддерживаемые томом, и указывается, являются ли они индексируемыми, следует ли их восстанавливать в ходе операции восстановления системы и т. д.
Некоторые файлы метаданных NTFS хранит в каталоге расширенных метаданных $Extend, в том числе помещая туда файл идентификаторов объектов ($ObjId), файл квот ($Quota), файл журнала регистрации изменений ($UsnJrnl) и файл точек повторного разбора ($Reparse). В этих файлах содержится информация, относящаяся к дополнительным возможностям NTFS. Файл идентификаторов объектов хранит идентификаторы объектов «файл», файл квот – значения квот и информацию о поведении томов, на которых используются квоты, файл точек повторного разбора – список файлов и каталогов, включающих данные точек повторного разбора, а в файле журнала изменений регистрируются изменения файлов и каталогов.
