- Артикул:00-01040428
- Автор: Руссинович М., Ионеску А., Соломон Д., Йосифович П.
- ISBN: 978-5-4461-0663-9
- Тираж: 1200 экз.
- Обложка: Твердый переплет
- Издательство: Питер (все книги издательства)
- Город: Санкт-Петербург
- Страниц: 944
- Формат: 70х100 1/16
- Год: 2018
- Вес: 2503 г
- Серия: Классика computer science (все книги серии)
С момента выхода предыдущего издания этой книги операционная система Windows прошла длинный путь обновлений и концептуальных изменений, результатом которых стала новая стабильная архитектура ядра Windows 10.
Книга «Внутреннее устройство Windows» создана для профессионалов, желающих разобраться во внутренней жизни основных компонентов Windows 10. Опираясь на эту информацию, разработчикам будет проще находить правильные проектные решения, создавая приложения для платформы Windows, и решать сложные проблемы, связанные с их эксплуатацией.
Системные администраторы, зная, что находится у операционной системы «под капотом», смогут разобраться с поведением системы и быстрее решать задачи повышения производительности и диагностики сбоев. Специалистам по безопасности пригодится информация о борьбе с уязвимостями операционной системы.
Прочитав эту книгу, вы будете лучше разбираться в работе Windows и в истинных причинах того или иного поведения ОС.
Оглавление
Введение
История книги
Изменения, внесенные в седьмое издание
Практические эксперименты
Незатронутые темы
Предупреждение и предостережение
Что мы ожидаем от читателя
Структура книги
Благодарности
Список опечаток и качество книги
От издательства
Глава 1. Концепции и средства
Версии операционной системы Windows
Windows 10 и будущие версии Windows
Windows 10 и OneCore
Фундаментальные концепции и термины
Windows API
Разновидности Windows API
Windows Runtime
. NET Framework
Службы, функции и процедуры
Процессы
Потоки
Волокна
Планирование пользовательского режима (UMS)
Задания
Виртуальная память
Режим ядра и пользовательский режим
Гипервизор
Микропрограммы
Службы терминалов и сеансы
Объекты и дескрипторы
Безопасность
Реестр
Юникод
Изучение внутреннего устройства Windows
Системный монитор и Монитор ресурсов
Отладка ядра
Средства отладки для Windows
Программа LiveKd
Windows Software Development Kit
Windows Driver Kit
Средства Sysinternals
Заключение
Глава 2 . Архитектура системы
Требования и цели проектирования
Модель операционной системы
Обзор архитектуры
Портируемость
Симметричная многопроцессорная архитектура
Масштабируемость
Различия между клиентскими и серверными версиями
Отладочная сборка
Обзор архитектуры безопасности на основе виртуализации
Ключевые компоненты системы
Подсистемы среды и DLL среды
Другие подсистемы
Ядро
Слой абстрагирования оборудования (HAL)
Драйверы устройств
Системные процессы
Заключение
Глава 3 . Процессы и задания
Создание процесса
Аргументы функций CreateProcess
Создание современных процессов Windows
Создание других разновидностей процессов
Внутреннее устройство процессов
Защищенные процессы
Облегченные защищенные процессы (PPL)
Сторонняя поддержка PPL
Минимальные процессы и процессы Pico
Минимальные процессы
Процессы Pico
Трастлеты (безопасные процессы)
Структура трастлета
Метаданные политики трастлетов
Атрибуты трастлета
Встроенные системные трастлеты
Идентификация трастлета
Изолированные службы пользовательского режима
Системные функции, доступные для трастлетов
Порядок работы функции CreateProcess
Этап 1. Преобразование и проверка параметров и флагов
Этап 2 . Открытие образа, предназначенного для исполнения
Этап 3 . Создание объекта процесса исполняющей системы Windows
Этап 4 . Создание исходного потока, а также его стека и контекста
Этап 5 . Выполнение инициализации, относящейся к подсистеме Windows
Этап 6 . Начало выполнения исходного потока
Этап 7 . Выполнение инициализации процесса в контексте нового процесса
Завершение процесса
Загрузчик образов
Ранняя стадия инициализации процесса
Разрешение имен DLL-библиотек и перенаправление
База данных загруженных модулей
Анализ импорта
Инициализация процесса после импортирования
Технология SwitchBack
Наборы API-функций
Задания
Ограничения заданий
Работа с заданиями
Вложенные задания
Контейнеры Windows (серверные участки)
Заключение
Глава 4 . Потоки
Создание потоков
Внутреннее устройство потоков
Структуры данных
Рождение потока
Изучение активности потока
Ограничения, накладываемые на потоки защищенного процесса
Планирование потоков
Обзор организации планирования в Windows
Уровни приоритета
Состояния потоков
База данных диспетчера
Кванты времени
Повышение приоритета
Переключения контекста
Сценарии планирования
Потоки простоя
Приостановка потока
(Глубокое) замораживание
Выбор потока
Многопроцессорные системы
Выбор потока на многопроцессорных системах
Выбор процессора
Неоднородное планирование (big . LITTLE)
Групповое планирование
Распределенное справедливое долевое планирование
Ограничения долевого использования процессоров
Динамическое добавление и удаление процессоров
Рабочие фабрики (пулы потоков)
Создание рабочей фабрики
Заключение
Глава 5 . Управление памятью
Знакомство с диспетчером памяти
Компоненты диспетчера памяти
Большие и малые страницы
Анализ использования памяти
Внутренняя синхронизация
Сервисные функции, предоставляемые диспетчером памяти
Состояние страниц и выделение памяти
Нагрузка подтверждения памяти и предел подтверждения
Блокировка памяти
Гранулярность выделения памяти
Общая память и отображенные файлы
Защита памяти
Предотвращение выполнения данных
Копирование при записи
Address Windowing Extensions
Кучи режима ядра (пулы системной памяти)
Размеры пулов
Анализ использования пулов
Резервные списки
Диспетчер кучи
Кучи процессов
Типы куч
Синхронизация кучи
Низкофрагментированная куча
Сегментная куча
Безопасность кучи в Windows
Средства отладки кучи
Pageheap
Отказоустойчивая куча
Структуры виртуального адресного пространства
Структура адресных пространств x86
Структура системного адресного пространства на платформе x86
Пространство сеанса на платформе x86
Записи системной таблицы страниц
Структура адресного пространства ARM
Структура адресных пространств 64-разрядных систем
Ограничения виртуальной адресации на платформе x64
Динамическое управление системным виртуальным адресным пространством
Квоты системного виртуального адресного пространства
Структура пользовательского адресного пространства
Преобразование адресов
Преобразование виртуальных адресов на платформе x86
Буфер быстрого преобразования адресов
Преобразование виртуальных адресов на платформе x64
Преобразование виртуальных адресов на платформе ARM
Обработка ошибок страниц
Недостоверные PTE-записи
Прототипные PTE-записи
Страничный ввод/вывод
Конфликтные ошибки отсутствия страниц
Кластерные ошибки страниц
Страничные файлы
Показатель подтверждения и системный лимит подтверждения
Показатель подтверждения и размер страничного файла
Стеки
Пользовательские стеки
Стеки ядра
DPC-стек
Дескрипторы виртуальных адресов
Дескрипторы виртуальных адресов процесса
Чередование дескрипторов виртуальных адресов
NUMA
Объекты разделов
Рабочие наборы
Подкачка по требованию
Компонент логической предвыборки
Политика размещения
Управление рабочими наборами
Диспетчер рабочего баланса и потока подкачки
Системные рабочие наборы
События уведомлений в памяти
База данных номеров страничных блоков
Динамика списков страниц
Приоритеты страниц
Подсистема записи измененных страниц
Структуры данных PFN-записи
Резервирование страничных файлов
Лимиты физической памяти
Лимиты памяти клиентских версий Windows
Сжатие памяти
Пример сжатия
Архитектура сжатия
Секции памяти
Комбинирование памяти
Фаза поиска
Фаза классификации
Фаза комбинирования страниц
От закрытой PTE-записи к общей
Освобождение комбинированных страниц
Анклавы в памяти
Программный интерфейс
Инициализация анклавов
Построение анклава
Загрузка данных в анклав
Инициализация анклава
Упреждающее управление памятью (супервыборка)
Компоненты
Трассировка и протоколирование
Сценарии
Приоритеты страниц и перебалансировка
Устойчивое функционирование
ReadyBoost
ReadyDrive
Отражение процессов
Заключение
Глава 6 . Подсистема ввода/вывода
Компоненты подсистемы ввода/вывода
Диспетчер ввода/вывода
Стандартная обработка ввода/вывода
IRQL и отложенные вызовы процедур
IRQL
Отложенные вызовы процедур
Драйверы устройств
Типы драйверов устройств
Структура драйвера
Объекты драйверов и устройств
Открытие устройств
Обработка ввода/вывода
Типы ввода/вывода
Пакеты запросов ввода/вывода
Запрос ввода/вывода к одноуровневому драйверу
Запросы ввода/вывода к многоуровневым драйверам
Независимый от программных потоков ввод/вывод
Отмена ввода/вывода
Порты завершения ввода/вывода
Определение приоритетов ввода/вывода
Уведомления о сеансах
Программа Driver Verifier
Параметры проверки, относящиеся к вводу/выводу
Параметры проверки, относящиеся к памяти
PnP-диспетчер
Уровень поддержки технологии Plug and Play
Перечисление устройств
Стеки устройств
Поддержка Plug and Play драйверами
Установка драйвера
Общая схема загрузки и установки драйверов
Загрузка драйверов
Установка драйвера
Windows Driver Foundation
KMDF
UMDF
Диспетчер электропитания
Режим ожидания с подключением и текущий режим ожидания
Работа диспетчера электропитания
Участие драйверов в управлении электропитанием
Управление электропитанием устройств со стороны драйверов и приложений
Инфраструктура управления электропитанием
Запросы на изменение режима электропитания
Заключение
Глава 7 . Безопасность
Оценка безопасности
Критерии оценки заслуживающих доверия компьютерных систем
Общие критерии
Системные компоненты безопасности
Безопасность на основе виртуализации
Охранник учетных данных
Device Guard
Защита объектов
Проверки прав доступа
Идентификаторы безопасности
Виртуальные учетные записи служб
Дескрипторы безопасности и управление доступом
Динамическое управление доступом
AuthZ API
Условные ACE-элементы
Права доступа и привилегии
Права учетной записи
Привилегии
Суперпривилегии
Маркеры доступа процессов и потоков
Аудит безопасности
Аудит доступа к объекту
Глобальная политика аудита
Конфигурация расширенной политики аудита
AppContainer
Общие сведения о приложениях UWP
AppContainer
Брокеры
Вход в систему
Инициализация Winlogon
Этапы входа пользователя в систему
Гарантированная аутентификация
Биометрическая среда для аутентификации пользователей
Windows Hello
Управление учетными записями пользователей и виртуализация
Файловая система и виртуализация реестра
Повышение привилегий
Снижение риска атак
Защитные меры уровня процессов
CFI
Заявления безопасности
Идентификация приложений (AppID)
AppLocker
Политики ограниченного использования программ
Защита ядра от модификации
PatchGuard
HyperGuard
Заключение