Сверху...
make
компилирует и связывает образ ядра. Это один файл с именем vmlinuz
.
make modules
компилирует отдельные файлы для каждого вопроса, на который вы ответили M
во время настройки ядра. Код объекта связан с вашим недавно собранным ядром. (В ответах на вопросы Y
они уже являются частью vmlinuz
, а в ответах на вопросы N
они пропускаются).
make install
устанавливает ваше встроенное ядро в /vmlinuz
.
make modules_install
устанавливает ваши модули ядра в /lib/modules
или /lib/modules/<version>
.
Что касается добавления его в список доступных ядер, об этом позаботится загрузчик. Это отличается для каждого загрузчика, но grub
наиболее распространено на x86 и amd64, поэтому я опишу это. Это на самом деле довольно просто. Граб смотрит /
, /boot
и /lib/modules
для любой вещи, которая выглядит, как будто это может быть рабочее ядро, и добавляет его. И да, это упрощенное описание.
Этот дополнительный «ужасный материал» в документации по Ubuntu - это дополнительный материал для создания deb
пакета. Когда вы делаете это больше, чем для себя, гораздо лучше упаковать это. Вы переключитесь во времени.
Сборка ядра и модулей хранится отдельно, потому что для людей, которым это необходимо (т.е. для разработчиков ядра), они часто вносят изменения только в модуль. Они могут применить свои изменения, перестроить и установить только модули. Это экономит много времени, когда это нужно делать 20 раз в день. Он никогда не будет обновлен, чтобы иметь одну make everything
команду. Вы вместо этого запускаете, make && make modules && make install && make modules_install
как написано в документации . Процесс сборки благоприятствует разработчикам ядра, а не вам. И так и должно быть.
На самом деле ни у кого, кроме разработчиков ядра или дистрибутивов дистрибутивов, практически нет причин для компиляции ядра. Практически в любых обстоятельствах нужная вам функция ядра уже создана для вас и доступна в одном из предварительно упакованных ядер. Есть исключения, но они чрезвычайно редки в наши дни.
Не то, чтобы я отговаривал вас от создания собственного ядра, я на самом деле призываю вас сделать это. Я думаю, что создание вашего ядра с нуля - бесценная практика для изучения того, как все это работает там. Частично потому, что, возможно, однажды вы будете исключением, которое необходимо. Но это также многому научит вас о ядре и процессе загрузки в целом. Вы будете лучшим человеком за то, что сделали это.