Микроядро в операционной системе: Archiтектура, Преимущества

Прежде чем мы изучим MicroKernel, давайте разберемся:

Что такое ядро?

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

Что такое микроядро?

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

Микроядра и их пользовательские среды обычно реализуются на C++ или Языки программирования Си с небольшой сборкой. Однако возможны и другие языки реализации с некоторым высокоуровневым кодированием.

Что такое монолитное ядро?

Монолитное ядро ​​запускает все основные системные службы, такие как управление процессомУправление памятью, связь ввода-вывода, обработка прерываний, файловая система и т. д. в пространстве ядра.

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

Microkernel Archiтекстура

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

Microkernel Archiтекстура
Микроядерная операционная система

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

Компоненты микроядра

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

Минимальные функциональные возможности, необходимые для микроядра:

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

Разница между микроядром и монолитным ядром

параметры Монолитное ядро Микроядро
Базовый Это большой процесс, работающий в одном адресном пространстве. Его можно разбить на отдельные процессы, называемые серверами.
Code Для написания монолитного ядра требуется меньше кода. Для написания микроядра требуется больше кода
Безопасность Если служба выходит из строя, вся система рушится в монолитном ядре. Если служба выходит из строя, это никогда не влияет на работу микроядра.
Связь Это один статический двоичный файл Серверы общаются через IPC.
Пример Linux, BSD, Microsoft Windows (95,98,Ме), Солярис, ОС-9, AIX, DOS, XTS-400 и др. L4Linux, QNX, SymbianK42, Mac OS X, Integrity и т. Д.

Преимущества микроядра

Вот плюсы/преимущества использования Microkernel

  • Microkernel archiСтруктура маленькая и изолированная, поэтому она может функционировать лучше.
  • Микроядра безопасны, поскольку в их состав входят только те компоненты, которые нарушают функциональность системы.wise.
  • Расширение системы более доступно, поэтому его можно добавить в системное приложение, не нарушая работу ядра.
  • Микроядра являются модульными, и различные модули можно заменять, перезагружать и модифицировать, даже не касаясь ядра.
  • Меньше сбоев системы по сравнению с монолитными системами.
  • Интерфейс микроядра помогает вам реализовать более модульную структуру системы.
  • Без перекомпиляции добавьте новые функции
  • Неисправность сервера также изолирована от неисправности любой другой пользовательской программы.
  • Система микроядра является гибкой, поэтому в системе могут сосуществовать разные стратегии и API, реализованные разными серверами.
  • Повышенная безопасность и стабильность приведут к уменьшению объема кода, работающего в режиме ядра.

Недостаток микроядра

Вот недостатки/минусы использования Microkernel:

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

Итоги

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