Что такое ядро Linux

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

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

Что делает ядро

В ядре 4 задания:

  1. Управление памятью: отслеживать, сколько памяти используется для хранения чего и где.
  2. Управление процессами: определить, какие процессы могут использовать центральный процессор (ЦП), когда и как долго.
  3. Драйверы устройств: действуют как посредник/интерпретатор между оборудованием и процессами.
  4. Системные вызовы и безопасность: получение запросов на обслуживание от процессов.

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

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

Место ядра в ОС

Чтобы поместить ядро ​​в контекст, вы можете представить себе машину Linux как имеющую 3 уровня:

  1. Аппаратное обеспечение: физическая машина – нижняя часть или основание системы, состоящая из памяти (RAM) и процессора или центрального процессора (CPU), а также устройств ввода/вывода (I/O), таких как хранилище, сеть и графика. ЦП выполняет вычисления, читает из памяти и записывает в нее.
  2. Ядро Linux: ядро ОС. (Видите? Это прямо посередине). Это программное обеспечение, находящееся в памяти, сообщает процессору, что делать.
  3. Пользовательские процессы: это запущенные программы, которыми управляет ядро . Пользовательские процессы – это то, что вместе составляет пользовательское пространство. Пользовательские процессы также известны как просто процессы . Ядро также позволяет этим процессам и серверам взаимодействовать друг с другом (так называемое межпроцессное взаимодействие или IPC).

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

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