Je pense que vous devriez faire la distinction entre:
compile , v: Pour utiliser un compilateur pour traiter le code source et produire du code exécutable [1] .
et
install , v: pour se connecter, configurer ou préparer quelque chose à utiliser [2] .
La compilation produit des exécutables binaires à partir du code source. L'installation met simplement ces exécutables binaires au bon endroit pour les exécuter plus tard. Ainsi, l'installation et l'utilisation ne nécessitent pas de compilation si les binaires sont disponibles. Pensez à «compiler» et «installer» comme «cuisiner» et «servir», en conséquence.
Maintenant, vos questions:
- Le noyau est écrit en C, mais comment le noyau a-t-il été compilé sans un compilateur installé?
Le noyau ne peut pas être compilé sans compilateur, mais il peut être installé à partir d'un binaire compilé.
Habituellement, lorsque vous installez un système d'exploitation, vous installez un noyau précompilé (exécutable binaire). Il a été compilé par quelqu'un d'autre. Et seulement si vous voulez compiler le noyau vous-même, vous avez besoin du source et du compilateur, et de tous les autres outils.
Même dans les distributions «basées sur les sources» comme gentoo, vous commencez par exécuter un binaire compilé.
Ainsi, vous pouvez vivre toute votre vie sans compiler les noyaux, car vous les avez compilés par quelqu'un d'autre.
- Si le compilateur C est installé sur ma machine avant la compilation du noyau, comment le compilateur lui-même peut-il être compilé sans qu'un compilateur soit installé?
Le compilateur ne peut pas être exécuté s'il n'y a pas de noyau (OS). Il faut donc installer un noyau compilé pour exécuter le compilateur, mais il n'est pas nécessaire de compiler le noyau lui-même.
Encore une fois, la pratique la plus courante consiste à installer les binaires compilés du compilateur et à les utiliser pour compiler tout le reste (y compris le compilateur lui-même et le noyau).
Maintenant, problème de la poule et de l'œuf. Le premier binaire est compilé par quelqu'un d'autre ... Voir une excellente réponse de dmckee.