Какое ядро ос предоставляет широкий набор абстракций оборудования

Обновлено: 30.06.2024

Что такое ядро ОС? Типы ядер

Как правило, большинство ядер ОС делятся на три типа:

Микроядро

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

небольшие требования к используемой памяти;

аппаратное обеспечение сильнее абстрагировано от системы;

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

процессы не могут получить доступ к другим процессам без ожидания.

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

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

практически прямой доступ программ к оборудованию;

процессам проще взаимодействовать друг с другом;

если ваше устройство поддерживается ядром, никаких дополнительных установок ПО не потребуется;

процессы реагируют быстрее, потому что не требуется ожидания в очереди за процессорным временем.

большой размер ядра;

больший размер занимаемой памяти;

проблемы с безопасностью, т.к. все части работают в пространстве ядра.

Гибридное ядро

Гибридное ядро — это ядро, сочетающее в себе элементы как монолитной, так и микроядерной архитектур. У таких ядер есть возможность выбирать, какие части будут работать в пользовательском пространстве (например, драйверы устройств и система ввода-вывода файловой системы), а какие — в пространстве ядра (вызовы межпроцессного (IPC) и серверного взаимодействий). Но этот подход имеет и некоторые проблемы, унаследованные от микроядерной архитектуры (особенно, по части быстродействия).

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

меньший размер в сравнении с монолитным ядром;

гибче в отличие от других ядер.

может страдать от пониженной производительности (как и микроядро);

работа драйверов устройств, как правило, сильнее зависит от производителей оборудования.

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

Где находится ядро Linux?

Каждый раз во время запуска (или перезапуска) системы первым компонентом, который загружается в память компьютера, является ядро Linux.

В системах Debian/Ubuntu файлы присутствующих в системе ядер расположены в каталоге /boot и именуются в виде vmlinuz-[версия_ядра] (выполнив в терминале команду uname-r , мы получим информацию о текущей версии установленного ядра):


В папке /boot вы также найдете и другие очень важные файлы:

img-[версия_ядра] — используется в качестве RAM-диска, в который распаковывается и с которого загружается ядро;

map-[версия_ядра] — используется для управления памятью до полной загрузки ядра;

config-[версия_ядра] — сообщает ядру, какие параметры и модули следует загрузить в образ ядра при его компиляции.

Примечание: Также для сжатия ядра часто применяются алгоритмы LZMA или bzip2, а сами ядра именуются zImage.

Модули ядра Linux

Модули обычно расширяют базовые возможности ядра, связанные с различной работой устройств, файловых систем и системных вызовов. Они, как правило, имеют расширение .ko и обычно хранятся в каталоге /lib/modules:


Версии ядра дистрибутивов Linux

Stable

Stable — это последняя доступная стабильная версия ядра Linux, предназначенная для широкого круга использования. По умолчанию, в большинстве дистрибутивов Linux применяется именно stable-версия ядра. Она регулярно обновляется, и к ней довольно часто выпускаются новые патчи.

Несмотря на то, что исправления безопасности внедряются в LTS-версию так же часто, как и в обычную, она, тем не менее, не дает 100% гарантии отсутствия каких-либо ошибок. Правда, шанс того, что с LTS-версией ядра Linux возникнут какие-то проблемы, немного меньше по сравнению с обычной версией ядра Linux, и поэтому многие предприятия отдают предпочтение именно LTS-релизам.

Примечание: По данным компании Canonical, примерно 95% всех установок Ubuntu являются LTS-релизами.

Hardened

Hardened — это усиленная различными обновлениями безопасности stable-версия ядра Linux. Она умеет блокировать потенциально опасные операции, обеспечивая тем самым эффективную защиту от эксплойтов, нацеленных на использование уязвимостей ядра. Данная версия ядра не так популярна, как другие, из-за того, что несколько медленнее их. Hardened-ядро убивает любой процесс, который покажется ему потенциально опасным. Кроме этого, он не отображает PID процессов, и, следовательно, вы не сможете напрямую обратиться к запущенному исполняемому файлу. Также некоторые программы и функции могут не работать с hardened-ядром.

Zen — версия ядра Linux, ориентированная на повышение производительности и отзывчивости системы. Также говорят, что это лучшее ядро Linux для игр. Zen имеет низкую задержку и высокочастотный планировщик.

Установка/Обновление ядра Linux

Соответственно, из этого можно сделать следующие выводы:

Если вам нужно ядро Linux с правками под какой-то конкретный дистрибутив (например, Debian или Manjaro), то вам нужно скачать ядро из репозитория конкретного дистрибутива с помощью менеджера пакетов.

Есть 2 способа установки/обновления ядра Linux:

Обновление ядра Linux через менеджер пакетов.

На этом уроке мы рассмотрим обновление ядра Linux через менеджер пакетов, а на следующем — самостоятельную установку и конфигурирование ядра Linux.

Обновление ядра Linux через менеджер пакетов

Обычно, вместе с обновлением системы происходит и обновление ядра. Но если вы по каким-либо причинам хотите произвести установку/обновление непосредственно только ядра Linux, то ниже мы рассмотрим данный процесс для нескольких дистрибутивов Linux.

Linux Mint (Debian/Ubuntu)

Для начала сверим текущую установленную версию ядра:


Далее выполним поиск доступных для установки ядер (сгенерированный список может быть очень длинным, поэтому, чтобы хоть как-то ограничить вывод и сделать его постраничным, применим фильтр | more ):

$ sudo apt-cache search linux-image | more


Мой выбор пал на ядро linux-image-4.15.0-1004-oem. Чтобы его установить, нужно выполнить команду:

$ sudo apt-get install linux-image-4.15.0-1004-oem


Останется только перезагрузить систему и убедиться, что новое ядро успешно установилось:


Manjaro (Arch Linux)

В Manjaro используется свой менеджер пакетов — pacman, поэтому его команды будут немного отличаться от команд в других дистрибутивах. Чтобы вывести список доступных для установки ядер, необходимо выполнить:

$ sudo pacman –S linux


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



Установка ядра Zen (Liquorix)

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

Debian

Скачиваем скрипт, который добавит в систему нужные репозитории:


После чего выполняем всего одну команду, устанавливающую пакеты с новым ядром:

$ sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64



Ubuntu

Установка в Ubuntu происходит практически аналогичным образом. Сначала добавляем репозитории zen-ядра (liquorix):

sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update

После чего выполняем уже знакомую по прошлому разу команду:

sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64

И теперь перезагружаем систему. Готово!

Manjaro

Сначала установим помощник установки пакетов — yay:


Далее установим необходимые утилиты:

$ sudo pacman –S base-devel


Заходим в каталог yay и производим сборку пакета:

$ cd yay
$ makepkg -si


После этого переходим непосредственно к установке zen-ядра:

$ yay -S linux-zen-git


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

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

Монолитное ядро Достоинства Скорость работы (производительность) упрощённая разработка модулей Недостатки Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы 4

Монолитное ядро Увеличение объема кода монолитных ядер также повышает требования к объёму оперативной памяти, требуемому для функционирования ядра ОС. = > малопригодны к эксплуатации в системах, сильно ограниченных по объёму ОЗУ (в основном на производстве) 6

Монолитное ядро. Примеры BSD MS-DOS KolibriOS 7

Модульное ядро Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем М одульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера (по сравнению с монолитным ядром) 8

Модульное ядро ОС разбивается на ряд уровней (слоев), каждый последующий базируется на предыдущем: Самый нижний уровень – это аппаратное обеспечение Самый верхний уровень – это интерфейс пользователя 9

Модульное ядро предоставляют подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов ) Подгрузка модулей Статическая Динамическая 10

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

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

Модульное ядро. Примеры Linux Unix 13

Микроядро. Достоинства Устойчивость к сбоям оборудования, ошибкам в компонентах системы высокая степень модульности ядра операционной системы ( упрощает добавление в него новых компонентов, процесс отладки компонентов ядра ) Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра 16

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

Микроядро. Примеры Windows NT Symbian OS AmigaOS 18

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

Экзо ядро В традиционных операционных системах ядро предоставляет не только минимальный набор сервисов, обеспечивающих выполнение программ, но и большое количество абстракций для использования разнородных ресурсов компьютера: оперативной памяти, жестких дисков, сетевых подключений. В отличие от них, ОС на основе экзоядра предоставляет лишь набор сервисов для взаимодействия между приложениями, а также необходимый минимум функций, связанных с защитой: выделение и высвобождение ресурсов, контроль прав доступа, и т. д. Экзоядро не занимается предоставлением абстракций для физических ресурсов — эти функции выносятся в библиотеку пользовательского уровня (так называемую libOS ). 20

Экзоядро . Примеры Домашнее задание 22

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

Термин "ядро операционной системы" можно особенно часто услышать от поклонников POSIX-систем. Впрочем, сами понимаете, это вовсе не означает, что в той же, например, Windows, ядра нет как такового. Что такое ядро операционной системы? Для чего оно нужно? Какими бывают ядра у разных ОС? Вот на эти вопросы мы сейчас с вами и попробуем найти ответы.


Зачем нужно ядро?

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

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

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

Вы можете спросить, всякая ли операционная система имеет ядро. Вопрос, несмотря на кажущуюся наивность, вполне правомерный и логичный. Впрочем, ответ на него будет краток: да, всякая. В любой операционной системе есть та часть, которая не участвует в ожесточённой борьбе за системные ресурсы - просто потому, что часть эта загружена в оперативную память всегда и имеет преимущество при доступе к процессорному времени. Именно эта часть и является ядром.

Впрочем, конечно, в зависимости от операционной системы и её предназначения, ядра бывают разными - и даже очень. Какими именно? Сейчас мы с вами и займёмся тем, что поговорим о видах ядер операционных систем.


Какими бывают ядра?

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

Начнём, пожалуй, с такой интересной вещи, как монолитное ядро. Как видно из названия этого типа ядер операционных систем, они отличаются высокой степенью интеграции компонентов ядра, что приводит к ряду особенностей его работы - более высокой скорости и сравнительной простой разработке. Но, правда, при этом есть минус, что если какой-то из модулей ядра начнёт работать некорректно, это может привести к некорректной работе всего ядра (читай, к краху операционной системы). Все компоненты такого ядра работают в одном и том же адресном пространстве - то есть всё ядро являет собой одну большую программу. Старые операционные системы были все исключительно с монолитными ядрами и требовали перекомпиляции ядра при изменении конфигурации "железа", с которой работала операционная система. Современные операционные системы с монолитными ядрами также не вполне излечились от подобного недуга: при изменениях в оборудовании нужно изменить некоторые модули в ядре и после этого выполнить перекомпиляцию всего ядра. Удобно ли это? Вряд ли. Но, тем не менее, благодаря простоте создания такого ядра, монолитная архитектура пользуется значительной популярностью у системных программистов. POSIX-системы (по крайней мере, большая их часть), в том числе и BSD-систем, пользуются той же архитектурой, что и старые UNIX'ы, и MS-DOS - именно монолитным ядром. Поэтому и нужно пользователям BSD-систем собирать ядро всякий раз по новой, когда они добавляют в систему новое устройство. Впрочем, это относится не ко всем BSD-системам - их всё-таки довольно много.

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

Архитектура модульного ядра позволяет при изменениях конфигурации аппаратного обеспечения того компьютера, на котором работает операционная система, не выполнять перекомпиляции самой важной части всей операционной системы. Каким же образом этого добиться? На самом деле, всё очень просто. Ядра подобного типа позволяют работать с подгружаемыми внешними модулями, обеспечивающими поддержку различных устройств, - драйверами. Поскольку модули внешние, то при смене оборудования достаточно изменить набор этих модулей, а само ядро уже трогать не обязательно. Это, кстати, очень удобно и для разработчиков - драйверы для операционных систем с модульной ядерной архитектурой проще писать и отлаживать. Впрочем, модульность не избавляет ядро от необходимости иметь некую резидентную часть, которую нельзя выполнить в виде подключаемого модуля. Модульная архитектура ядра используется в более продвинутой, по сравнению со старыми UNIX'ами, операционной системе Linux 1 , что во многом и определило её популярность среди пользователей POSIX-систем. Модульные ядра также работают в одном адресном пространстве, что позволяет им работать по-прежнему быстро, но всё же накладывает на драйверы массу ограничений. Поэтому и модульное ядро не стало последним этапом в развитии ядер операционных систем.

Микроядро - это уже более современная версия ядерной архитектуры. В ней само ядро предоставляет сравнительно небольшой список функций, в который входят обычно только работа с процессами и аппаратная абстракция операционной системы. Вся остальная функциональность операционной системы вынесена в специальные процессы, имеющие статус пользовательских и называемые, как правило, сервисами. Такой подход к организации ядра операционной системы имеет ряд преимуществ по сравнению с монолитным и модульным ядрами. Благодаря тому, что адресных пространств процессов уже много, ядро более устойчиво к ошибкам в сервисных процессах, но при этом на "общение" между этими самыми процессами тратится довольно много ресурсов компьютера - хотя бы того же процессорного времени. Поэтому микроядерные операционные системы появились уже тогда, когда мощности компьютеров позволяли не слишком терять в быстродействии при такой схеме организации ядра операционной системы. Микроядро удобно для пользователей, которые могут менять драйверы прямо в процессе работы операционной системы, и для системных программистов, которым нет нужды лезть в ядро для добавления какой-то функциональности в операционную систему: достаточно реализовать сервис, который будет работать как простое пользовательское приложение. Системы с микроядрами - это MacOS X, QNX, Symbian OS и некоторые другие, менее известные.

Есть и другие типы ядер - например, наноядро, которое только обрабатывает прерывания, или экзоядро, которое помимо прерывания только организует взаимодействие процессов и распределяет память. Но эти ядра не слишком востребованы, поскольку современные аппаратные средства позволяют применять "нормальную" архитектуру ядра даже во встраиваемых операционных системах (как, например, в случае с той же QNX).


Резюме

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

Если вы решите написать ОС со своим ядром (а это совсем непросто), то информации, которая содержится в статье, вам не хватит даже для того, чтобы просто приступить к непосредственному написанию программного кода. Что ж, тут, как говорится, Гугл в помощь. Информации по ядрам операционных систем в интернете много, часть из неё представлена даже на русском, так что с поиском, думаю, особых проблем не должно возникнуть.

Вадим СТАНКЕВИЧ

1 Linux, вообще говоря, и есть название ядра. Название самой операционной системы - GNU/Linux. Впрочем, эти тонкости не слишком волнуют даже большинство пользователей этой ОС, не говоря уже обо всех остальных.

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

Основные функции, которые выполняет ядро:

  • управление процессами
  • управление памятью
  • управление устройством
  • обработка прерываний
  • операции ввода/вывода

Теперь давайте разберемся подробнее в этих функциях ядра.

ФУНКЦИИ ЯДРА В ОПЕРАЦИОННОЙ СИСТЕМЕ

УПРАВЛЕНИЕ ПРОЦЕССАМИ

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

УПРАВЛЕНИЕ ПАМЯТЬЮ

Всякий раз, когда процесс создается и выполняется, он занимает память, и когда он завершается, память должна быть освобождена и может быть использована снова. Но память должна быть обработана кем-то, чтобы освобожденная память могла быть снова назначена новым процессам. Эта задача также выполняется ядром. Ядро отслеживает, какая часть памяти в данный момент выделена и какая часть доступна для выделения другим процессам.

УПРАВЛЕНИЕ УСТРОЙСТВАМИ

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

ОБРАБОТКА ПРЕРЫВАНИЙ

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

ОПЕРАЦИИ ВВОДА/ВЫВОДА

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

ТИПЫ ЯДЕР В ОПЕРАЦИОННОЙ СИСТЕМЕ

Как выше было сказано ядро - это программа, которая является основным компонентом операционной системы. Теперь давайте рассмотрим типы ядер.

Ядро подразделяется на два основных типа:

Существует еще один тип ядра, который является комбинацией этих двух типов ядер и известен как гибридное ядро. Рассмотрим каждый из них вкратце.

МОНОЛИТНОЕ ЯДРО

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

МИКРОЯДРА

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

ГИБРИДНОЕ ЯДРО

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

Читайте также: