Vous voulez améliorer cette question ? Mettez à jour la question afin qu'elle se concentre sur un seul problème en modifiant ce message.
Fermé il y a 4 ans.
Améliorer cette question
Je m'intéresse à Linux et je le creuse depuis un moment. Je viens d'apprendre à compiler un noyau Linux à partir des sources et à le démarrer avec Grub, ce qui vous amène au shell du noyau.
Maintenant, dès que le noyau est chargé en mémoire, il recherche le init
pour le charger. Mon objectif est de créer un shell (qu'un utilisateur normal peut utiliser - comme bash
).
Alors, comment puis-je l'apporter ?
Dois-je configurer init pour charger le shell bash ou puis-je faire quelque chose ?
Je construis ma propre distribution et j'ai juste besoin que la distribution ait un shell (bash) et rien d'autre.
Réponse acceptée :
Hmm. Cela ne devrait pas être compliqué à réaliser, mais c'est aussi très complexe 🙂
Vous pouvez simplement faire ce qu'Alexander a suggéré (init=/bin/bash
), et tout ira bien.
Le processus init est ce que le noyau appelle, et il lance tous de votre espace utilisateur. Terminal de connexion inclus. Si votre init ne fait que générer ce terminal bash, tout va bien. Mais si ce terminal plante ou se ferme, init est supposé nettoyer. Si certains des processus que vous lancez depuis le terminal meurent, vous devez nettoyer. S'ils meurent, alors leur les enfants ont besoin d'un nouveau processus parent, ce sera votre init.
Je recommande fortement de consacrer 10 minutes à lire ceci, c'est un aperçu très convivial de ce qu'est init
fait :
http://tilde.town/~elly/userland.txt
Ensuite, vous vous rapprocherez pour comprendre ce que cela implique d'exécuter votre propre init.
Une partie pertinente de ce lien indique :
Il n'y a qu'une seule chose à faire :fournir un binaire initial à lancer sur l'un de ces chemins :/sbin/init, /etc/init, /bin/init ou /bin/sh. Ce processus (init) est exécuté en tant que pid 1.
Le processus init doit faire deux choses :
Ne jamais quitter (si init se termine, le noyau panique)
Récoltez les processus zombies
Le reste du texte implémente alors un simple init.