stringtranslate.com

Монолитное ядро

Структура операционных систем на основе монолитного ядра, микроядра и гибридного ядра

Монолитное ядро ​​— это архитектура операционной системы , в которой вся операционная система работает в пространстве ядра . Монолитная модель отличается от других архитектур, таких как микроядро [1] [2], тем, что она одна определяет высокоуровневый виртуальный интерфейс через аппаратное обеспечение компьютера . Набор примитивов или системных вызовов реализует все службы операционной системы, такие как управление процессами , параллелизм и управление памятью .

Драйверы устройств могут быть добавлены в ядро ​​как загружаемые модули ядра .

Примеры ядер с монолитной архитектурой: большинство ядер Unix-подобных операционных систем (включая ядро ​​Linux ), MS-DOS , Windows 9x .

Загружаемые модули

Модульные операционные системы, такие как OS-9 , и большинство современных операционных систем с монолитным ядром, таких как OpenVMS , Linux , FreeBSD , NetBSD , DragonFly BSD , Solaris , AIX и Multics , могут динамически загружать (и выгружать) исполняемые модули ядра во время выполнения.

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

На практике динамическая загрузка модулей — это просто более гибкий способ обработки образа операционной системы во время выполнения — в отличие от перезагрузки с другим образом операционной системы. Модули позволяют легко расширять возможности операционной системы по мере необходимости. [3] Динамически загружаемые модули влекут за собой небольшие накладные расходы по сравнению со встраиванием модуля в образ операционной системы.

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

Смотрите также

Ссылки

  1. ^ «Программирование модульных систем в Minix3» (PDF) .
  2. ^ "Сервер-Клиент, или слоистая структура" (PDF) . Проектирование микроядра PARAS. Архивировано из оригинала (PDF) 17 июля 2010 г. . Получено 15 июля 2009 г. .
  3. ^ «Определение ядра».