Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Подсистемы и библиотеки






 

ОС Windows XP имеет две подсис­темы среды (Win32 и POSIX1), которые работают только на плат­форме х86. Каждая из указанных подсистем обеспечивает пользовательским приложениям доступ к разным службам Windows XP.

Пользовательские процессы для вызова служб операционной системы исполь­зуют библиотеки динамической связки (DLL) соответствующей подсистемы среды. Их задача заключается в транслировании документированных функ­ций среды в соответствующие недокументированные функции служб ядра операционной системы. Например, библиотека DLL подсистемы Win32 ис­пользует функции Win32 API, библиотека системы POSIX, соответственно, функции POSIX 1003.1 API.

Главными компонентами подсистемы Win32 являются процессы подсисте­мы среды и драйвер режима ядра. Процесс подсистемы среды поддерживает:

- консольные (текстовые) окна;

- создание и удаление процессов и потоков;

- работу виртуальной 16-разрядной DOS -машины;

- прочие функции MS-DOS.

Драйвер режима поддерживает:

- менеджер окон, который управляет: отображением окон, выводом на экран, вводом с клавиатуры, от мыши и других устройств, передачей пользовательских сообщений приложениям;

- интерфейс графических устройств GDI (Graphics Device Interface) – биб­лиотеку функций для вывода на графические устройства для рисования текста, линий, фигур и манипуляций графическими объектами;

- зависимые от устройств драйверы графики, принтера и видеокарты;

- несколько библиотек DLL, которые транслируют документированные функции Win32 API в соответствующие недокументированные вызовы Ntoskrnl.exe и Win32k.sys.

Приложения вызывают стандартные функции для создания окон и кнопок на дисплее. Менеджер окон передает эти запросы драйверам графических устройств через интерфейс GDI, где они формати­руются для вывода средствами конкретных устройств. GDI обеспечивает набор стандартных функций, позволяющих приложениям общаться с графическими устройствами (включая дисплеи и принтеры), без конкретных знаний о них. GDI интерпретирует запросы приложений на графический вывод и посылает их драйверам графических дисплеев. Этот интерфейс позволяет создать код приложения, независимый от конкретных устройств их драйверов.

Файл: %SystemRoot%\SYSTEM32\Ntdll.dll является специальной систе­мой поддержки DLL -библиотек. Эта система содержит два типа функций:

Первая группа функций обеспечивает интерфейс к службам Windows XP, которые могут быть вызваны из пользовательского режима. Существует более 200 таких функций, например NtCreateFile, NtSetEvent и т.д. Для каждой из них имеется точка входа в Ntdll.dll с тем же именем. Внутренний код функции содержит специфичные для архитектуры коман­ды, которые вызывают переход в режим ядра для обращения к реальным службам ОС, код которых содержится в Ntoskrnl.exe.

Вторая группа функций содержит большое количество функций под­держки: загрузчик исполняемых модулей, коммуникационные функции для процессов подсистемы Win32, библиотека функций реального време­ни пользовательского режима, диспетчер вызовов асинхронных процедур АРС (Asynchronous Procedure Call, асинхронный вызов процедур) пользо­вательского режима, диспетчер исключений.

Адресное пространство компьютера от 2 до 4 Гбайт под управлением ОС Windows XP занимает ядро ОС (нулевое кольцо защиты микропроцессора). Системный сервер функционирует в адресном пространстве, невидимом для программ Win32. Здесь происходит проверка действительности параметров вызова и исполняется подлинный системный код. Такая организация обес­печивает высокую степень безопасности, но иногда приводит к существен­ным накладным расходам. Каждая программа Win32 видит неструктуриро­ванное адресное пространство размером 2 Гбайт. Данную область памяти прикладных программ называют памятью третьего кольца защиты микро­процессора. К этой памяти может иметь доступ кроме исполняе­мого приложения и операционная система. Сама программа отобража­ется в область между 64 Кбайт и 2 Гбайт. Первые 64 Кбайт недоступны. Верхняя область принадлежащего программе пространства содержит код, который воспринимается ею как системные DLL. На самом деле, это за­глушки – DLL клиентской стороны, которые выполняют пере­направление вызовов. Когда программа вызывает функцию API, DLL кли­ентской стороны передает вызов отдельному системному процессу.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.