Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Подсистема окружения
Windows имеет три подсистемы окружения: windows Os/2 и Posix. Примечание: OS/2 удалена из windows, начиная с windows 2000 как штатная компонента. Posix не поставляется, начиная с Windows XP. Взамен идет продукт Services for Unix, т.е. системы OS/2 и POSIX запускаются и устанавливаются в случае необходимости. Подсистема Windows – компонента, без которой ОС работать не может. Обрабатывает в т.ч. клавиатурные операции, мышь и т.д. Начальная конфигурация подсистемы находится в разделе реестра SubSystems. Значения параметров: 1) Required – список подсистем, загружаемых при запуске Windows. Параметр состоит из двух частей: а) Windows – указывается спецификация файла подсистемы Windows (csrss.exe); б) Debug – не заполненный. Примечание: использование этого параметра позволяет загрузить версию Windows с возможностью выполнения некоторых функций отладчика ядра (файл boot.ini). 2) Optional – указывает, что подсистема POSIX запускается по требованию; 3) KMode – содержит имя файла win32k.sys – часть подсистемы Windows, работающей в режиме ядра. Подсистемы окружения предоставляют прикладным программам множество сервисов исполнительной системы Windows. Каждая отдельная подсистема Windows обеспечивает доступ к разным встроенным сервисам. Замечание: приложение, реализованное для одной подсистемы Windows, может не выполняться в другой. Например, Windows приложения не могут выполняться в системах OS/2 и POSIX. При запуске образа кода он получает тип подсистемы, указанный в заголовке образа и оповещает соответствующую подсистему. Смешивать в приложении вызовы разных подсистем окружения нельзя. Пользователи приложения для вызова системных сервисов обращаются далее к подсистемам DLL. DLL представляют документированный интерфейс между программами и вызываемыми подсистемами, например, DLL подсистемы Windows реализуют функции API, DLL подсистемы - POSIX API. При вызове возможны следующие состояния: 1) функция реализована в пользовательском режиме внутри DLL подсистемы. Никаких сообщений процессу подсистема окружения не посылает. После выполнения функции в пользовательском режиме возвращает управление приложению. 2) функция требует одного или более вызова исполнительной системы Windows. Пример: ReadFile обращается к недокументированным сервисам ввода-вывода ОС несколько раз. 3) функция требует выполнения каких-либо операций в самой подсистеме окружения. В этом случае подсистема окружения выдает клиент-серверный запрос к ОС на выполнение этой операции и ждет ответа.
|