Ядро операционной системы

Эта статья написана в рамках энциклопедии Руниверсалис и находится на начальном уровне проработки
Материал из энциклопедии Руниверсалис

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

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

Ядра бывают гибридными, например ядра Windows и Apple macOS, и монолитными, как ядро Linux. Монолитные ядра контролируют центральный процессор, память, межпроцессное взаимодействие (IPC), драйверы устройств, управление файловой системой и вызовы системных серверов.

Ядро может быть модульным. Модульное ядро поддерживает вставку и удаление во время выполнения загружаемых модулей ядра. Благодаря тому, что в памяти ядра хранятся только необходимые модули, сокращается объем памяти ядра и увеличивается его общая производительность.

Ядро ОС выполняет три основные задачи

  1. предоставляет интерфейсы, необходимые пользователям и приложениям для взаимодействия с компьютером.
  2. запускает приложения и управляет ими.
  3. управляет основными аппаратными устройствами системы.

Если говорить более детально, то выполнение этих трех функций ядра включает в себя целый ряд компьютерных задач, в том числе следующие:

  1. загрузка и управление менее важными компонентами ОС, такими как драйверы устройств;
  2. организация и управление потоками и различными процессами, порожденными запущенными приложениями;
  3. планирование того, какие приложения могут получить доступ к ядру и использовать его, и контроль этого использования в запланированное время;
  4. принятие решения о том, какое незащищенное пространство пользовательской памяти использует каждый прикладной процесс;
  5. разрешение конфликтов и ошибок при распределении и управлении памятью;
  6. управление и оптимизация аппаратных ресурсов и зависимостей, таких как использование центрального процессора (CPU) и кэша, работа файловой системы и механизмов сетевого транспорта;
  7. управление и доступ к устройствам ввода/вывода, таким как клавиатуры, мыши, дисковые накопители, порты USB, сетевые адаптеры и дисплеи
  8. обработка системных вызовов устройств и приложений с помощью различных механизмов, таких как аппаратные прерывания или драйверы устройств.

Литература