Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP
и Windows 2000Предыстория XIII
Предисловие XVI
Благодарности XVII
Введение XIX
ГЛАВА 1 Концепции и инструменты
Версии
операционных систем Windows
Базовые
концепции и термины
Windows API
Сервисы,
функции и процедуры
Процессы,
потоки и задания
Виртуальная
память
Режим ядра и
пользовательский режим
Terminal Services и несколько сеансов
Объекты и
описатели
Безопасность
Реестр
Unicode
Изучение
внутреннего устройства Windows
Оснастка Performance 29
Windows Support Tools 29
Ресурсы Windows
Отладка ядра 30
Platform Software Development Kit (SDK) 36
Device Driver Kit (DDK)
Утилиты Sysinternals
Резюме 37
ГЛАВА 2 Архитектура системы
Требования и
цели проекта
Модель
операционной системы
Обзор
архитектуры
Переносимость
Симметричная
многопроцессорная обработка
Масштабируемость
Различия между
клиентскими и серверными версиями
Проверочный
выпуск
Ключевые
компоненты системы
Подсистемы
окружения и их DLL
Ntdll.dll
Исполнительная
система
Ядро
Уровень
абстрагирования от оборудования
Драйверы
устройств
Системные
процессы
Резюме
ГЛАВА 3 Системные механизмы
Диспетчеризация
ловушек
Диспетчеризация
прерываний
Диспетчеризация
исключений
Диспетчеризация
системных сервисов
Диспетчер
объектов
Объекты
исполнительной системы
Структура
объектов
Синхронизация
Синхронизация
ядра при высоком IRQL
Синхронизация при низком IRQL
Системные
рабочие потоки
Глобальные
флаги Windows
LPC
Трассировка
событий ядра
Wow64
Системные
вызовы
Диспетчеризация
исключений
Пользовательские
обратные вызовы
Перенаправление
файловой системы
Перенаправление
реестра и отражение
Запросы
управления вводом=выводом
16=разрядные
программы установки
Печать
Ограничения
Резюме
ГЛАВА 4 Механизмы управления
Реестр
Просмотр и
изменение реестра
Использование
реестра
Типы данных в
реестре
Логическая
структура реестра
Анализ и
устранение проблем с реестром
Внутренние
механизмы реестра
Сервисы
Сервисные
приложения
Учетные записи
сервисов
Диспетчер
управления сервисами
Запуск сервиса
Ошибки при
запуске
Критерии
успешной загрузки и последняя
удачная
конфигурация
Сбои
сервисов
Завершение
работы сервиса
Разделяемые
процессы сервисов
Программы управления сервисами
Windows Management Instrumentation
Архитектура WMI
Провайдеры
CIM и язык Managed Object Format
Пространство
имен WMI
Классы
сопоставления
Реализация WMI
Защита WMI
Резюме
ГЛАВА 5 Запуск и завершение работы системы
Процесс
загрузки
Что
предшествует загрузке на платформах x86 и x64
Загрузочный
сектор и Ntldr на платформах x86 и x64
Процесс
загрузки на платформе IA64
Инициализация
ядра и компонентов исполнительной системы
Smss, Csrss и Winlogon
Автоматически
запускаемые образы
Анализ проблем
при загрузке и запуске системы
Последняя
удачная конфигурация
Безопасный
режим
Консоль
восстановления
Решение
распространенных проблем загрузки
Завершение
работы системы
Резюме
ГЛАВА 6 Процессы, потоки и задания
Внутреннее
устройство процессов
Структуры
данных
Переменные ядра
Счетчики
производительности
Сопутствующие
функции
Что делает
функция CreateProcess
Этап 1:
открытие образа, подлежащего выполнению
Этап 2:
создание объекта «процесс»
Этап 3:
создание первичного потока, его стека и контекста
Этап 4:
уведомление подсистемы Windows о новом процессе
Этап 5: запуск
первичного потока
Этап 6:
инициализация в контексте нового процесса
Внутреннее
устройство потоков
Структуры
данных
Переменные ядра
Счетчики
производительности
Сопутствующие
функции
Рождение
потока
Наблюдение за
активностью потоков
Планирование
потоков
Обзор
планирования в Windows
Уровни
приоритета
Сопутствующие
утилиты
Приоритеты
реального времени
Состояния
потоков
База данных диспетчера
ядра
Квант
Сценарии
планирования
Переключение
контекста
Поток
простоя
Динамическое
повышение приоритета
Многопроцессорные
системы
Алгоритмы
планирования потоков в многопроцессорных системах
Объекты=задания
Резюме
ГЛАВА 7 Управление памятью
Введение в диспетчер памяти
Компоненты
диспетчера памяти
Внутренняя
синхронизация
Конфигурирование
диспетчера памяти
Исследование
используемой памяти
Сервисы
диспетчера памяти
Большие и малые
страницы
Резервирование
и передача страниц
Блокировка
памяти
Гранулярность выделения
памяти
Разделяемая
память и проецируемые файлы
Защита
памяти
Запрет на
выполнение
Копирование при
записи
Диспетчер
куч
Address Windowing Extensions
Системные пулы памяти
Настройка
размеров пулов
Мониторинг
использования пулов
Ассоциативные
списки
Утилита Driver Verifier
Структуры
виртуального адресного пространства
Структуры
пользовательского адресного пространства
на платформе
x86
Структура
системного адресного пространства на платформе x86
Пространство
сеанса на платформе x86
Системные PTE
Структуры
64=разрядных адресных пространств
Трансляция
адресов
Трансляция
виртуальных адресов на платформе x86
Ассоциативный
буфер трансляции
Physical Address Extension (PAE)
Трансляция
виртуальных адресов на платформе IA64
Трансляция
виртуальных адресов на платформе x64
Обработка
ошибок страниц
Недействительные
PTE
Прототипные PTE
Операции
ввода=вывода, связанные с подкачкой страниц
Конфликты
ошибок страницы
Страничные
файлы
Дескрипторы
виртуальных адресов
Объекты=разделы
Рабочие наборы
Подкачка по
требованию
Средство
логической предвыборки
Правила
размещения
Управление
рабочими наборами
Диспетчер
настройки баланса и подсистема загрузки=выгрузки
Системный
рабочий набор
База данных PFN
Динамика
списков страниц
Подсистема
записи модифицированных страниц
Структуры
данных PFN
Уведомление о
малом или большом объеме памяти
Резюме
ГЛАВА 8 Защита
Классы безопасности
Trusted Computer System Evaluation Criteria
Common Criteria
Компоненты
системы защиты
Защита объектов
Проверка прав
доступа
Дескрипторы
защиты и управление доступом
Права и
привилегии учетных записей
Права учетной
записи
Привилегии
Суперпривилегии
Аудит
безопасности
Вход в систему
Инициализация Winlogon
Этапы входа
пользователя
Политики
ограниченного использования программ
Резюме
ГЛАВА 9 Подсистема ввода-вывода
Компоненты
подсистемы ввода=вывода
Диспетчер
ввода=вывода
Типичная
обработка ввода=вывода
Драйверы
устройств
Типы драйверов
устройств
Структура
драйвера
Объекты
«драйвер» и «устройство»
Открытие
устройств
Обработка
ввода=вывода
Типы
ввода=вывода
Пакеты запроса
ввода=вывода
Запрос
ввода=вывода к одноуровневому драйверу
Запрос
ввода=вывода к многоуровневому драйверу
Порты
завершения ввода=вывода
Driver Verifier
Диспетчер Plug and Play (PnP)
Уровень
поддержки Plug and Play
Поддержка Plug and Play со стороны драйвера
Загрузка,
инициализация и установка драйвера
Установка
драйвера
Диспетчер
электропитания
Работа
диспетчера электропитания
Участие
драйверов в управлении электропитанием
Как драйвер
управляет электропитанием устройства
Резюме
ГЛАВА 10 Управление внешней памятью
Базовая
терминология
Драйверы дисков
Ntldr
Драйвер класса
дисков, порт= и минипорт=драйверы
Объекты
«устройство» для дисков
Диспетчер
разделов
Управление
томами
Базовые
диски
Динамические
диски
Управление
составными томами
Пространство
имен томов
Операции
ввода=вывода на томах
Служба
виртуального диска
Служба теневого
копирования тома
Резюме
ГЛАВА 11 Диспетчер кэша
Основные
возможности диспетчера кэша
Единый
централизованный системный кэш
Диспетчер
памяти
Когерентность кэша
Кэширование
виртуальных блоков
Кэширование
потоков данных
Поддержка
восстанавливаемых файловых систем
Управление
виртуальной памятью кэша
Размер кэша
LargeSystemCache
Виртуальный
размер кэша
Размер рабочего
набора кэша
Физический
размер кэша
Структуры
данных кэша
Общесистемные
структуры данных кэша
Структуры
данных кэша, индивидуальные для каждого файла
Интерфейсы
файловых систем
Копирование
данных в кэш и из него
Кэширование с
применением интерфейсов
проецирования и
фиксации
Кэширование с
применением прямого доступа к памяти
Быстрый
ввод=вывод
Опережающее
чтение и отложенная запись
Интеллектуальное
опережающее чтение
Кэширование с
обратной записью и отложенная запись
Дросселирование записи
Системные
потоки
Резюме
ГЛАВА 12 Файловые системы
Файловые
системы Windows
CDFS
UDF
FAT12, FAT16 и FAT32
NTFS
Архитектура
драйвера файловой системы
Локальные FSD
Удаленные
FSD
Работа файловой
системы
Драйверы
фильтров файловой системы
Анализ проблем
в файловой системе
Базовый и
расширенный режимы Filemon
Методики
анализа проблем с применением Filemon
Цели разработки
и особенности NTFS
Требования к
файловой системе класса «high end»
Драйвер
файловой системы NTFS
Структура NTFS
на диске
Тома
Кластеры
Главная таблица
файлов
Структура
файловых ссылок
Записи о файлах
Имена
файлов
Резидентные и
нерезидентные атрибуты
Сжатие данных и
разреженные файлы
Файл журнала
изменений
Индексация
Идентификаторы
объектов
Отслеживание
квот
Консолидированная
защита
Точки
повторного разбора
Поддержка
восстановления в NTFS
Эволюция
архитектуры файловых систем
Протоколирование
Восстановление
Восстановление
плохих кластеров в NTFS
Механизм EFS
Первое
шифрование файла
Процесс
расшифровки
Резервное
копирование шифрованных файлов
Резюме
ГЛАВА 13 Поддержка сетей
Сетевая
архитектура Windows
Эталонная
модель OSI
Сетевые компоненты
Windows
Сетевые API
Windows Sockets
Remote Procedure Call (RPC)
API=интерфейсы
доступа к Web
Именованные
каналы и почтовые ящики
NetBIOS
Другие сетевые
API
Поддержка
нескольких редиректоров
Маршрутизатор многосетевого доступа
Многосетевой UNC=провайдер
Разрешение
имен
DNS
WINS
Драйверы
протоколов
Расширения
TCP/IP
Драйверы
NDIS
Разновидности минипорт=драйверов NDIS
NDIS, ориентированная на логические соединения
Remote NDIS
QoS
Привязка
Многоуровневые
сетевые сервисы
Удаленный
доступ
Active Directory
Network Load Balancing
Служба
репликации файлов
DFS
Резюме
ГЛАВА 14 Анализ аварийного дампа
Почему
происходит крах Windows?
«Синий экран»
Файлы
аварийного дампа
Генерация
аварийного дампа
Windows Error Reporting
Анализ
аварийных дампов через Интернет
Базовый анализ
аварийных дампов
Notmyfault
Базовый анализ
Детальный
анализ
Средства
анализа проблем, вызывающих крах
Переполнение
буфера и особый пул
Перезапись кода
и защита системного кода от записи
Углубленный
анализ аварийных дампов
Засорение стека
Зависание или
отсутствие отклика системы
Если аварийного
дампа нет
Словарь терминов
Предметный указатель
Об авторах