- •Модель программного интерфейса ос windows. Понятие объекта ядра и описателя объекта ядра операционной системы Windows. Нотация программного интерфейса.
- •Понятие пользовательского режима и режима ядра операционной системы Windows. Модель виртуальной памяти процесса в пользовательском режиме и в режиме ядра операционной системы Windows.
- •Обзор архитектуры и основных модулей операционной системы Windows.
- •Системный реестр операционной системы Windows.
- •5. Основные элементы программ с оконным пользовательским интерфейсом. Минимальная программа для ос Windows с окном на экране. Создание и отображение окна.
- •Понятие оконного сообщения. Источники сообщений. Очередь сообщений. Цикл приема и обработки сообщений. Процедура обработки сообщений.
- •8. Вывод информации в окно. Механизм перерисовки окна.
- •9. Принципы построения графической подсистемы ос Windows. Понятие контекста устройства. Вывод графической информации на физическое устройство.
- •10. Рисование геометрических фигур. Графические инструменты. Управление цветом. Палитры цветов.
- •11. Растровые изображения. Вывод растровых изображений. Значки и курсоры. Вывод растровых изображений с эффектом прозрачного фона.
- •12. Вывод текста. Логические и физические шрифты.
- •13. Системы координат. Трансформации. Режимы масштабирования.
- •14. Понятие ресурсов программ. Виды ресурсов. Работа с ресурсами. Меню. Окна диалога.
- •15. Понятие динамически подключаемой библиотеки. Структура dll-библиотеки. Создание dll-библиотеки. Использование dll-библиотеки в программе. Статический и динамический импорт.
- •16. Отображение файлов в память.
- •17. Организация многозадачности в операционной системе Windows. Понятие процесса и потока. Контекст потока. Создание и завершение процессов и потоков.
- •18. Механизм приоритетов в операционной системе Windows. Класс приоритета процесса. Относительный приоритет потока. Базовый и динамический приоритеты потока.
- •19. Синхронизация потоков в пределах одного процесса. Критические секции. Спин-блокировки. Interlocked-функции.
- •20. Синхронизация потоков разных процессов. Объекты синхронизации: флаги, семафоры, события, ожидаемые таймеры, именованные и неименованные «трубы» (каналы).
- •21. Синхронизация потоков при создании общих данных с помощью двойных проверок (double-checked locking).
- •22. Синхронизация потоков с помощью мониторов Хоара.
- •24. Структуры данных общего назначения в режиме ядра. Представление строк стандарта Unicode. Представление двусвязных списков.
- •25. Понятие прерывания, исключения и системного вызова.
- •26. Аппаратные и программные прерывания. Таблица обработчиков прерываний. Понятие процедуры обработки прерываний (isr).
- •27. Программируемый контролер прерываний. Уровни прерываний. Механизм вызова прерываний. Функция KeBugCheckEx.
- •28. Исключения. Механизм обработки исключения.
- •29. Системные вызовы. Выполнение системного вызова.
- •30. Понятие отложенной процедуры (dpc). Назначение отложенных процедур.
- •31. Понятие асинхронной процедуры (apc). Назначение асинхронных процедур. Асинхронные процедуры режима ядра и пользовательского режима.
- •32. Понятие рабочего элемента ядра (Work Item). Назначение рабочих элементов.
- •33. Пулы памяти. Пул подкачиваемой памяти, пул неподкачиваемой памяти, пул сессии, особый пул. Тегирование пулов. Структура данных пула.
- •34. Оптимизация использования оперативной памяти с помощью списков предыстории (look-aside lists).
- •35. Блокирование страниц в памяти. Списки описателей памяти (mdl) и их использование
- •36. Представление объекта ядра в памяти. Менеджер объектов.
- •37. Структура драйвера операционной системы Windows. Точки входа в драйвер.
- •38. Объект, описывающий драйвер. Объект, описывающий устройство. Объект, описывающий файл. Взаимосвязь объектов.
- •39. Запрос ввода-вывода (irp). Схема выполнения ввода-вывода в стеке драйверов.
- •40. Структура api ядра ос Windows: Kernel api, Windowing api, Messaging api. Функции ZwXxx/NtXxx в пользовательском режиме и в режиме ядра.
- •42. Перехват функций ос Windows api в пользовательском режиме. Интерфейсный модуль ntdll.Dll.
- •43. Перехват вызова функций ос Windows в режиме ядра. Встроенная защита от перехвата в новейших версиях ос Windows.
Обзор архитектуры и основных модулей операционной системы Windows.
Потоки пользовательского режима выполняются в защищенных адресных пространствах процессов (хотя при выполнении в режиме ядра они получают доступ к системному пространству). Таким образом, процессы поддержки системы, сервисов, приложений и подсистем окружения имеют свое адресное пространство.
В Windows пользовательские приложения не могут вызывать родные сервисы операционной системы напрямую, вместо этого они работают с одной или несколькими DLL подсистем. Их назначение заключается в трансляции документированных функций в соответствующие внутренние вызовы системных сервисов Windows. Трансляция может осуществляться как с помощью сообщения, посылаемого процессу подсистемы окружения, обслуживающему пользовательское приложение, так и без него.
Windows включает следующие компоненты режима ядра.
Исполнительная система (executive) Windows, содержащая базовые сервисы операционной системы, которые обеспечивают управление памятью, процессами и потоками, защиту, ввод-вывод и взаимодействие между процессами.
Ядро (kernel) Windows, содержащее низкоуровневые функции операционной системы, которые поддерживают, например, планирование потоков, диспетчеризацию прерываний и исключений, а также синхронизацию при использовании нескольких процессоров. Оно также предоставляет набор процедур и базовых объектов, применяемых исполнительной системой для реализации структур более высокого уровня.
Драйверы устройств (device drivers), в состав которых входят драйверы аппаратных устройств, транслирующие пользовательские вызовы функций ввода-вывода в запросы, специфичные для конкретного устройства, а также сетевые драйверы и драйверы файловых систем.
Уровень абстрагирования от оборудования (hardware abstraction layer, HAL), изолирующий ядро, драйверы и исполнительную систему Windows от специфики оборудования на данной аппаратной платформе (например, от различий между материнскими платами).
Подсистема поддержки окон и графики (windowing and graphics system), реализующая функции графического пользовательского интерфейса (GUI), более известные как Windows-функции модулей USER и GDI. Эти функции обеспечивают поддержку окон, элементов управления пользовательского интерфейса и отрисовку графики.
Системный реестр операционной системы Windows.
Реестр – это системная база данных с информацией, необходимой для загрузки и конфигурирования системы; в ней содержатся общесистемные параметры, контролирующие работу Windows, база данных защиты и конфигурационные настройки, индивидуальные для каждого пользователя. Кроме того, реестр — это окно, через которое можно заглянуть в переменные системные данные, чтобы, например, выяснить текущее состояние аппаратной части системы (какие драйверы устройств загружены, какие ресурсы они используют и т. д.) или значения счетчиков производительности Windows. Счетчики производительности, которые на самом деле в реестре не хранятся, доступны через функции реестра. Он является источником полезной информации о внутренних структурах данных Windows, так как содержит множество параметров, влияющих на быстродействие и поведение системы.
Конфигурационные данные всегда считываются в следующих случаях.
В ходе загрузки система читает параметры, указывающие, какие драйверы устройств нужно загрузить, а различные подсистемы (вроде диспетчера памяти и диспетчера процессов) — параметры, позволяющие им настраивать себя и поведение системы.
При входе Explorer и другие Windows-компоненты считывают из реестра предпочтения данного пользователя, в том числе буквы подключенных сетевых дисков, размещение ярлыков, а также настройки рабочего стола, меню и др.
При запуске приложения считывают общесистемные параметры, например список дополнительных установленных компонентов, информацию о лицензировании, настройки для данного пользователя (меню, размещение панелей инструментов, список недавно открывавшихся документов и т. д.).
Реестр обычно модифицируется в следующих ситуациях.
Исходная структура реестра и многие настройки по умолчанию определяются его прототипной версией, поставляемой на дистрибутиве Windows и копируемой при установке новой системы.
Программы установки различных приложений создают для них настройки по умолчанию и настройки, отражающие выбор пользователя в процессе установки.
При установке драйвера устройства подсистема Plug and Play создает разделы и параметры в реестре, которые сообщают диспетчеру ввода-вывода, как запускать драйвер, а также создает другие параметры, определяющие работу этого драйвера.
Когда вы изменяете параметры приложения или системы через UI, эти изменения часто сохраняются в реестре.