Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Режимы ядра_прочитайте на четверг _это следующа...docx
Скачиваний:
3
Добавлен:
27.11.2019
Размер:
75 Кб
Скачать
☆

Графическая подсистема

графическая подсистема демонстрируется в режиме ядра, хо­тя некоторая область подсистемы также представлена и в пользовательском режиме. В Windows 2000 для повышения производительности значительный объем кода графической подсистемы был перемещен из пользовательского ре­жима в режим ядра. В данном случае к понятию "графическая подсистема" относится весь программный код, предназначенный для обработки оконного интерфейса и поддерживающий видеоустройства, сканеры, принтеры и т.д.

Пользовательский режим

Подсистема Win32

Это наиболее важный компонент Windows NT, особенно для программи­стов. На основе программного интерфейса Win32 создаются другие подсисте­мы, такие, как POSIX.

Программный интерфейс приложений Win32 можно разделить на три ка­тегории.

1. Обработка оконного интерфейса и API для сообщений оконного ин­терфейса реализованы в виде динамически подключаемой библиотеки user32.dll. Эта библиотека подключается приложениями, использую­щими интерфейсы, которые предоставляются этим файлом. При этом несколько приложений во время работы задействуют только одну ко­ пию библиотеки.

2. Графический API реализован в виде динамически подключаемой биб­лиотеки gdi32.dll. В версиях Windows NT до Windows 2000 библиотека gdi32. dll являлась клиентом, подключаемым к серверному процес­су Win32 (рассматривается далее), так как соответствующие функции были реализованы в серверном процессе. А сервер Win32, в свою оче­редь, вызывал компонент режима ядра для графической подсистемы. В Windows 2000 библиотека gdi32.dll вызывает этот компонент безпосредников.

3. Базовые API, например функции открытия файла (CreateFile), чте­ния файла (ReadFile) и записи файла (WriteFile), реализованы в ди­намически подключаемой библиотеке, которая называется ntdll.dll. При необходимости эта библиотека делает вызовы к выполняемому мо­дулю Windows в режиме ядра. Для этого библиотека использует одно из 256 прерываний, поддерживаемых архитектурой Intel x86. В част­ности, используется прерывание 46 (десятичный номер 46, шестнадца-теричный — 0х2Е). Обработчик прерывания2 идентифицирует как за­прошенный API (выполнив поиск по таблице), так и передаваемые ему параметры. Если все параметры прошли проверку, обработчик вызы­вает соответствующую подсистему выполняемого модуля Windows для выполнения запрошенной операции.