Как работает ядро Linux?
Обычно, когда мы говорим о Linux, мы сразу вспоминаем про такие дистрибутивы, как Ubuntu, Debian, Mint и т. д. Однако эти дистрибутивы не являются операционными системами как таковыми, а скорее являются “адаптациями” операционной системы с открытым исходным кодом: Linux. И следовательно, несмотря на особенности каждого из них, все они имеют одну и ту же базу, которую мы знаем как ядро Linux .
Ядро Linux.
По этой причине обычно не говорят ” я собираюсь установить Linux ”, имея в виду конкретную операционную систему, а скорее то, что мы устанавливаем, — это версии или дистрибутивы этого ядра, созданные компаниями или сообществом, которые используют одну и ту же базу: ядро Minix (которая, в свою очередь, клонировала концепции Unix). Благодаря своим свойствам Linux является настоящей операционной системой, хотя никто не использует ее как таковую, а скорее использует дистрибутивы, поскольку с ними она становится намного полезнее и проще в использовании.
Что такое ядро и для чего оно
Ядро Linux является ядром операционной системы . Это самая важная часть программного обеспечения в любой операционной системе. У Windows есть свое собственное ядро, у MacOS есть свое (основанное на Unix, кстати), а Linux — это ядро , используемое всеми дистрибутивами. И его основная функция — отвечать за управление компьютерным оборудованием.
В частности, это ядро отвечает за управление системной памятью и временем обработки , управление всеми процессами , управление системными вызовами и соединениями между процессами и позволяет всему программному обеспечению иметь доступ к оборудованию , особенно к подключенным периферийным устройствам.
Ядро настолько важно при управлении оборудованием, что из его более чем 28 миллионов строк кода большая часть — это драйверы.
В обычных условиях пользователи никогда не взаимодействуют с ним . В то время как пользователи имеют ограниченный доступ к оборудованию, ядро имеет полный доступ и контроль над ним. Оно отвечает за то, чтобы все работало хорошо, чтобы это было сделано безопасно и чтобы не было ошибок. Если процесс завершается сбоем в пользовательском пространстве, Linux продолжает функционировать . Однако, если в пространстве ядра возникает ошибка, вся система перестает работать. Это то, что мы знаем как ” Kernel panic “, эквивалент синего экрана в Linux.
Версии
Это правда, что текущие версии ядра не имеют ничего общего с первыми версиями 1991 года. Тем не менее, ядро Linux находится в постоянном развитии. И каждые несколько недель мы обычно видим новые релизы. Но не все они одинаково важны.
Версии ядра Linux могут иметь 4 числа, указывающие версию: abcd
- a указывает версию. Это число меняется меньше всего, поскольку переход обычно выполняется только при очень больших изменениях в системе. За всю свою историю оно менялось всего 6 раз: в 2004 году для версии 1.0, в 2006 году для версии 2.0, в 2011 году для версии 3.0, в 2015 году для версии 4.0 и в 2019 году, чтобы привести к появлению текущей версии 5.0 и 2022 для удобства сменили версию на 6.0.
- b указывает на subversion. Когда выпускаются новые версии, но это действительно незначительные обновления (новые драйверы, оптимизации, исправления и т. д.), Тогда вместо изменения версии изменяется номер subversion.
- c указывает уровень ревизии. Это число часто меняется, например, при внесении незначительных изменений, таких как исправления безопасности, исправления ошибок и т. д.
- d — последний подуровень версии. Оно почти не используется, но оно зарезервировано, так что, если выпущена версия с очень серьезной ошибкой, новая версия будет выпущена с этим подуровнем, включая исключительно исправление указанной серьезной ошибки.
Все версии ядра Linux являются общедоступными и имеют открытый исходный код. Мы можем найти их по этой ссылке . Но они не не скомпилированные, их должны компилировать сами пользователи, чтобы иметь возможность использовать их в своем дистрибутиве. И это не совсем простая задача. К счастью, сообщества, ответственные за разработку различных дистрибутивов, обычно предоставляют нам скомпилированные и оптимизированные версии ядра, которые мы можем установить в свой дистрибутив.
Какую версию Linux выбрать
Когда мы говорим о программном обеспечении, мы всегда рекомендуем иметь последнюю версию всего. С ядром Linux то же самое, всегда рекомендуется иметь последнюю версию. Однако устанавливать ее необходимо осторожно.
Одна из причин, по которой ядро такое большое, заключается в том, что оно ничего не удаляет. Как бы старо оно ни было. Благодаря этому можно продолжать использовать последние версии Linux на первых компьютерах, где оно было впервые запущен в 1991 году. Каждое обновление обычно заключается в добавлении драйверов и изменении функций для оптимизации общей работы ПК.
Но может случиться так, что версия содержит ошибку, из-за которой наш компьютер не работает должным образом, или производительность падает. В этом случае простая переустановка предыдущей версии должна привести операционную систему в нормальное состояние. Хотя мы потеряем поддержку более новых аппаратных компонентов.
Лучшим и самым простым для большинства пользователей является обновление ядра по мере обновления дистрибутива из его репозиториев. Таким образом, мы избежим этих проблем, “всегда будучи в курсе последних событий”.
Является ли ядро операционной системой?
Ядро является одной из наиболее важных частей операционной системы. Но это не единственное, необходимое для того, чтобы иметь возможность называть Linux сегодня операционной системой как таковой. Как мы уже объясняли, в этом ядре есть все драйверы и все необходимое для управления программным обеспечением и предоставления пользователю доступа к нему. Но, чтобы быть действительно полезным, оно должно иметь другие компоненты поверх него, прежде чем попасть к пользователю.
- Подсистема инициализации. Будь то Init.d, Systemd или любое другое подобное программное обеспечение, необходимо иметь подсистему над ядром, которая отвечает за запуск всех процессов (демонов), необходимых для начала работы ядра. Без него у нас будет только много строк кода, которые не будут выполняться.
- Процессы . Демоны, или более известные как процессы, — это все компоненты, которые остаются загруженными в системную память (управляются ядром) и которые позволяют Linux функционировать. Графический сервер, например, является демоном, который будет управлять рабочим столом.
- Графический сервер . Известный как X, он отвечает за возможность видеть графику на экране. Если мы собираемся использовать Linux в текстовом режиме, из терминала, в этом нет необходимости. Но если мы собираемся использовать его с настольным компьютером, необходимо иметь работающий x-сервер.
- Графическая оболочка. Как следует из названия, графическая оболочка, это то програмное обеспечение в котором у нас будут все наши программы и где будут открываться окна. Существует множество графических оболочек для Linux, таких как GNOME, KDE или LXDE. У каждой есть свои особенности, преимущества и недостатки.
- Программы. Все, что мы запускаем с рабочего стола. Это уже самый высокий уровень и точка, через которую мы взаимодействуем с компьютером.