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

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

Как уже было показано, в состав 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).



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: