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


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



ЗНАЕТЕ ЛИ ВЫ?

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



Как видно из рис. 1, Windows NT имеет три подсистемы среды (Win32, Posix и OS/2 2.1), которые работают только на платформе х86. Подсистема Win32 специфична для Windows NT и не может работать вне нее.

Каждая из подсистем обеспечивает пользовательским приложениям доступ к разным поднаборам служб Windows NT. Это означает, что некоторые вещи могут быть сделаны из приложения, построенного на одной подсистеме, и не возможны из приложения, построенного в другой подсистеме. Так, приложение для Win32 не может использовать функцию fork подсистемы Posix.

Каждый исполняемый модуль связывается с одной и только одной подсистемой. Когда начинается выполнение модуля, изучается тип кода его заголовка, что позволяет определить подсистему среды для создания новых процессов.

Пользовательские процессы не вызывают службы NT напрямую, а используют библиотеки динамических связей (DLL) соответствующей подсистемы среды. Роль библиотек, принадлежащих подсистеме среды, в том, чтобы транслировать документированные функции среды в соответствующие вызовы недокументированных служб NT. Эти библиотеки DLL экспортируют документированный интерфейс, который могут вызывать связанные с подсистемой программы. Например, библиотеки DLL подсистемы Win32 используют функции Win32 API. Библиотека DLL подсистемы Posix использует функции Posix 1003.1 API.

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

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

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

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

§ иные функции (GetTempFile, DefineDosDevice, ExitWindowsEx и др.).

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

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

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

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

§ несколько библиотек DLL, которые транслируют документированные функции Win32 API в соответствующие недокументированные вызовы NTOSKRNL.EXE и WIN32K.SYS.

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

NTDLL.DLL - это специальная система поддержки DLL - библиотек. Она содержит два типа функций.

§ Первая группа функций обеспечивает интерфейс к службам NT, которые могут быть вызваны из пользовательского режима. Существует более 200 таких функций, например NtCreateFile, NtSetEvent и т.д. Для каждой из них имеется точка входа в NTDLL.DLL с тем же именем. Внутренний код функции содержит специфичные для архитектуры команды, которые вызывают переход в режим ядра для обращения к реальным службам NT, код которых содержится в NTOSKRNL.EXE.

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

Новые черты ядра Windows 2000

Несмотря на декларируемую расширяемость архитектуры Windows NT, некоторые нововведения в WIN 2000 (plug-and-play, управление электропитанием, объекты "Задание", управление большой памятью для компьютеров Alpha) повлекли, тем не менее, серьезные структурные изменения в архитектуре ядра.

Plug-and-play

Технология Plug-and-play (PnP) поддерживается комбинацией аппаратного и программного обеспечения, позволяющей распознавать и настраивать аппаратные изменения в конфигурации почти без вмешательства пользователя. Можно динамично добавлять и удалять устройства без необходимости реконфигурации системы и знания сложного компьютерного оборудования.

Эволюция PnP. Впервые концепция PnP была реализована в ОС Windows 95, но с того времени эта технология получила существенное развитие в плане управления системой, конфигурирования устройств и управления энергопотреблением, особенно благодаря инициативной проектной группе OnNow. Одним из результатов работы этой группы стала спецификация ACPI (Advanced Configuration and Power Interface) версии 1.0, определившая новый дизайн материнских плат и BIOS, обеспечивающий управление энергопотреблением и новые конфигурационные возможности под полным управлением операционной системы.

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

Реализация в Windows 2000. При проектировании архитектуры PnP в Windows 2000 ставились две основные цели:

§ расширение существующей инфраструктуры ввода/вывода для поддержки PnP и управления энергопотреблением для работы с оборудованием по стандартам PnP;

§ создание единых интерфейсов для драйверов устройств, поддерживающих PnP и управление энергопотреблением, для классов устройств, работающих под Windows WIN 2000 и Windows 98.

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

Драйверы PnP не назначают устройствам собственные ресурсы. Вместо этого требуемые ресурсы идентифицируются системой во время распознавания устройств. Основываясь на запросах устройств на ресурсы, диспетчер PnP назначает соответствующие аппаратные ресурсы (например, порты ввода/вывода, каналы DMA и т.д.), распределяет память. Диспетчер PnP реконфигурирует назначенные ресурсы по необходимости, когда устройства добавляются к системе и запрашивают уже распределенные ресурсы. Кроме того, диспетчер PnP определяет, какие драйверы требуются для поддержки конкретных устройств, и загружает эти драйверы.

Одна из ключевых черт PnP и системы управления энергопотреблением - это динамическая обработка событий. Примерами таких событий могут быть добавление или удаление устройств, включение/выключение режима пониженного энергопотребления. PnP и система управления энергопотреблением, используя функции WDM, обрабатывают динамические события сходным образом.

Изменения в драйверах. Поддержка PnP в Windows WIN 2000 потребовала внести ряд изменений в ранее разработанную модель драйверов Windows NT:

Драйверы шины отделены от HAL для координации с изменениями и расширениями существующих компонентов режима ядра (исполняемая часть, драйверы ядра, HAL). Драйверы шины управляют шиной ввода/вывода, включая управление отдельными слотами, независимыми от устройств.

Новые методы и возможности для поддержки установки устройств и конфигурации потребовали изменения таких существующих компонентов режима пользователя, как диспетчер буфера вывода, установщики классов, приложений Control Panel, Setup. Добавлены новые компоненты для поддержки PnP как в режиме ядра, так и в режиме пользователя.

Добавлены интерфейсы PnP API для чтения и записи информации из реестра (registry). Теперь структура регистра поддерживает PnP и позволяет вносить совершенствования в будущих версиях NT, в то же время обеспечивая совместимость снизу вверх.

Windows 2000 поддерживает унаследованные драйверы, но их использование уменьшит возможности системы в области поддержки PnP. Производителям, желающим реализовать полные возможности PnP для своего оборудования и использовать одни и те же драйверы под NT и Windows 98, необходимо разработать новые драйверы, интегрирующие последние достижения технологии PnP и управления энергопотреблением.

Объект "Задание"

Windows WIN 2000 включает расширение модели процессов. "Задание" - это поименованный, безопасный, разделяемый объект, управляющий некоторыми атрибутами процессов. Его главная задача - управлять и манипулировать группой процессов как самостоятельной единицей. В ряде случаев этот объект компенсирует отсутствие в NT структурированного дерева процессов. Объект "Задание" также записывает базовую учетную информацию обо всех процессах, ассоциированных с ним, и позволяет накладывать на связанные с ним процессы: ограничения на время использования процессора в режиме пользователя; ограничение на время использования процессора в режиме пользователя каждым из процессов; максимальное число активных процессов; класс приоритета процесса "Задание".

Задания могут быть выстроены в очередь к объекту "Порт" для завершения операций ввода/вывода. Могут быть заданы границы безопасности на процессы в задании. В завершение всего, могут быть определены ограничения на пользовательские интерфейсы для процессов, например, на операции чтения и/или записи в clipboard, открытия принадлежащих потоку обработчиков окон за пределами "Задания", изменения параметров системы через функцию Win32 SystemParametersInfo.



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 346; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.233.58 (0.011 с.)