Skip to main content

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

Конфигурирование, сборка и установка ядра Linux (Июнь 2026)

Конфигурирование, сборка и установка ядра Linux (Июнь 2026)
Anonim

Для случайных пользователей и менее хардкорных поклонников Linux - это операционная система. Однако для пуристов название «Linux» зарезервировано для ядра, которое управляет операционной системой. Если вам интересно, что такое ядро ​​Linux, давайте ответим на этот вопрос с учетом нового пользователя.

Режимы

Прежде чем мы объясним, что такое ядро, важно понимать термины «пользовательский режим» и «режим ядра». Пользовательский режим - это когда исполняемый код не имеет возможности напрямую обращаться к аппаратной или справочной памяти. Для доступа к аппаратным средствам и памяти код, запущенный в пользовательском режиме, должен делегировать инструкции системным интерфейсам прикладного программирования (API). Режим ядра - это когда исполняемый код имеет неограниченный доступ ко всему оборудованию и зарезервирован для наиболее надежных функций операционной системы.

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

Каждая операционная система имеет ядро. В ОС Windows, MacOS, iOS, Android, Chrome OS и Linux есть низкоуровневая система, которая отвечает за взаимодействие всех приложений с физическим оборудованием компьютера. Без ядра ни одно из ваших приложений не сможет использовать физический компьютер; такие приложения, как Firefox, Chrome, LibreOffice, MS Office или Outlook, не будут работать. Ядро также отвечает за то, чтобы позволить процессам обмениваться информацией с использованием так называемой Inter-Process Communication (IPC).

Существуют (вообще говоря) три типа ядер:

  • Монолитные ядра: эти ядра включают в себя процессор, память, IPC, драйверы устройств, управление файловой системой и вызовы системного сервера. Он также отвечает за передачу бесплатной системной памяти приложениям. Эти типы ядер обычно лучше подходят для аппаратного обеспечения и многозадачности.
  • Микроядра: Микроядра берут минималистский подход и управляют только процессором, памятью и IPC.
  • Гибридные ядра: Гибридные ядра имеют возможность решать, что они хотят запускать в режиме пользователя или ядра. Хотя это обеспечивает лучшее из обоих миров, для создания драйверов, которые служат для взаимодействия между исполняемым кодом и оборудованием, требуется гораздо больше от производителей оборудования.

Linux использует ядро ​​с открытым исходным кодом, монолитное ядро, тогда как macOS и Windows используют гибридные ядра. Ядро Linux было задумано в 1991 году Линусом Торвальдсом. По сей день, г-н Торвальдс продолжает быть ведущим разработчиком ядра Linux, а разработчики со всего мира вносят свой вклад в ядро ​​Linux. На самом деле, по оценкам, около 10 000 разработчиков из более чем 1000 компаний внесли свой вклад в ядро ​​Linux (поскольку отслеживание началось в 2005 году).

Где Ядро?

Если вы откроете окно терминала и выполните команду ls / boot, вы увидите файл с именем vmlinuz-версия (Где VERSION - это название или номер выпуска). Файл vmlinuz является фактическим загрузочным ядром Linux, а «z» означает, что ядро ​​сжато; поэтому вместо vmlinux мы имеем vmlinuz.

Внутри этого каталога / boot находятся другие важные файлы ядра, такие как initrd.img-VERSION, system.map-VERSION и config-VERSION (где VERSION - это имя или номер выпуска). Эти другие файлы служат для следующих целей:

  • Initrd: используется как небольшой RAMdisk, который извлекает и исполняет фактический файл ядра.
  • system.map: используется для управления памятью, до загрузки ядра.
  • конфиг: инструктирует ядро ​​о том, какие параметры и модули загружать.

Модули

Без модулей ядро ​​было бы не очень полезно. Модули эффективно включают драйверы, необходимые для связи с оборудованием, не потребляя всю вашу системную память. Модули также добавляют функциональность в ядро, такие как связь с периферийными устройствами, управление файловыми системами, безопасность и т. Д. В ядро ​​можно перечислять, добавлять и удалять модули со следующими командами:

  • lsmod будут перечислены все загруженные модули ядра.
  • insmod загрузит модуль ядра в запущенное ядро.
  • rmmod выгрузит модуль из работающего ядра.

Таким образом, вы видите, с помощью некоторых простых команд ядро ​​Linux может быть довольно гибким.

Текущее ядро

На момент написания статьи стабильное ядро ​​Linux было 4.18.5, но не все дистрибутивы Linux будут включать в себя новейшее ядро. Фактически, обновленная версия рабочего стола Elementary OS запускает ядро ​​4.15.0-30. Что означает это число? В случае последнего ядра на элементарной ОС это означает:

  • 4 является основной версией
  • 15 - Малая версия
  • 0-30 - это пересмотр

Также возможно загрузить различные версии ядра Linux из kernel.org и скомпилировать его самостоятельно. Компиляция ядра Linux - задача, которую лучше всего оставить тем, кто действительно знает, что они делают. Неправильно скомпилированное ядро ​​может сделать систему не загружаемой. Итак, если вы не готовы погрузиться в сложную задачу компиляции кода на этом уровне, используйте ядро ​​по умолчанию, которое отправляет и обновляет ваш выбор.