Приветствую всех любителей Linux! В большинстве учебников ядро представляется как нечто таинственное, не поддающееся объяснению. Однако я пришел к выводу, что это всего лишь исполняемый файл, который можно скомпилировать и запустить, как любой другой бинарник. Для начала, что такое ядро? Это своего рода посредник между аппаратным обеспечением и программами, предоставляющий единый API для взаимодействия с различными устройствами. Ядро управляет ресурсами, выделяя процессорное время и оперативную память запущенным программам.
Чтобы найти ядро, загляните в директорию /boot. Там вы обнаружите файл vmlinuz, представляющий собой сжатый образ ядра. Мы проведем два эксперимента: первый — запуск ядра в эмуляторе QEMU, второй — добавление первой программы, чтобы избежать ошибки при запуске. Мы создадим временную файловую систему initramfs и простую программу на Go, которая будет выводить сообщение в консоль. После успешного запуска мы увидим, как ядро инициирует процесс, и получим свой первый процесс с PID 1. Теперь стало ясно, что ядро — это просто код, который можно собрать и запустить, а дистрибутив Linux — это ядро плюс утилиты.