ФЭНДОМ


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

Классическое Монолитное ядро состоит из единственного загрузочного модуля, в котором реализованы все функции, возлагаемые на систему, и в частности, все сервисы, которые ядро предоставляет прикладным программам.

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

Такой способ организации определяет его плюсы:

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

В то же время у данной архитектуры есть и минусы:

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

В силу своей относительной простоты и невысоких накладных расходов монолитные ядра использовались в первых операционных системах, однако довольно быстро на смену монолитной архитектуре пришёл её улучшенный вариант — модульное ядро.

Примеры

В своём классическом виде монолитное ядро сейчас встречается в основном в составе ОС для встраиваемых систем и подобных, специализированных под выполнение конкретных задач.

Ссылки

Архитектура ядра