Микроядерная архитектура является альтернативой классическому способу построения ОС. В отличие от традиционной архитектуры, согласно которой ОС представляет собой монолитное ядро, реализующее основные функции по управлению аппаратными ресурсами и организующее среду для выполнения пользовательских процессов, микроядерная архитектура распределяет функции ОС между микроядром и входящими в состав ОС системными сервисами, реализованными в виде процессов, равноправных с пользовательскими приложениями.Главной особенностью данного подхода является то, что в привилегированном режиме остается работать только очень малая часть ОС, называемая соответственно микроядром. Микроядро защищено от остальных частей ОС и пользовательских приложений.
Микроядерная архитектура ОС
Микроядерная архитектура является альтернативой классическому способу построения
ОС. В отличие от традиционной архитектуры, согласно которой ОС представляет собой
монолитное ядро, реализующее основные функции по управлению аппаратными ресурсами
и организующее среду для выполнения пользовательских процессов, микроядерная
архитектура распределяет функции ОС между микроядром и входящими в состав ОС
системными сервисами, реализованными в виде процессов, равноправных с
пользовательскими приложениями.Главной особенностью данного подхода является то,
что в привилегированном режиме остается работать только очень малая часть ОС,
называемая соответственно микроядром. Микроядро защищено от остальных частей ОС и
пользовательских приложений. Набор входящих в состав микроядра функций, как правило,
соответствует слою базовых механизмов обычного ядра, хотя в состав микроядра
включаются далеко не все базовые функции ядра, а только функции управления
процессами, обработки прерываний, управления виртуальной памятью, пересылки
сообщений, управления устройствами вводавывода. Выполнение таких функций ОС
практически невозможно реализовать в пользовательском режиме. Все машиннозависимые
модули ОС также включаются в микроядро.Не вошедшие в состав микроядра
высокоуровневые функции и модули ядра оформляются в виде обычных приложений,
работающих в пользовательском режиме. При этом на разработчика ОС ложится далеко
неоднозначная задача принятия решения о том, какой из модулей будет работать в
привилегированном режиме, а какой в пользовательском. Как правило, на это решение
сильное влияние оказывает специфика применения данной ОС и критерии, которым она
должна удовлетворять. В общем случае многие менеджеры ресурсов, являющиеся
неотъемлемой частью ядра ОС с классической архитектурой, остаются за пределами
микроядра и работают в пользовательском режиме. Работающие в пользовательском
режиме менеджеры ресурсов имеют принципиальные отличия от традиционных утилит ОС
и системных обрабатывающих программ ОС, хотя при микроядерной архитектуре всеэти
программные компоненты также оформлены в виде приложений. Утилиты и
обрабатывающие программы вызываются в основном пользователями. Ситуации, когда
одному приложению требуется выполнение функции другого приложения, возникают
крайне редко, поэтому в ОС с классической архитектурой отсутствует механизм, с
помощью которого одно приложение могло бы вызвать функции другого. Принципиально
другая ситуация возникает в том случае, если в форме обычного приложения оформляется
часть ОС. По определению основным назначением такого приложения является
обслуживание запросов других приложений, например создание процесса, выделение
памяти, проверка прав доступа к ресурсу и т.д. Вследствие этого вынесенные в
пользовательский режим менеджеры ресурсов являются серверами ОС, то есть модулями,
основное назначение которых – обслуживание запросов локальных приложений и других
модулей ОС. Совершенно очевидно, что при реализации микроядерной архитектуры
необходимо обеспечить наличие в ОС удобного и эффективного способа вызова процедур
одного процесса из другого. Поддержка такого механизма является одной из главных
задач, возложенных на микроядро ОС. Клиент, которым может быть как пользовательская
прикладная программа, так и другой компонент ОС, запрашивает у соответствующего
сервера выполнение некоторой функции, посылая ему сообщение. Микроядро ОС,
выполняющееся в привилегированном режиме, имеет доступ к адресным пространствам
каждого из этих приложений и поэтому может выступать в качестве посредника при
передаче сообщений. Микроядро сначала передает сообщение, содержащее имя и
параметры вызываемой процедуры соответствующему серверу, затем сервер выполняет
запрошенную операцию, после чего микроядро возвращает результаты клиенту
посредством другого сообщения. Таким образом, работа микроядерной ОС соответствуетизвестной модели клиентсервер, в которой роль транспортных средств выполняет
микроядро