Студопедия

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

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

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






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






Состоит из следующих основных элементов:

1) процесс подсистемы окружения csrss.exe, который предоставляет следующие возможности: поддержка окон (консольных и др.), поддержка создания и удаления процессов и потоков; участвует в поддержке организации и эксплуатации 16-разрядной DOS виртуальной машины; поддержка специфических функций. связанных с созданием и удалением файлов, поддержки языков и др.

2) драйвер режима ядра Win32K.sys, включающий:

а) диспетчер окон (управляет выводом окон на экран, обрабатывает ввод с клавиатуры и мыши и др.)

б) GDI (Graphic device interface) – библиотека функций для устройств графического вывода

3) DLL модули подсистем: kernel32.dll, advapi32.dll, user32.dll транслируют вызовы документированных функций API в вызовы соответсвующих сервисов ядра. Из NTOSkernel и win32K.

4) драйверы графических устройств – для применения в конкретном оборудовании. Пример: для формирования элементов пользовательского интерфейса на экране (окон и кнопок) стандартные приложения вызывают стандартные функции, а диспетчер окон передает эти вызовы GDI, а тот – драйверам графических устройств, которые форматируют запрос в зависимости от устройства. Примечание: в Windows основная часть кода, ответственного за обработку окон и графики перенесена из контекста процесса подсистемы Windows в набор вызываемых сервисов, выполняемых в режиме ядра (начиная с Windows NT 4.0 файл win32K.sys). Это связано с тем, что процесс, поддерживающий графику, в случае его клиент-серверной организации, требовал многочисленные переключения контекстов процессов с одного на другой (значительные издержки). Поэтому наибольшая эффективность достигается, когда поддержка окон и графики полностью включена и выполняется в режиме ядра.

Подсистема POSIX (слайд 19) – Portable Operating System Interface Based On Unix (переносимый интерфейс ОС на основе Unix) – совокупность международных стандартов на интерфейсы, используемые в ОС Unix.

В Windows заложен один из стандартов POSIX: POSIX.1. Требования включения POSIX в Windows не обеспечивает охвата всего стандарта POSIX, т.е. POSIX.1 – ограниченный набор стандартов, поэтому не все приложения могут выполняться, не является полной средой программирования. Альтернатива – Windows Services For Unix. Включает инструментарий и утилиты, адаптированные из Unix, позволяет переносить в Windows Unix приложения. Замечание: это надо проверить.

Подсистема OS/2, так же как и POSIX, обладает ограниченной функциональностью и поддерживает на момент написания книги Руссиновича 16-разрядные приложения OS/2. Замечание: не поддерживает обращение приложений, которые используют так называемый расширенный ввод-вывод – инструкции прямого обращения к портам: in/out. Подсистема OS/2, использующая 32-разрядную адресацию, может предоставить приложениям OS/2 до 2 ГБ памяти (слайд 20). Структура виртуальной памяти подсистемы представлена на слайде 2 – мозаичная область, зарезервированное адресное пространство, откуда передается и куда возвращается память, используемая приложениями. Ведется таблица локальных дескрипторов с возможностью совместного использования отдельных сегментов. NT.dll – специальная библиотека системной поддержки, необходимая при функционировании DLL-подсистем. Выполняет функции двух типов: интерфейсы диспетчера системных сервисов – сервис к исполнительной системе Windows.

Функции внутренней поддержки, которые используются компонентами DLL-подсистем ОС. Первая часть функций может быть вызвана из пользовательского режима. Пример: ntcreatefile (доступна через WinAPI, но есть и недокументированные, выполняются внутри ОС). Для каждой из перечисленных функций существует точка входа с именем соответствующей функции – механизм, код внутри функции содержит специфичную для аппаратуры команду перехода в режим ядра, который обеспечивает вызов диспетчера системных сервисов, который, в свою очередь, вызывает реальный сервис ядра из ntoskrnl.exe. NT.dll включает также функции поддержки некоторых системных операций: загрузка образов, диспетчера динамически выделяемых областей памяти, диспетчера исключений и др.






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