Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГАК-2026.docx
Скачиваний:
1
Добавлен:
16.06.2026
Размер:
2.66 Mб
Скачать

Вопрос 13: Архитектурные модели ос: монолитное ядро, микроядро, гибридные архитектуры

1. Введение: что такое ядро операционной системы?

Ядро (kernel) — это центральный компонент операционной системы, который обеспечивает приложениям управляемый доступ к ресурсам компьютера (процессору, памяти, устройствам ввода-вывода). Ядро работает в самом привилегированном режиме (режиме ядра, kernel mode), тогда как обычные приложения работают в пользовательском режиме (user mode).

Архитектура ядра определяет:

  • как организованы компоненты ОС;

  • как они взаимодействуют друг с другом;

  • насколько система надёжна, безопасна и производительна;

  • как легко её можно модифицировать и расширять.

Исторически сложилось три основных подхода к построению ядра: монолитное ядромикроядро и гибридное ядро.

2. Монолитное ядро (Monolithic Kernel)

Определение

Монолитное ядро — это архитектура, в которой все компоненты операционной системы (управление процессами, памятью, файловые системы, драйверы устройств, сетевой стек) работают в едином адресном пространстве, в режиме ядра.

Структура

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

Примеры

  • Linux (хотя с модулями, но по сути монолитное ядро)

  • Unix (классические версии)

  • FreeBSD

  • MS-DOS

  • Windows 9x (Windows 95, 98, Me)

Как работает

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

Плюсы монолитного ядра

  1. Производительность — все компоненты в одном адресном пространстве, вызовы функций происходят быстро, нет накладных расходов на межпроцессное взаимодействие (IPC).

  2. Тесная интеграция — компоненты могут эффективно использовать внутренние структуры данных друг друга.

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

Минусы монолитного ядра

  1. Надёжность — ошибка в любом компоненте (например, в драйвере) может обрушить всё ядро и всю систему. Синий экран смерти (BSOD) в старых Windows часто был следствием этого.

  2. Сложность разработки и отладки — огромная кодовая база, сложно поддерживать.

  3. Расширяемость — чтобы добавить новый драйвер, нужно перекомпилировать ядро или загружать модули (в Linux это решается загружаемыми модулями ядра, но они всё равно работают в режиме ядра).

  4. Размер — ядро занимает много памяти.

Модульные монолитные ядра

Современные монолитные ядра (например, Linux) поддерживают загружаемые модули (Loadable Kernel Modules, LKM). Это позволяет добавлять драйверы и другие компоненты без перекомпиляции всего ядра. Модули загружаются динамически и работают в режиме ядра, поэтому они по-прежнему могут обрушить систему, но их можно выгружать и обновлять без перезагрузки.

3. Микроядро (Microkernel) Определение

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

  • управление процессами/потоками (минимальное);

  • управление памятью (минимальное);

  • межпроцессное взаимодействие (IPC);

  • управление прерываниями.

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