В большинстве компьютерных операционных системах ядро является центральным компонентом. Это мост между пользователем и приложениями и компьютерным оборудованием. Это также механизм, который позволяет компьютеру обрабатывать одновременно несколько пользователей и несколько задач. Типы ядер: монолитное ядро, микроядро, гибридное ядро, наноядро и экзокернел. Ядро управляет всеми системными ресурсами компьютера. Это включает в себя долговременное хранилище, центральный процессор (CPU), кратковременную память и устройства ввода и вывода. Когда приложению требуется один из этих ресурсов, ядро делает ресурс доступным и выполняет запрос.
Такая обработка ресурсов позволяет операционным системам быть как многопользовательскими, так и многозадачными. Операционная система на самом деле не выполняет более одной задачи одновременно. Вместо этого ядро переключает задачи с такой высокой скоростью, что компьютер выполняет одновременно несколько задач. Ядро также отвечает за то, чтобы ресурсы, используемые одним пользователем или процессом, не нарушали запрос другого пользователя или процесса.
Есть два основных типа ядер – это монолитное ядро и микроядро.
1. Монолитное
В современном подходе к монолитной архитектуре ядро состоит из различных модулей, которые можно динамически загружать и выгружать. Этот модульный подход позволяет легко расширить возможности ОС. При таком подходе, ремонтопригодность ядра стала очень лёгкой, как только соответствующий модуль должен быть загружен и выгружен каждый раз, когда есть изменения или если нужно исправить ошибку в конкретном модуле. Таким образом, нет необходимости сбрасывать и перекомпилировать всё ядро для небольшого изменения. Кроме того, удаление ядра для различных платформ (например, для встроенных устройств и т. д.) стало очень простым, поскольку мы можем легко выгрузить модуль, который нам не нужен. Linux следует монолитному модульному подходу.
2. Микроядро
Эта архитектура в основном обслуживает проблему постоянно растущего размера кода ядра, который мы не можем контролировать в монолитном подходе. Эта архитектура позволяет некоторым базовым службам, таким как управление драйверами устройств, стек протоколов, файловая система и т.д., работать в пользовательском пространстве. Это уменьшает размер кода ядра, а также повышает безопасность и стабильность ОС, поскольку у нас есть минимальный код, работающий в ядре. Итак, если предположить, что базовая служба, такая как network service, выйдет из строя из-за переполнения буфера, тогда будет повреждена только память сетевой службы, оставив остальную часть системы по-прежнему функциональной.
Гибридное ядро представляет собой комбинацию монолитного и микроядерного ядра. Большинство системных служб операционной системы выполняются в пространстве ядра, таком как монолитное ядро. Существуют и другие службы, такие как файловая система и оконная система, которые выполняются в пользовательском пространстве.
Другие типы ядра – это наноядро и экзокерно. Нанокернел использует драйверы устройств для обслуживания практически всех сервисов. Exokernel использует программы для распределения физических ресурсов.