Explication du process de construction du kernel sur les systèmes Ubuntu / Debian

J'entre dans la programmation du kernel Linux et j'ai réussi à build mon propre kernel plusieurs fois maintenant. Cependant, je l'ai fait en utilisant des guides étape par étape trouvés sur Internet et je ne comprends pas vraiment ce qui se passe dans le process de construction. Jusqu'à présent, j'ai trouvé plusieurs façons de build le kernel. L'un est:

make-kpkg -j5 --initrd kernel-image kernel-headers 

Si je comprends bien, make-kpkg est un programme Debian conçu pour build et empackageer des trucs liés au kernel. –initrd est utilisé pour générer automatiquement l'image initrd. Quels sont les deux derniers arguments (kernel-image et kernel-headers) pour?

Une autre façon de build le kernel est juste

 make deb-pkg 

Que fait cette command par rapport à la première command?

En outre, dans ce guide , la construction du kernel se fait par:

 fakeroot debian/rules clean fakeroot debian/rules binary-headers binary-generic 

Quelle est la méthode recommandée pour build le kernel sur Ubuntu? Que se passe-t-il exactement lorsque j'exécute l'une des commands ci-dessus? Si je voulais faire tout ce que l'une des commands ci-dessus fait manuellement, quelles étapes devrais-je prendre?