Уже три десятилетия ядро Linux применяется в компьютерах по всему миру. За счет того, что ядро используется на разных платформах, данное решение встречается практически повсеместно, например, в ПК, смартфонах, носимой электронике, бытовой технике и сетевых устройствах. В этой статье рассмотрим архитектуру ядра, его основные задачи и интерфейсы.
Известно, что ассемблерный код дает возможность получить еще больше производительности, по возможностям он несколько ограничен, львиная доля кода написана на языке C. Это доля составляет целых 98%. На ассемблере решили сделать только малозначимые вставки, которые несколько увеличивают производительность, архитектурно-зависимые функции и загрузчик.
Какова архитектура ядра Линукс? Уровень доступа к ресурсам ПК во многом зависим от типа используемого ОС ядра. В плане привилегий ядро остается выше остальных приложений. С учетом количества выполнимых задач решение задачи происходит на уровне ядра, поэтому отличают их несколько разновидностей. Самой распространенное решение - это монолитное, микроядро и гибридное.
Львиная доля монолитного ядра Linux хранится в одном файле. Но это еще не указывает на принадлежность к монолитному ядру, а вот модули способны на отдельное хранение. Главная фишка состоит в том, что ядро может обрабатывать все запросы, но не учитывает запросы пользовательских приложений. Ядро берет на себя такие задачи как:
управление процессами и памятью
драйверы
виртуальная файловая система
сетевой стек
При этом несмотря на монолитность ядра, оно состоит из внутренних модулей, загружаемых по необходимости, а не в отдельности. Одни модули сохраняются отдельно от ядра, но преимущественно это вспомогательные драйверы устройств.
Ядро это наиболее привилегированное ПО на ПК. Если говорить конкретно о ядре Linux, то оно монолитное. Это главное, что нужно знать на данном этапе.