Основные подсистемы ос windows

Основные подсистемы ос windows

Операционная система Windows NT представляет собой множество отдельных модулей (подсистем), которые разработаны с учетом двух фундаментальных принципов:

  • модульность, инкапсуляция, скрытие данных, :
  • некоторые подсистемы функционируют в привилегированном режиме процессора (kernel mode), а остальные в режиме (user mode).

Первый принцип подразумевает, что каждая подсистема отвечает за отдельную функцию всей системы и все другие потоки — другие части ОС или приложения пользователя, общаются с ней с помощью одного и того же хорошо продуманного интерфейса. Реализация принципа делает невозможными какие-то другие способы (back doors) доступа к критическим для функционирования системы структурам данных. Кроме того, такой подход дает возможность легко производить усовершенствование (upgrade) системы, так как подсистемы, удовлетворяющие заранее известному интерфейсу, можно заменять без какого-либо ущерба для системы.

Для оценки важности второго принципа необходимо пояснить суть режимов выполнения команд kernel mode и user mode. В режиме ядра (kernel mode) вся память доступна и все команды выполнимы. Это привилегированный режим по сравнению с режимом user mode, когда система проверяет права доступа потока при каждом его обращении к памяти. Режим выполнения user mode значительно более надежен, но требует дополнительных затрат, которые снижают общую производительность процесса. В литературе режим ядра иногда называют режимом супервизора или режимом Ring(). Степени защиты памяти называют кольцами, а нулевое кольцо обозначает самый привилегированный аппаратный уровень. Вы можете встретить также обозначения PL=0 (Privilege Level) для kernel mode и PL = 3 для user mode. Если операционная система выполняет первый принцип и большинство ее модулей выполняется в режиме user mode, то говорят, что ОС является риге microkemel-системой. Возможны две версии перевода: «имеет чистое микроядро» и «настоящая microkernel-система». Если система удовлетворяет только первому принципу, то ее называют macrokernel OS. Большинство коммерческих ОС не выполняет второй принцип, так как они хотят быть быстрыми. Windows сразу примкнула к сторонникам microkernel OS, так как здесь соображения надежности поставлены на более высокое место.

На рис. 12.9 приведена схема, иллюстрирующая архитектуру (состав подсистем) Windows NT. Подсистема Win32 Subsystem состоит из пяти модулей:

  • Window Manager— компонент, который управляет вводом и выводом на экран. Этот модуль имеет и другое имя — User. Он и располагается в библиотеке User32.dll;
  • Graphics Device Interface (GDI) — библиотека функций и структур, которые реализуют рисование в контексте устройства. Контекст устройства — это логическая структура, не зависящая от физического устройства и позволяющая пользоваться максимальными возможностями и средствами для вывода графики. Вывод в конкретное физическое устройство производится с помощью драйвера устройства. Система при этом преобразовывает и, возможно, искажает информацию с учетом ограничений, характерных для конкретного устройства. Поэтому реальная картина может отличаться от идеальной, созданной в контексте устройства. Различают шесть инструментов GDI, с помощью которых осуществляется рисование: Pen, Brush, Font, Bitmap, Palette и Region;
  • Graphics Device Drivers (GDD) — аппаратно-зависимые драйверы, которые осуществляют связь с конкретными физическими устройствами ввода и вывода;
  • Console — компонент, который поддерживает текстовый режим вывода в окно;
  • Operating System Functions — функции, которые поддерживают все другие компоненты подсистемы Win32.

Рис. 12.9. Архитектура Windows

Каждый компонент расположен в отдельном DLL-файле. Все они выполнялись в режиме user mode. Однако теперь (в NT 4.0) большинство подсистем выполняется в режиме kernel mode. При этом утверждается, что при переносе блоков из области user mode в область kernel mode надежность системы не снижается благодаря особым усилиям компании Microsoft, которая проявляет особую осторожность при создании такой части ОС, как GDD (Graphics Device Olivers).

Вы знаете, что многие OEM-драйверы (Original Equipment Manufacturers) пишутся не в стенах компании, а другими разработчиками. Выполнение кодов этих, возможно, содержащих ошибки драйверов в режиме kernel mode, когда нет преград, может обрушить всю систему.

Разработчики системы утверждают, что Windows NT является удивительно модульной и инкапсулированной системой, то есть слабозависящей от неожиданных изменений ситуации. Например, она не зависит от размера страницы page-файла. При загрузке системы, точнее, выполнении модуля NTDetect.com, который вы можете видеть в корневом каталоге системного диска, она определяет оптимальный размер страницы. Размер зависит от архитектуры процессора, то есть конкретной платформы. Система, например, может переключиться с размера 4К на 16К. При этом она продолжает надежно работать, несмотря на достаточно радикальную перемену в своей архитектуре.

Читайте также:  Linux read only filesystem

Функции некоторых подсистем: Virtual Memory Manager (Менеджер виртуальной памяти), Process Manager (Менеджер процессов) мы уже пояснили. Process Manager, кроме рассмотренных функций обеспечивает вместе с Virtual Memory Manager и Security Model (Модель защиты) защиту процессов друг от друга. Подсистема Object Manager (Менеджер объектов) создает, управляет и уничтожает объекты Windows NT Executive. Это абстрактные типы данных, используемые для представления таких ресурсов системы, как файлы, директории, разделяемые сегменты памяти, процессы, потоки, глобальное пространство имен и др. Благодаря модульной структуре подсистемы в нее могут быть легко добавлены и другие новые объекты.

I/O Manager (Менеджер ввода-вывода) состоит из серии компонентов, таких как файловая система, сетевой маршрутизатор и сервер, система драйверов устройств, менеджер кэша. Стандартный интерфейс позволяет одинаковым образом общаться с любым драйвером. Здесь в полной мере проявляются преимущества многослойной (multi-layered) архитектуры.

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

Hardware Abstraction Layer (Аппаратный уровень абстракции) — HAL является изолирующим слоем между программным обеспечением, поставляемым разными производителями, и более высокими абстрактными слоями ОС. Благодаря HAL

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

Основные подсистемы ос windows

Структура операционной системы.

Архитектура операционных систем Windows XP и Windows Server 2003 является модульной. Структурно ее можно разделить на две части.
Первая часть работает в режиме ядра (kernel mode) и называется исполнительной системой Windows (Windows executive). Компоненты режима ядра обладают следующими функциональными возможностями:

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

Вторая часть работает в так называемом режиме пользователя (user mode) Эту часть составляют защищенные подсистемы ОС. Особенности процессов пользовательского режима:

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

Защищенные подсистемы — это серверные процессы пользовательского режима, создаваемые ОС во время загрузки. После создания они функционируют постоянно, обрабатывая сообщения от прикладных процессов и других подсистем.

В Windows два типа защищенных подсистем.

1. Подсистемы среды. Под такими подсистемами понимаются программы-серверы пользовательского режима, реализующие программный интерфейс некоторой операционной системы. Главнейшей подсистемой этого типа является Win32. К ее функциям относятся:

  • предоставление приложениям стандартного программного интерфейса к функциям ОС;
  • реализация графического пользовательского интерфейса;
  • управление пользовательским вводом/выводом.

К подсистемам среды относятся также подсистемы POSIX и OS/2.

2. Внутренние подсистемы. К этому типу относятся подсистемы, выполняющие важные функции ОС. Вот основные.

  • Подсистема безопасности. Осуществляет регистрацию правил контроля доступа, поддержку базы данных учетных записей пользователей, прием регистрационной информации и инициализацию процесса аутентификации пользователей.
  • Служба рабочей станции. Предоставляет приложениям механизм доступа к сетевым ресурсам, таким как файлы, папки, принтеры и т. п.
  • Служба сервера. Обслуживает входящие из сети запросы на доступ к ресурсам компьютера, например, к файлам и папкам.
Читайте также:  Kodi для windows 4pda

Исполнительная система и уровень абстрагирования от оборудования.

В состав исполнительной системы входят следующие элементы.

  • Справочный монитор защиты (Security Reference Monitor, SRM). Гарантирует выполнение политики защиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит доступа к ним.
  • Диспетчер процессов (Process Manager). Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.
  • Диспетчер межпроцессного взаимодействия (Interprocess Communication Manager, IPC Manager). Обеспечивает взаимодействие между подсистемами режима пользователя и исполнительной подсистемы.
  • Диспетчер виртуальной памяти (Virtual memory manager, VMM). Реализует виртуальную память — схему управления памятью, которая предоставляет каждому процессу большое собственное адресное пространство и защищает это пространство от других процессов.
  • Ядро (Kernel). Реагирует на прерывания и исключения, выполняет межпроцессорную синхронизацию и предоставляет набор элементарных объектов и интерфейсов, используемый остальными частями исполнительной системы для реализации объектов более высокого уровня.
  • Подсистема ввода/вывода (I/O Subsystem). Состоит из группы компонентов, отвечающих за выполнение ввода/вывода на разнообразные устройства. Подробнее подсистема ввода/вывода рассматривается в следующих разделах.
  • Диспетчер объектов (Object manager). Создает, поддерживает и уничтожает объекты исполнительной системы Windows — абстрактные типы данных, представляющие системные ресурсы.
  • Диспетчер электропитания (Advanced Configuration and Power Interface Manager, ACPI-manager). Управляет электропитанием устройств, координирует запросы устройств, связанные с изменением режима электропитания.
  • Диспетчер Plug and Play (PnP-manager). Обеспечивает распознавание PnP-устройств после процесса загрузки ОС, управляет их драйверами, предоставляет интерфейс средствам пользовательского режима для поиска устройств, их установки и удаления, а также остановки и возобновления их работы.
  • Диспетчер окон и интерфейс графических устройств (Graphic Device Interface, GDI). Управляет отображением окон, обеспечивает прием ввода от клавиатуры и мыши, распределяя информацию приложениям.

Компоненты исполнительной системы реализованы как независимые от аппаратной платформы модули. Это обеспечивается наличием уровня абстрагирования от оборудования и делает ОС максимально переносимой.
Уровень абстрагирования от оборудования (Hardware Abstract Level, HAL). Представляет собой программную прослойку между исполнительной системой Windows и аппаратной платформой, на которой работает ОС. HAL скрывает аппаратно-зависимые детали, такие как интерфейсы ввода/вывода, контроллеры прерываний и механизмы межпроцессорных связей. Вместо того чтобы обращаться к аппаратуре непосредственно, исполнительная система Windows вызывает функции HAL.

Системный реестр Windows.

В операционной системе Windows практически вся конфигурационная информация (приложений, служб, параметров оборудования и т. п.) хранится в системном реестре (System Registry).
Эти компоненты реестра наглядно показаны на рисунке.

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

Поддеревья включают разделы. Разделы и подразделы, в свою очередь, могут включать подразделы и параметры. Разделы и параметры могут быть двух типов.

Реестр представляет собой иерархическую структуру, состоящую из поддеревьев, разделов, подразделов и параметров. Для просмотра и редактирования системного реестра Windows предусмотрены две специализированных программы — regedit и regedt32.

Использование реестра компонентами Windows.

Ниже приведены сведения об использовании системного реестра основными компонентами и приложениями Windows.

Компонент Использование системного реестра
Программа установки Программа установки Windows и другие программы установки (приложений и оборудования) добавляют данные в системный реестр. Например, при установке в реестр записываются значения многих настраиваемых параметров приложений по умолчанию. Программы установки также выполняют чтение системного реестра для определения наличия в системе необходимых компонентов
Определитель оборудования При каждом запуске компьютера, работающего под управлением Windows, определитель оборудования помещает данные аппаратной конфигурации в реестр. Эти данные включают список оборудования, обнаруженного в системе. Диагностика действующего оборудования выполняется программами Ntdetect.com и Ntoskrnl.exe
Ядро Windows В процессе загрузки ОС ядро Windows извлекает из реестра необходимые данные, например перечень загружаемых драйверов и порядок загрузки. Кроме того, программа Ntoskrnl.exe записывает в реестр собственные данные (например номер версии)
Драйверы устройств Драйверы устройств заносят в реестр и извлекают из него параметры собственного запуска и настройки обслуживаемого оборудования. Драйвер устройства сообщает об использовании тех или иных системных ресурсов, например прерываний и каналов прямого доступа к памяти, после чего эти сведения записываются в системный реестр. Кроме того, программы и драйверы устройств используют данные реестра для автоматизации установки и настройки программ
Приложения Приложения используют реестр для хранения глобальных и пользовательских настроек. Например, Microsoft Word хранит в реестре список последних открытых пользователем документов. Многие приложения, являющиеся неотъемлемой частью ОС, например Проводник , также хранят свои настройки в реестре
Читайте также:  Cd rom linux что это

Организация системного реестра.

Верхний уровень иерархии системного реестра составляют поддеревья. Поддеревья включают разделы. Разделы и подразделы, в свою очередь, могут включать подразделы и параметры.

Реестр Windows содержит два поддерева: HKEY_LOCAL_MACHINE (хранящее параметры настройки компьютера и общие параметры настройки ПО и ОС) и HKEY_CURRENT_USER (хранящее параметры настройки ПО и ОС текущего пользователя). Однако, чтобы облегчить поиск сведений в реестре, программы редактирования реестра выводят пять поддеревьев, которые перечислены ниже.

Поддерево реестра Описание
HKEY_LOCAL_MACHINE Содержит информацию о конфигурации оборудования компьютера, ОС и ПО. Параметры конфигурации ПО являются общими для всех пользователей компьютера
HKEY_CLASSES_ROOT Содержит информацию о конфигурации COM-компонентов и OLE-объектов. Является ссылкой на разделы HKEY_LOCAL_MACHINE\SOFTWARE\Classes и HKEY_CURRENT_USER\SOFTWARE\Classes . Если какое-либо значение существует в обоих разделах, то значение из поддерева HKEY_CURRENT_USER перекрывает значение из поддерева HKEY_LOCAL_MACHINE
HKEY_CURRENT_USER Содержит информацию о конфигурации ОС и ПО для пользователя, работающего в системе в данный момент. Является ссылкой на раздел HKEY_USERS\ идентификатор_безопасности_пользователя
HKEY_USERS Содержит информацию о конфигурации ОС и ПО для пользователей, работающих в системе в данный момент, а также информацию о конфигурации для профиля пользователя по умолчанию
HKEY_CURRENT_CONFIG Содержит информацию о текущей аппаратной конфигурации компьютера. Является ссылкой на раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current

Поведение поддерева HKEY_CLASSES_ROOT различается в Windows 2000 и более ранних версиях. В Windows 2000 поддерево HKEY_CLASSES_ROOT ссылается на раздел HKEY_CURRENT_USER\SOFTWARE\Classes конкретного пользователя, что позволяет пользователям иметь индивидуально зарегистрированные или настроенные COM-компоненты. Изменения, вносимые в это поддерево, будут фиксироваться в разделе реестра соответствующего пользователя. В предыдущих версиях Windows изменения вносились в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Classes, что позволяло одному пользователю системы изменять параметры компонентов, зарегистрированных другими пользователями.

Кусты и файлы реестра

Куст описывает древовидную структуру непрерывного связанного набора разделов, подразделов и параметров, выходящую из вершины иерархии реестра. Куст хранится на диске в виде отдельного файла и имеет отдельный журнал. Файлы реестра хранятся в папках %systemroot%\system32\Config (системная часть) и %userprofile% (пользовательская часть).
Каждый куст реестра представлен на диске в виде двух стандартных файлов, перечисленных в таблице.

Куст реестра

Файлы

HKEY_LOCAL_MACHINE\SAM sam и sam.log HKEY_LOCAL_MACHINE\SECURITY security и security.log HKEY_LOCAL_MACHINE\SOFTWARE software и software.log HKEY_LOCAL_MACHINE\SYSTEM system и system.log HKEY_CURRENT_CONFIG system и system.log HKEY_CURRENT_USER ntuser.dat и ntuser.dat.log HKEY_USERS\.DEFAULT default и default.log

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

Каждый параметр имеет три характеристики:

  • имя параметра — используется приложениями для обращения к конкретному параметру;
  • тип данных параметра — описывает, данные какого типа хранит параметр;
  • значение параметра — непосредственно данные, которые могут быть получены при обращении к параметру.

Типы данных для параметров реестра, которые на данный момент поддерживает Windows XP, перечислены в таблице.

Тип данных

Описание

Данные в двоичном формате. Обычно этот тип используется для хранения больших объемов данных, например параметров оборудования

Целое число без знака. На хранение отводится 4 байта, чем определяется минимальное (0) и максимальное (4 294 967 296) хранимое значение. Обычно этот тип используется для хранения числовых величин и значений различных флагов

Строка с символами подстановки. Используется для хранения строковых значений, при считывании которых осуществляется преобразование символов подстановки. Например, при считывании значения %homedrive%\ Users and Settings\%username% возвращается c:\Documents and Settings\User1

Набор из нескольких строковых значений. Используется для хранения списков строк. В качестве разделителя элементов списка используются символы возврата каретки или другие разделители

Строка символов. Используется для хранения различных простых неинтерпретируемых строковых значений

Набор массивов данных. Используется для хранения больших бинарных массивов данных. В основном используется для хранения различных параметров аппаратного обеспечения компьютера

Оцените статью