Система Orphus

Внутреннее устройство Microsoft Windows 2000

Авторы: Дэвид Соломон
Марк Руссинович
Издательство: "Русская Редакция" и "Питер", 2001
752 страницы

Материал предоставил: Игорь Сухов
Найти в магазинах

Аннотация

Содержание
Комментарии

Аннотация

Книга посвящена внутреннему устройству и алгоритмам работы основных компонентов операционной системы Microsoft Windows 2000 (в том числе серверных версий) и файловой системы NTFS 5. Детально рассмотрены и системные механизмы: диспетчеризация ловушек и прерываний, DPC, APC, LPC, RPC, синхронизация, системные рабочие потоки, глобальные флаги и др. Также описываются все этапы загрузки операционной системы и завершения ее работы. Книга состоит из 13 глав, словаря терминов (находится на компакт-диске) и предметного указателя. Книга предназначена системным администраторам, разработчикам серьезных приложений и всем, кто хочет понять, как устроена операционная система Windows 2000. На прилагаемом к книге компакт-диске содержатся системные утилиты, помогающие исследовать все аспекты внутренней работы операционной системы Microsoft Windows 2000, в том числе специальный отладчик ядра LiveKd, позволяющий вести отладку работающей системы и не требующий второго компьютера в отличие от стандартного отладчика ядра. Названия всех команд, диалоговых окон и других интерфейсных элементов операционной системы приведены как на английском языке, так и на русском (по коммерческой версии Microsoft Windows 2000 Server).

Содержание

Предыстория

Предисловие

От авторов

Введение

ГЛАВА 1 : Концепции и инструменты

Базовые концепции и термины
Win32 API
Сервисы,функции и процедуры
Процессы,потоки и задания
Виртуальная память
Режим ядра и пользовательский режим
Объекты и описатели
Безопасность
Реестр
Unicode
Изучение внутреннего устройства Windows 2000
Программное обеспечение на компакт диске
Оснастка Performance
Windows 2000 Support Tools
Ресурсы Windows 2000
Средства отладки ядра
Platform Software Development Kit (SDK)
Device Driver Kit (DDK)
Утилиты Systems Internals
Резюме

ГЛАВА 2 : Архитектура системы

Требования и цели проекта Модель операционной системы Переносимость
Симметричная мультипроцессорная обработка
Масштабируемость
Обзор архитектуры
Выпуски Windows 2000
Проверочный выпуск
Системные файлы,специфичные для многопроцессорных систем
Ключевые компоненты системы
Подсистемы окружения и их DLL
Ntdll.dll
Исполнительная система
Ядро
Уровень абстрагирования от оборудования
Драйверы устройств
Недокументированные интерфейсы
Системные процессы
Резюме

ГЛАВА 3 : Системные механизмы

Диспетчеризация ловушек
Диспетчеризация прерываний
Диспетчеризация исключений
Диспетчеризация системных сервисов
Диспетчер объектов
Объекты исполнительной системы
Структура объектов
Синхронизация
Синхронизация ядра
Синхронизация в исполнительной системе
Системные рабочие потоки
Глобальные флаги Windows 2000
LPC
Резюме

ГЛАВА 4 : Запуск и завершение работы системы

Процесс загрузки
Что предшествует загрузке
Загрузочный сектор и Ntldr
Инициализация ядра и компонентов исполнительной системы
Smss,Csrss и Winlogon
Безопасный режим
Загрузка драйверов в безопасном режиме
Программное обеспечение с поддержкой безопасного режима
Ведение протокола при загрузке в безопасном режиме
Консоль восстановления
Завершение работы системы
Крах системы
Почему происходит крах Windows 2000
<Синий экран>
Файлы аварийного дампа
Резюме

ГЛАВА 5 : Механизмы управления

Реестр
Типы данных в реестре
Логическая структура реестра
Внутренние механизмы реестра
Сервисы
Сервисные приложения
Учетные записи сервисов
Диспетчер управления сервисами
Запуск сервиса
Ошибки при запуске
Критерии успешной загрузки и последняя удачная конфигурация
Сбои сервисов
Завершение работы сервиса
Разделяемые процессы сервисов
Программы управления сервисами
Windows Management Instrumentation
Архитектура WMI
Компоненты доступа
CIM и язык Managed Object Format
Пространство имен WMI
Классы сопоставления
Реализация WMI
Защита WMI
Резюме

ГЛАВА 6 : Процессы, потоки и задания

Внутреннее устройство процессов
Структуры данных
Переменные ядра
Счетчики производительности
Сопутствующие функции
Сопутствующие утилиты
Что делает функция CreateProcess
Этап 1:открытие образа,подлежащего выполнению
Этап 2:создание объекта <процесс>
Этап 3:создание первичного потока,его стека и контекста
Этап 4:уведомление подсистемы Win32 о новом процессе
Этап 5:запуск первичного потока
Этап 6:инициализация в контексте нового процесса
Внутреннее устройство потоков
Структуры данных
Переменные ядра
Счетчики производительности
Сопутствующие функции
Сопутствующие утилиты
Что делает функция CreateThread
Планирование потоков
Обзор планирования в Windows 2000
Уровни приоритета
Сопутствующие утилиты
Приоритеты реального времени
Уровни прерываний и уровни приоритета
Состояния потоков
Квант
Структуры данных,связанные с планированием
Сценарии планирования
Переключение контекста
Поток простоя
Динамическое повышение приоритета
Объекты задания
Резюме

ГЛАВА 7 : Управление памятью

Компоненты диспетчера памяти
Конфигурирование диспетчера памяти
Исследование используемой памяти
Сервисы диспетчера памяти
Резервирование и передача страниц
Блокировка памяти
Гранулярность выделения памяти
Разделяемая память и проецируемые файлы
Защита памяти
Копирование при записи
Функции управления кучами
Address Windowing Extensions (AWE)
Системные пулы памяти
Ассоциативные списки
Утилита Driver Verifier
Структура адресного пространства
Структура пользовательского адресного пространства
Структура системного адресного пространства
Трансляция адресов
Трансляция виртуального адреса
Каталоги страниц
Таблицы страниц процессов и системы
PTE
Адрес байта в пределах страницы
Ассоциативный буфер трансляции
Physical Address Extension (PAE)
Обработка ошибок страниц
Недействительные PTE
Прототипные PTE
Операции ввода вывода,связанные с подкачкой страниц
Конфликты ошибок страницы
Страничные файлы
Дескрипторы виртуальных адресов
Рабочие наборы
Правила подкачки страниц
Управление рабочими наборами
Диспетчер настройки баланса
Системный рабочий набор
База данных PFN
Динамика списков страниц
Подсистема записи модифицированных страниц
Структуры данных PFN
Объекты разделы
Резюме

ГЛАВА 8 : Защита

Классы безопасности
Компоненты системы защиты
Защита объектов
Проверка прав доступа
Идентификаторы защиты
Маркеры
Олицетворение
Ограниченные маркеры
Дескрипторы защиты и управление доступом
Аудит безопасности
Вход в систему
Инициализация Winlogon
Этапы регистрации пользователя
Резюме

ГЛАВА 9 : Подсистема ввода-вывода

Цели разработки
Компоненты подсистемы ввода вывода
Диспетчер ввода вывода
Драйверы устройств
Диспетчер Plug and Play (PnP)
Диспетчер электропитания
Структуры данных,связанные с вводом выводом
Объекты <файл>
Объекты <драйвер> и <устройство>
Пакеты запросов ввода вывода
Порты завершения ввода вывода
Загрузка,инициализация и установка драйвера
Параметр Start
Перечисление устройств
Узлы устройств
Загрузка драйверов для узла устройств
Установка драйвера
Обработка ввода вывода
Типы ввода вывода
Запрос ввода вывода к одноуровневому драйверу
Запрос ввода вывода к многоуровневому драйверу
Как работает порт завершения ввода вывода
Синхронизация
Резюме

ГЛАВА 10 : Управление внешней памятью

Эволюция управления внешней памятью
Разбиение на разделы
Разбиение базовых дисков на разделы
Разбиение динамических дисков на разделы
Драйверы устройств внешней памяти
Драйверы дисков
Присвоение имен устройствам
Управление базовыми дисками
Управление динамическими дисками
Мониторинг производительности дисков
Управление составными томами
Перекрытые тома
Чередующиеся тома
Зеркальные тома
Тома RAID 5
Операции ввода вывода на томах
Пространство имен томов
Диспетчер монтирования
Точки монтирования
Монтирование томов
Резюме

ГЛАВА 11 : Диспетчер кэша

Основные возможности диспетчера кэша
Единый централизованный системный кэш
Диспетчер памяти
Когерентность кэша
Кэширование виртуальных блоков
Кэширование потоков данных
Поддержка восстанавливаемых файловых систем
Структура кэша
Размер кэша
Виртуальный размер кэша
Физический размер кэша
Структуры данных кэша
Общесистемные структуры данных кэша
Структуры данных кэша,индивидуальные для каждого файла
Работа кэша
Кэширование с обратной записью и отложенная запись
<Интеллектуальное> опережающее чтение
Системные потоки
Быстрый ввод вывод
Процедуры поддержки кэша
Копирование данных в кэш и из него
Кэширование с применением интерфейсов проецирования и фиксации
Кэширование с применением прямого доступа к памяти
Дросселирование записи
Резюме

ГЛАВА 12 : Файловые системы

Файловые системы Windows 2000
CDFS
UDF
FAT12,FAT16 и FAT32
NTFS
Архитектура драйвера файловой системы
Локальные FSD
Удаленные FSD
Работа файловой системы
Цели разработки и особенности NTFS
Требования к файловой системе класса <high end>
Драйвер файловой системы NTFS
Структура NTFS на диске
Тома
Кластеры
Главная таблица файлов
Структура файловых ссылок
Записи о файлах
Имена файлов
Резидентные и нерезидентные атрибуты
Индексация
Сжатие данных и разреженные файлы
Точки повторного разбора
Файл журнала изменений
Идентификаторы объектов
Отслеживание квот
Консолидированная защита
Поддержка восстановления в NTFS
Эволюция архитектуры файловых систем
Восстановление плохих кластеров в NTFS
Механизм EFS
Регистрация функций обратного вызова
Первое шифрование файла
Процесс расшифровки
Резервное копирование шифрованных файлов
Резюме

ГЛАВА 13 : Поддержка сетей

Эталонная модель OSI
Уровни OSI
Сетевые компоненты Windows 2000
Сетевые API
Именованные каналы и почтовые ящики
Windows Sockets
Remote Procedure Call (RPC)
CIFS
NetBIOS
Другие сетевые API
Разрешение имен сетевых ресурсов
Маршрутизатор многосетевого доступа
Многосетевой UNC провайдер
DNS
Драйверы протоколов
Драйверы NDIS
Разновидности минипорт драйверов NDIS
NDIS,ориентированная на логические соединения
Привязка
Многоуровневые сетевые сервисы
Удаленный доступ
Active Directory
Network Load Balancing
Служба репликации файлов
DFS
Расширения TCP/IP
Резюме

Предметный указатель

Об авторах

Комментарии

David N. Cutler

Эта книга - единственная полная работа о внтуренней структуре и рабочих механизмах Windows 2000. Авторы проделали выдающуюся работу по изучению деталей базового кода Windows NT и созданию примеров и инструментов, помогающих читателю понять работу внутренностей системы. Любой серьезный системный программист должен иметь экземпляр этой книги у себя на столе.