Структура построения операционной системы windows
Структура операционной системы.
Архитектура операционных систем Windows XP и Windows Server 2003 является модульной. Структурно ее можно разделить на две части.
Первая часть работает в режиме ядра (kernel mode) и называется исполнительной системой Windows (Windows executive). Компоненты режима ядра обладают следующими функциональными возможностями:
- имеют доступ к оборудованию;
- имеют прямой доступ ко всем видам памяти компьютера;
- не выгружаются на жесткий диск в файл подкачки;
- имеют более высокий приоритет, нежели процессы режима пользователя.
Вторая часть работает в так называемом режиме пользователя (user mode) Эту часть составляют защищенные подсистемы ОС. Особенности процессов пользовательского режима:
- не имеют прямого доступа к оборудованию, все запросы на использование аппаратных ресурсов должны быть разрешены компонентом режима ядра;
- ограничены размерами выделенного адресного пространства, это ограничение устанавливается выделением процессу фиксированных адресов;
- могут быть выгружены из физической памяти в виртуальную на жестком диске;
- приоритет процессов данного типа ниже приоритета процессов режима ядра, это предохраняет ОС от снижения производительности или задержек, происходящих по вине приложений.
Защищенные подсистемы — это серверные процессы пользовательского режима, создаваемые ОС во время загрузки. После создания они функционируют постоянно, обрабатывая сообщения от прикладных процессов и других подсистем.
В Windows два типа защищенных подсистем.
1. Подсистемы среды. Под такими подсистемами понимаются программы-серверы пользовательского режима, реализующие программный интерфейс некоторой операционной системы. Главнейшей подсистемой этого типа является Win32. К ее функциям относятся:
- предоставление приложениям стандартного программного интерфейса к функциям ОС;
- реализация графического пользовательского интерфейса;
- управление пользовательским вводом/выводом.
К подсистемам среды относятся также подсистемы POSIX и OS/2.
2. Внутренние подсистемы. К этому типу относятся подсистемы, выполняющие важные функции ОС. Вот основные.
- Подсистема безопасности. Осуществляет регистрацию правил контроля доступа, поддержку базы данных учетных записей пользователей, прием регистрационной информации и инициализацию процесса аутентификации пользователей.
- Служба рабочей станции. Предоставляет приложениям механизм доступа к сетевым ресурсам, таким как файлы, папки, принтеры и т. п.
- Служба сервера. Обслуживает входящие из сети запросы на доступ к ресурсам компьютера, например, к файлам и папкам.
Исполнительная система и уровень абстрагирования от оборудования.
В состав исполнительной системы входят следующие элементы.
- Справочный монитор защиты (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 содержит два поддерева: 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% (пользовательская часть).
Каждый куст реестра представлен на диске в виде двух стандартных файлов, перечисленных в таблице.
Куст реестра
Файлы
Каждый раздел реестра содержит элементы данных, называемые параметрами. Некоторые параметры хранят сведения, характерные для отдельного пользователя, другие — применимые ко всем пользователям компьютера.
Каждый параметр имеет три характеристики:
- имя параметра — используется приложениями для обращения к конкретному параметру;
- тип данных параметра — описывает, данные какого типа хранит параметр;
- значение параметра — непосредственно данные, которые могут быть получены при обращении к параметру.
Типы данных для параметров реестра, которые на данный момент поддерживает Windows XP, перечислены в таблице.
Тип данных
Описание
Данные в двоичном формате. Обычно этот тип используется для хранения больших объемов данных, например параметров оборудования
Целое число без знака. На хранение отводится 4 байта, чем определяется минимальное (0) и максимальное (4 294 967 296) хранимое значение. Обычно этот тип используется для хранения числовых величин и значений различных флагов
Строка с символами подстановки. Используется для хранения строковых значений, при считывании которых осуществляется преобразование символов подстановки. Например, при считывании значения %homedrive%\ Users and Settings\%username% возвращается c:\Documents and Settings\User1
Набор из нескольких строковых значений. Используется для хранения списков строк. В качестве разделителя элементов списка используются символы возврата каретки или другие разделители
Строка символов. Используется для хранения различных простых неинтерпретируемых строковых значений
Набор массивов данных. Используется для хранения больших бинарных массивов данных. В основном используется для хранения различных параметров аппаратного обеспечения компьютера