Задачи, которые выполняет ядро Linux

08.11.2022, 22:03

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

Основные функциональные задачи ядра Linux

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

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

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

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