Что такое подсистема окружения

Текст лекции. Подсистемы окружения

Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения

Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения

Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения

Как уже было показано, в состав Windows 2000 входит три подсистемы окружения Win32, POSIX и OS/2.

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

— процесса подсистемы окружения (Csrss.exe), предоставляющего:

o поддержку консольных (текстовых) окон,

o поддержку создания и удаления процессов и потоков,

o другие функции типа GetTempFile, DefineDosDevice, TxitWindowsEx, а также некоторые функции поддержки естественных языков,

— драйвера режима ядра (Win32k.sys), включающего:

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

DLL-модулей подсистем (Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll), транслирующих вызовы документированных функций Win32 API в вызовы соответствующих недокументированных сервисов режима ядра из Ntoskrnl.exe и Win32.sys,

— драйверов графических устройств, представляющих собой специфические для конкретного оборудования драйверы дисплея, принтера и минипорт-драйверы видеокарт.16.12.14

Подсистема POSIX (Portable Operating System Interface Based on Unix – переносимый интерфейс операционной системе на основе UNIX) – это совокупность международных стандартов на интерфейсы операционных систем типа UNIX. Набор функций, доступный приложениям POSIX по умолчанию, строго ограничен сервисами, определяемыми стандартом POSIX.1. Эти ограничения заключаются в том, что приложение POSIX не может создать поток или окно в Windows 2000, а также не может использовать RPC (Remote Procedure Call – стандарт сетевого программирования, позволяющий создавать приложения, состоящие из произвольного числа процедур, часть из которых выполняется локально, а часть – на удаленных компьютерах через сеть) и сокеты (конечная точка коммуникационного соединения).

Подсистема OS/2, как и подсистема POSIX, обладает ограниченной функциональностью и поддерживает лишь 16-разрядные приложения OS/2 версии 1.2 с символьным или графическим вводом-выводом. Как и подсистема POSIX, подсистема OS/2 автоматически запускается при первой активизации OS/2-совместимого приложения и продолжает работать до перезагрузки системы.

Модуль Ntdll.dll – специальная библиотека системной поддержки, необходимая в основном при использовании DLL-подсистем. Она содержит функции двух типов:

— интерфейсы диспетчера системных сервисов (System Service Dispatch Stubs) к сервисам исполнительной системы Windows 2000,

— внутренние функции поддержки, используемые подсистемами, DLL подсистем и другими компонентами операционной системы.

Первая группа функций предоставляет интерфейс к сервисам исполнительной системы Windows 2000, которые можно вызывать из пользовательского режима. Таких функций более 200, например, NtCreateFile, NtSetEvent и т. д. Большинство из этих функций доступно через Win32 API, но некоторые из них доступны только для внутреннего применения. Для каждой из функций в Ntdll существует точка входа с именем функции. В коде функции содержится специфическая для конкретной аппаратуры команда перехода в режим ядра для вызова системных сервисов, которая после проверки некоторых параметров вызывает уже настоящий сервис режима ядра из Ntoskrnl.exe.

Ntdll включает также множество функций поддержки, например:

— загрузчик образов (функции, имена которых начинаются с Ldr),

— функции для взаимодействия с процессом подсистемы Win32 (функции, имена которых начинаются с Csr),

— универсальные процедуры библиотек времени выполнения (функции, имена которых начинаются с Rtl),

— диспетчер АРС (Asynchronous Procedure Call) пользовательского режима и

Исполнительная система (Executive) находится на верхнем уровне Ntoskrnl.exe (ядро располагается на более низком уровне). В ее состав входят следующие функции:

— экспортируемые функции, доступные для вызова из пользовательского режима, называемые системными сервисами и экспортирующиеся через Ntdll; большинство сервисов доступно через Win32 API или API других подсистем окружения, однако, некоторые из них недоступны через документированные функции (например, LPCLocal Procedure Call, локальный вызов процедуры, функции запросов типа NtQueryInformationxxx, специализированные функции типа NtCreatePagingFile и т. д.),

— экспортируемые функции, доступные для вызова только из режима ядра и описанные в Windows 2000 DDK (Driver Development Kit) или в Windows 2000 IFS (Installable File System) Kit,

Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения

— экспортируемые функции доступные для вызова только из режима ядра, но не описанные в Windows 2000 DDK или в Windows 2000 IFS Kit (например, функции, используемые видеодрайвером, работающим на этапе загрузки, чьи имена начинаются с Inbv),

— функции, определенные, как глобальные, но не экспортируемые символы (например, внутренние функции поддержки, вызываемые в Ntoskrnl, чьи имена начинаются с Iop – функции поддержки диспетчера ввода-вывода – или с Mi – функции поддержки управления памятью),

— внутренние функции в каком-либо модуле, не определенные как глобальные символы.

Исполнительная система состоит из следующих основных компонентов:

диспетчер конфигурации, отвечающий за управление системным реестром,

диспетчер процессов и потоков, создающий и завершающий процессы и потоки,

справочный монитор безопасности, реализующий политики безопасности на локальном компьютере (он охраняет ресурсы операционной системы и контролирует объекты во время выполнения),

диспетчер ввода-вывода, реализующий аппаратно-независимый ввод-вывод и отвечающий за пересылку ввода-вывода нужным драйверам устройств для дальнейшей обработки.

диспетчер Plug and Play, определяющий, какие драйверы нужны для поддержки конкретного устройства, и загружающий их; требования каждого устройства к аппаратным ресурсам определяются в процессе перечисления устройств (в зависимости от требований устройств диспетчер PnP распределяет такие ресурсы, как порты ввода-вывода, IRQ, каналы DMA и области памяти, а также отвечает за посылку соответствующих уведомлений об изменениях в аппаратном обеспечении системы при добавлении или удалении устройств),

диспетчер электропитания, который координирует события, связанные с электропитанием и генерирует уведомления системы управления электропитанием для драйверов (изменение энергопотребления отдельных устройств возлагается на их драйверы, но координируется диспетчером электропитания),

подпрограммы WMI (Windows Management Instrumentation – инструментарий управления Windows), позволяющие драйверам публиковать информацию о своих рабочих характеристиках и конфигурации, а также получать команды от службы WMI пользовательского режима (потребители информации WMI могут находиться как на локальной машине, так и на любом компьютере в сети),

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

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

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

диспетчер объектов, который создает, управляет и удаляет объекты и абстрактные типы данных исполнительной системы (они используются для представления таких ресурсов операционной системы, как процессы, потоки и различные синхронизирующие объекты),

механизм LPC (Local Procedure Call), который передает сообщения между клиентским и серверным процессами на одном компьютере (LPC является оптимизированной версией RPC – Remote Procedure Call) и представляет собой стандартный механизм взаимодействия между клиентскими и серверными процессами через сеть,

— набор стандартных библиотечных функций для обработки строк, арифметических операций, преобразования типов данных и обработки структур безопасности,

подпрограммы поддержки исполнительной системы, например, для выделения системной памяти, доступа к памяти с взаимоблокировкой, а также два специальных типа синхронизирующих объектов: ресурс (Recourse) и быстродействующий мьютекс (Fast Mutex).

Источник

Архитектура Windows

Общая схема архитектуры

Windows представляет собой операционную систему с гибридным ядром (см. лекцию 1 «Введение в операционные системы»). В ней основные системные функции по управлению процессами, памятью, устройствами, файловой системой и безопасностью реализованы в компонентах, работающих в режиме ядра; но существует ряд важных системных компонентов пользовательского режима, например системные процессы входа в систему, локальной аутентификации, диспетчера сеансов, а также подсистемы окружения.

Архитектура Windows представлена на рис.4.1 [5; 2].

Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения

Компоненты пользовательского режима

В пользовательском режиме работают следующие виды процессов:

Все перечисленные процессы пользовательского режима (кроме подсистемы POSIX 1 Подсистема POSIX использует библиотеку Psxdll.dll. ) для взаимодействия с модулями режима ядра используют библиотеки Windows DLL ( Dynamic Link Library – динамически подключаемая библиотека). Каждая DLL экспортирует набор Windows API функций, которые может вызывать процесс.

Основные Windows DLL следующие:

Библиотека Ntdll. dll экспортирует в большинстве своем недокументированные системные функции, реализованные, в основном, в Ntoskrnl.exe. Набор таких функций называется Native API («родной» API ).

Библиотеки Windows DLL преобразуют вызовы документированных WinAPI функций в вызовы функций Native API и переключают процессор на режим ядра.

Компоненты режима ядра

Исполнительная система и ядро содержатся в Ntoskrnl.exe (NT Operating System Kernel – ядро операционной системы NT) (по поводу использования термина » ядро » в Windows см. лекцию 1 «Введение в операционные системы»).

Исполнительная система ( Executive ) представляет собой совокупность компонентов (называемых диспетчерами – manager ), которые реализуют основные задачи операционной системы:

Ядро ( Kernel ) содержит функции, обеспечивающие поддержку компонентам исполнительной системы и осуществляющие планирование потоков (см. лекцию 7 «Планирование потоков»), механизмы синхронизации, обработку прерываний.

Взаимодействие диспетчера ввода вывода с устройствами обеспечивают драйверы (drivers) – программные модули, работающие в режиме ядра, обладающие максимально полной информацией о конкретном устройстве (драйверы подробнее рассматриваются в лекции 10 «Управление устройствами»).

Резюме

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

Источник

Обзор архитектуры и возможностей систем Windows 2000/XP/2003/Vista/2008/7

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

Над executive надстраиваются процессы пользовательского режима, обеспечивающие исполнение программ, разработанных для других ОС.

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

Ключевые термины

Plug-and-Play (PnP) – механизм автоматического распознавания изменений в конфигурации оборудования и адаптации к ним (установки соответствующих драйверов).

Краткие итоги

Первой ОС в новой линии развития Windows стала Windows NT, выпущенная в середине 1990-х гг. Windows NT, 2000 и более новые версии Windows имеют общую кодовую базу – ядро ОС.

Windows 2000 написана на C и C++. Код, зависящий от процессора, выделен в специальный API – hardware abstraction layer ( HAL ).

Ядро Windows разработано в объектно-ориентированном стиле и использует два набора системных объектов – объекты-диспетчеры и управляющие объекты.

Ядро поддерживает процессы и потоки. Используется гибкая система приоритетов, включающая поддержку потоков реального времени и разделения времени. Процессы реального времени планируются как soft real-time (без обязательности выдерживания фиксированного интервала времени ответа).

Ядро обеспечивает обработку прерываний и системный механизм исключений. Для синхронизации процессов ядра используются блокировщики типа spin locks.

Для системных вызовов процедур используется механизм LPC ( local procedure call ), обеспечивающий передачу сообщений или ссылок на общие области памяти.

Монитор безопасности использует маркеры безопасности процессов и списки управления доступом к объектам для авторизации.

Менеджер PnP отслеживает изменения в конфигурации и установку соответствующих драйверов новых устройств.

Источник

Подсистемы среды окружения и DLL — библиотеки подсистем

Роль подсистемы среды окружения заключается в предоставлении прикладным программам того или иного поднабора базовых служб исполняющей системы Windows. Каждая подсистема может предоставить доступ к различным поднаборам служб, присущих Windows. Это означает, что из приложений, построенных на использовании одной подсистемы, могут выполняться некие действия, которые не могут выполняться приложением, построенным на использовании другой подсистемы. Например, приложение Windows не может использовать SUA-функцию fork.

Каждый исполняемый образ (.exe) привязан к одной и только к одной подсистеме. При запуске образа код создания процесса исследует код типа подсистемы в заголовке образа, чтобы уведомить соответствующую подсистему о новом процессе. В Microsoft Visual C++ этот код типа указывается с помощью спецификатора /SUBSYSTEM команды link.

Как уже ранее упоминалось, пользовательские приложения не вызывают напрямую системные службы Windows. Вместо этого ими используется одна или несколько DLL-библиотек подсистемы. Эти библиотеки экспортируют документированный интерфейс, который может быть использован программами, связанными с данной подсистемой. Например, API-функции Windows реализованы в DLL-библиотеках подсистемы Windows, таких, как Kernel32.dll, Advapi32.dll, User32.dll и Gdi32.dll. А API-функции SUA реализованы в DLL-библиотеке подсистемы SUA (Psxdll.dll).

Эксперимент: просмотр типа подсистемы образа.

Тип подсистемы образа можно просмотреть с помощью средства Dependency Walker (Depends.exe) (доступно на сайте www.dependencywalker.com). Например, обратите внимание на типы образа для двух различных Windows-образов, Notepad.exe (простой текстовый редактор) и Cmd.exe (командная строка Windows):

Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения
Что такое подсистема окружения. Смотреть фото Что такое подсистема окружения. Смотреть картинку Что такое подсистема окружения. Картинка про Что такое подсистема окружения. Фото Что такое подсистема окружения

Здесь показано, что Notepad (Блокнот) является GUI-программой, а Cmd является консольной (console), или текстовой программой. И хотя это означает, что существует две разные подсистемы для GUI-программ и текстовых программ, на самом деле есть только одна подсистема Windows, и GUI-программы могут иметь консоли, а консольные программы могут отображать GUI-элементы.

Когда приложение вызывает функцию, находящуюся в DLL-библиотеке подсистемы, может реализоваться одно из трех обстоятельств:

Некоторые функции могут представлять собой комбинацию из только что перечисленных второго и третьего вариантов. В качестве примеров можно привести Windows-функции CreateProcessи CreateThread.

Источник

Обзор архитектуры и возможностей систем Windows 2000/XP/2003/Vista/2008/7

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

Над executive надстраиваются процессы пользовательского режима, обеспечивающие исполнение программ, разработанных для других ОС.

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

Ключевые термины

Plug-and-Play (PnP) – механизм автоматического распознавания изменений в конфигурации оборудования и адаптации к ним (установки соответствующих драйверов).

Краткие итоги

Первой ОС в новой линии развития Windows стала Windows NT, выпущенная в середине 1990-х гг. Windows NT, 2000 и более новые версии Windows имеют общую кодовую базу – ядро ОС.

Windows 2000 написана на C и C++. Код, зависящий от процессора, выделен в специальный API – hardware abstraction layer ( HAL ).

Ядро Windows разработано в объектно-ориентированном стиле и использует два набора системных объектов – объекты-диспетчеры и управляющие объекты.

Ядро поддерживает процессы и потоки. Используется гибкая система приоритетов, включающая поддержку потоков реального времени и разделения времени. Процессы реального времени планируются как soft real-time (без обязательности выдерживания фиксированного интервала времени ответа).

Ядро обеспечивает обработку прерываний и системный механизм исключений. Для синхронизации процессов ядра используются блокировщики типа spin locks.

Для системных вызовов процедур используется механизм LPC ( local procedure call ), обеспечивающий передачу сообщений или ссылок на общие области памяти.

Монитор безопасности использует маркеры безопасности процессов и списки управления доступом к объектам для авторизации.

Менеджер PnP отслеживает изменения в конфигурации и установку соответствующих драйверов новых устройств.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *