Концепция микроядерной архитектуры

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

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

Рис. 1.12. Перенос основного объема функций ядра в пользовательское пространство

 

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

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