Интерфейс графических устройств WIN 32



Исполняющий модуль Win32 GDI обрабатывает определенные системные вызовы (но не все). Изначально он располагался в пространстве пользователя, но в версии NT 4.0 для увеличения производительности был перенесен в пространство ядра. Интерфейс графических устройств GDI (Graphic Device Interface) занимается управлением графическими изображениями для монитора и принтеров. Он представляет системные вызовы, позволяющие пользовательским программам выводить данные на монитор и принтеры независящими от устройств способом. Он также содержит оконный менеджер и драйвер дисплея. До версии NT 4.0 интерфейс графических устройств также находился в пространстве пользователя, но производительность при этом оставляла желать лучшего, поэтому корпорация Microsoft переместила его в ядро.

 

Системные службы

Это тонкий слой над исполняющей системой. Его функции заключаются в предоставлении интерфейса к исполняющей системе. Он принимает настоящие системные вызовы и вызывает другие части исполняющей системы для их выполнения.

При загрузке операционная система Windows 2000 загружается в память как набор файлов. Основная часть операционной системы, состоящая из ядра и исполняющей системы, храниться в файле ntoskrnl . exe. Уровень HAL представляет собой библиотеку общего доступа, расположенную в отдельном hal . dll. Интерфейс Win32 и интерфейс графических устройств хранятся вместе в третьем файле, win 32 k . sys. Наконец, загружается множество драйверов устройств. У большинства из них расширение . sys.

Подсистемы окружения

Существует три типа компонентов, работающих в режиме пользователя: динамические библиотеки DLL, подсистемы окружения и служебные процессы. Эти компоненты работают вместе, предоставляя каждому пользовательскому процессу интерфейс, отличный от интерфейса системных вызовов Windows.

Операционной системой Windows 2000 поддерживаются три различных документированных интерфейса прикладного программирования API: Win32, POSIX и OS/2. У каждого из этих интерфейсов есть список библиотек DLL (Dynamic Link Library – динамически подключаемая библиотека) и подсистем окружения заключается в том, чтобы реализовать функциональные возможности опубликованного интерфейса, тем самым, скрывая истинный интерфейс системных вызовов от прикладных программ.

На рисунке 5.4 представлены некоторые ключевые и наиболее важные файлы динамических библиотек. В каталоге \ winnt \ system 32 содержится более 800 отдельных файлов DLL общим объемом в 130 (Win XP 1260 объектов 260 Мб).

 

 

Рисунок 5.4 – Файлы динамических библиотек

 

Aрхитектура процессора Intel определяет 4 уровня привилегий для защиты кода и данных системы от случайного или намеренного изменения со стороны менее привилегированного кода. Такой метод выполнения кода называется моделью защиты Intel. Рассмотрим уровни привилегий:

1 Уровень приложения;

2 Уровень DLL(функция ОС);

3 Системный;

4 Аппаратного обеспечения

 

Уровни 1 и 3 объединяются в кольцо 3, а уровни 2 и 4 в кольцо 0 (ОС семейства Windows используют только кольца 0 и 3):

­ Кольцо 0 – это режим ядра, он максимальный.

­ Кольцо 3 – это режим пользователя, он минимальный, т.е. получает меньший доступ к процессору.

 

Режим ядра – это наиболее привилегированный режим. Программное обеспечение, выполняющееся в режиме ядра имеет:

1 прямой доступ к аппаратному обеспечению;

2 доступ ко всей памяти ПК;

3 не могут быть вытеснены в файл на жестком диске;

4 выполняется с большим приоритетом, чем процессы режима пользователя.

 

Режиму пользователя предоставляется меньше привилегий. В процессе режима пользователя характеризуются следующими особенностями:

1 не имеет прямого доступа к аппаратному обеспечению в целях защиты системы от неисправных приложений, или несанкционированного доступа ;

2 ограничены выделенным или адресным пространством, таким образом ОС обеспечивает свою целостность, процессу выделяется определенная область и выходить за пределы этой области запрещено;

3 для вызова системных сервисов используется интерфейс с прикладного программирования -API.

 

Windows использует 2 класса приоритетов:

1 класс реального времени (приоритеты от 16 до 31) – используются для выполнения основных функций ОС и обычно не применяется для приложений;

2 класс переменного приоритета (от 0 до 15) – определяет процессорный приоритет приложений.

 

Процессам могут быть присвоены следующие базовые уровни приоритетов:

1 низкий – запускает приложения с уровнем приоритета 4;

2 обычный – запускает приложения с уровнем приоритета 7;

3 высокий – 13;

4 реально во времени – уровень приоритета 24.

Не запускайте приложения с классом приоритета – реально во времени!

 

Запуск систем Windows 2000

 

Процессы, происходящие при успешном запуске компьютер; под управлением Windows 2000, перечислены ниже:

­ Самотестирование при включении (Power-On Self-Test, POST);

­ Инициализация при запуске (Initial startup process);

­ Работа загрузчика (Boot loader process);

­ Выбор операционной системы (при наличии нескольких систем);

­ Опознавание аппаратных средств;

­ Выбор конфигурации;

­ Загрузка ядра;

­ Инициализация ядра;

­ Регистрация пользователя

 

Процесс запуска начинается, когда пользователь либо включает компьютер, либо выполняет перезагрузку компьютера.

К моменту регистрации пользователя в системе компьютер уже завершает загрузку Windows 2000 и большую часть процесса инициализации. Однако полностью все процессы будут завершены только после успешной регистрации пользователя в системе.

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

Самотестирование (bootstrapping) аппаратных средств (так называемая процедура POST, Power-On Self-Test) проходит при включении питания или перезагрузке компьютер. В это время компьютер работает под управлением базовой системы ввода/вывода (Basic Input/Output System, BIOS). При возникновении проблем с аппаратными средствами или настройками уже на стадии POST, компьютер сигнализирует об этом серией звуковых сигналов. На этот случай следует иметь под рукой сопроводительную документацию, полученную от поставщика в комплекте с вашим компьютером.

Успешное завершение процедуры POST свидетельствует о корректной инициализации аппаратных средств компьютера. Теперь для запуска операционной системы требуется присутствие всех необходимых файлов. Процедура запуска системы закончится неудачей, если хотя бы один из файлов, необходимых для ее загрузки, не будет найден или окажется поврежденным.

 

Таблица 5.1 – Файлы, необходимые для запуска Windows 2000

 

Файлы Местоположение
NTLDR - управляет процессами выбора операционной системы и распознавания аппаратных средств перед инициализацией ядра Windows 2000. Корневой каталог загрузочного диска
Boot.ini - содержит информацию, позволяющую пользователю выбирать операционную систему для загрузки. Корневой каталог загрузочного диска
Bootsect.dos (только в системах с двойной загрузкой, где в качестве альтернативной операционной системы используются MS-DOS, Windows 3.1x или Windows 9x, этот файл необходим для загрузки альтернативной ОС) Корневой каталог загрузочного диска
Ntdetect.com – необходим для сбора информации о физических устройствах, подключенных на данный момент к компьютеру. Корневой каталог загрузочного диска
Ntbootdd.sys (только для SCSI) Корневой каталог загрузочного диска
Ntoskrnl.exe - ядро операционной системы %SystemfloofS6\System32
Hal . dll – необходим для низкоуровневого управления аппаратурой. %SystemfloofS6\System32
Раздел реестра SYSTEM %SystemfloofS6\System32
Драйверы устройств %SystemfloofS6\System32

 

Работа загрузчика

Загрузчик (boot loader) позволяет выбрать операционную систему, которую требуется запустить, и загружает файлы операционной системы из загрузочного раздела. Общие задачи, которые выполняет загрузчик:

­ устанавливает 32-разрядную модель памяти с прямой адресацией (flat addressing);

­ собирает данные об аппаратной конфигурации;

­ строит ее описания в памяти;

­ передает указатель на это описание в блок загрузчика.

После этого NTLDR загружает образ ядра, HAL и драйверы для устройств и файловой системы тома, с которого производится загрузка системы. Помимо всего прочего, на данном этапе производится также и загрузка некоторых драйверов, для которых равен нулю параметр реестра Start, расположенный в следующем разделе реестра:

 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ ServiceName

 

Здесь ServiceName представляет собой имя сервиса, например:

 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi

 

Функции загрузчика NTLDR

Когда NTLDR начинает работу, он очищает экран и выполняет следующие действия:

1 Переключает процессор в режим использования 32-разрядной модели памяти с прямой адресацией. Компьютеры х86 при запуске стартуют в реальном режиме, подобном режиму, в котором стартуют процессоры 8088 и 8086. Поскольку NTLDR представляет собой 32-разрядную программу, для того чтобы загрузчик смог начать выполнять какие бы то ни было действия, процессор необходимо переключить в защищенный режим.

2 Запускает соответствующую минифайловую систему. Код, предназначенный для доступа к файлам на томах FAT и NTFS, встроен в NTFS. Этот код позволяет загрузчику читать файлы, получать доступ к ним и выполнять их копирование.

3 Читает расположенный в корневом каталоге системного диска файл Boot.ini и отображает на экране соответствующее меню для выбора загружаемой операционной системы. Экран, выводимый на данном этапе загрузки, называется экраном загрузчика (boot loader screen). Если компьютер сконфигурирован для загрузки нескольких систем, и пользователь выбирает операционную систему, отличную от Windows NT/2000, то NTLDR загружает в память файл Bootsect.dos и передает ему управление. Другая операционная система стартует как обычно, поскольку файл Bootsectdos содержит копию загрузочного сектора раздела, который находился на основном разделе или логическом диске до инсталляции Windows NT/2000.

4 Если выбрана одна из версий Windows NT/2000, то выполняется Ntdetect.com.

5 Загружает и запускает ядро операционной системы Ntoskrnl.exe и передает ему информацию, собранную программой Ntdetect.com.

 

Вопросы для самоконтроля

1 Что такое WIN32 API? В чем принцип его работы?

2 В каких библиотеках динамической загрузки содержится базовый код API WIN32?

3 В чем назначение реестра?

4 Опишите структуру реестра.

5 Опишите физическую структуру операционной системы.

6 Какие существуют уровни привилегий в архитектуре процессора Intel?

7 Расскажите о классах приоритетов системы Windows.

8 Расскажите о поэтапном запуске системы.

9 Расскажите о работе и функциях загрузчика.


Дата добавления: 2018-09-22; просмотров: 219; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!