Здравствуйте, друзья! Многие книги о Linux описывают ядро как нечто мистическое, однако я решил разобраться и показать, что на самом деле это просто исполняемый файл. Мы проведем несколько интересных экспериментов, чтобы понять, как работает Linux и взаимодействуют его компоненты.
Итак, что же такое ядро? Это, по сути, посредник между вашим компьютером и программами. Оно предоставляет единый API для взаимодействия с оборудованием, позволяя не писать код для каждого устройства отдельно. Ядро управляет ресурсами системы, распределяя процессорное время и память.
Где найти ядро? Оно находится в каталоге /boot. Например, файл vmlinuz-6.12.48+deb13-amd64 — это сжатый образ ядра.
Первый эксперимент — запустим ядро в виртуальной машине QEMU. Подготовим среду, установим QEMU и запустим ядро с ограниченной памятью. Однако, без файловой системы оно завершится с ошибкой.
Во втором эксперименте мы создадим initramfs — временную файловую систему с первой программой init. Напишем простую программу на Go, которая будет выводить «Hello». После сборки и упаковки мы снова запустим ядро, и оно успешно найдет нашу программу.
Мы увидели, что ядро — это лишь исполняемый файл, который инициализирует систему, и что дистрибутив Linux состоит из ядра и утилит. Теперь черный ящик стал прозрачным — это просто код, который можно собрать и запустить.