Микроядро в OperaСистема тинга: Archiтектура, Преимущества
⚡ Умное резюме
Микроядро — это минимальное ядро операционной системы, которое хранит в пространстве ядра только основные функции — управление памятью, планирование процессов и межпроцессное взаимодействие, — в то время как драйверы устройств, файловые серверы и другие службы работают отдельно в пользовательском пространстве.
Прежде чем изучать микроядро, давайте разберемся:
Что такое ядро?
Ядро — важная часть операционной системы, управляющая системными ресурсами. Оно также выступает в качестве связующего звена между программным и аппаратным обеспечением компьютера. Это одна из первых программ, загружаемых при запуске после загрузчика. Ядро также отвечает за обеспечение безопасного доступа к аппаратному обеспечению машины для различных программ. Оно также определяет, когда и как долго определенное приложение использует конкретное оборудование.
Что такое микроядро?
Микроядро — это программное обеспечение или код, содержащий минимально необходимый набор функций, данных и возможностей для реализации операционной системы. Оно предоставляет минимальное количество механизмов, достаточное для выполнения самых основных функций операционной системы. Оно позволяет реализовать и другие части операционной системы, поскольку не накладывает множество ограничений.
Микроядра и их пользовательские среды обычно реализуются в C++ or Языки программирования Си с небольшой сборкой. Однако возможны и другие языки реализации с некоторым высокоуровневым кодированием.
Что такое монолитное ядро?
Монолитное ядро запускает все основные системные службы, такие как управление процессомуправление памятью, обмен данными ввода-вывода, обработка прерываний, файловая система и т. д. в пространстве ядра.
При таком подходе к построению ядра вся операционная система работает как единая программа в режиме ядра. Операционная система написана как набор процедур, которые связаны между собой в большую исполняемую двоичную программу.
Microkernel Archiтекстура
Микроядро — это важнейшая часть для корректной работы операционной системы. Как видно на диаграмме ниже, микроядро выполняет основные операции, такие как работа с памятью, механизмы планирования процессов и межпроцессное взаимодействие.
На основе микроядра Operaтинг система
Микроядро — единственное программное обеспечение, выполняющееся на привилегированном уровне. Другие важные функции операционной системы вынесены из режима ядра и выполняются в пользовательском режиме. К таким функциям могут относиться драйверы устройств, приложения, файловые серверы, межпроцессное взаимодействие и т. д.
Компоненты микроядра
Микроядро включает в себя только основные функции системы. Компонент включается в микроядро только в том случае, если его размещение вне его нарушит функциональность системы. Все остальные несущественные компоненты следует размещать в пользовательском режиме.
Минимальный набор функций, необходимых для работы микроядра, включает в себя:
- Управление памятью В микроядро следует включить такие механизмы, как адресные пространства. Оно также содержит функции защиты памяти.
- Механизмы планирования процессора должны содержать планировщики процессов и потоков.
- Межпроцессное взаимодействие управляет серверами, которые используют свои собственные адресные пространства.
Разница между микроядром и монолитным ядром
| Параметры | Монолитное ядро | Microkernel |
|---|---|---|
| Базовый | Это масштабный процесс, работающий в одном адресном пространстве. | Его можно разбить на отдельные процессы, называемые серверами. |
| Code | Для написания монолитного ядра требуется меньше кода. | Для написания микроядра требуется больше кода. |
| Безопасность. | Если служба выходит из строя, вся система рушится в монолитном ядре. | Если служба выходит из строя, это никогда не влияет на работу микроядра. |
| Коммуникация | Это один статический бинарный файл. | Серверы общаются через IPC. |
| Пример | Linux, BSD, Microsoft Windows (95, 98, Я), Solaris, OS-9, AIX, DOS, XTS-400 и т. д. | L4Linux, QNX, Symbian, K42, Mac OS X, Integrity, и т.д. |
Преимущества микроядра
Вот преимущества использования микроядра:
- Архитектура микроядра невелика и изолирована, поэтому она может функционировать лучше.
- Микроядра безопасны, потому что в них включены только те компоненты, которые в противном случае нарушили бы функциональность системы.
- Расширение системы стало более доступным, поэтому её можно добавлять в системные приложения, не затрагивая ядро.
- Микроядра являются модульными, и различные модули можно заменять, перезагружать или модифицировать, даже не затрагивая ядро.
- Меньше сбоев системы по сравнению с монолитными системами.
- Интерфейс микроядра помогает внедрить более модульную структуру системы.
- Новые функции можно добавлять без перекомпиляции.
- Неисправность сервера также носит локальный характер, как и любая другая неисправность пользовательской программы.
- Микроядерная система отличается гибкостью, поэтому в ней могут сосуществовать различные стратегии и API, реализованные на разных серверах.
- Повышенная безопасность и стабильность достигаются за счет уменьшения объема кода, работающего в режиме ядра.
Недостатки микроядра
Вот недостатки/минусы использования микроядра:
- Предоставление услуг в микроядерной системе обходится дороже по сравнению с обычной монолитной системой.
- Переключение контекста или вызов функции необходимы, когда драйверы реализованы в виде процедур или процессов, соответственно.
- Производительность микроядерной системы может быть безразличной и может привести к некоторым проблемам.


