Les périphériques peuvent être montés sur un path. Par exemple "/ dev / sda1" peut être monté sur "/ home / user". Ce que je ne comprends pas, c'est comment et où le "/" est monté pendant le démarrage. Toute aide expliquant?
Pendant le démarrage d'un système Unix, le kernel fait quelques choses qu'il ne fait pas en fonctionnement normal. L'une de ces choses consiste à monter un système de files sur le directory /
; ceci est très différent des opérations de assembly normales car le assembly n'est pas déclenché par un appel système de mount
et le directory cible n'est pas un directory existant. Une autre chose est d' exécuter un programme en tant que PID 1 , ce qui est différent du fonctionnement normal car cela crée un process sans dupliquer un process existant .
La façon dont ce assembly "magique" du directory racine est très différent dans les différentes variantes Unix. Le kernel choisit le périphérique à monter en fonction des parameters de configuration qui peuvent être spécifiés de différentes manières: configuration de la compilation, configuration du runtime dans l'image du kernel, configuration de l'exécution dans un location memory prédéfini, parameters de la command line, … fonctionne sur votre machine, vous devriez regarder la documentation de votre variante Unix et find comment votre machine est configurée.
Pour donner une idée de son fonctionnement, voici un aperçu du fonctionnement d'un kernel Linux moderne. Ce n'est pas l'exemple le plus simple car Linux a beaucoup d'historique et de cas d'utilisation variés.
/
, qui consiste en des files stockés dans la RAM. Ce système de files spécial s'appelle initramfs ; c'est une instance du type de système de files rootfs. Le file initramfs est rempli par le contenu transmis par le chargeur de démarrage via un protocole dépendant de l'architecture, compilé directement dans l'image du kernel chargée en memory par le chargeur de démarrage. /
faisant partie d'un set restreint (mais grand) de types de volumes reconnus par le code d'initialisation dans le kernel. Ces types de périphériques incluent tout système de files sur des types communs de partitions sur des types de disques courants (tout ce qui ressemble à un SCSI, y compris ATA, USB, etc.), ainsi que des disques RAM et des assemblys NFS. Cela provient du manuel bootup(7)
sur une machine Ubuntu:
Un certain nombre de composants différents sont impliqués dans le démarrage du système. Immédiatement après la mise sous tension, le BIOS du système effectuera une initialisation matérielle minimale et contrôlera manuellement un chargeur de démarrage stocké sur un périphérique de stockage persistant. Ce chargeur de démarrage invoque ensuite un kernel du operating system à partir du disque (ou du réseau). Dans le cas de Linux, ce kernel extrait et exécute une image disque initiale (
initrd
), telle que générée pardracut(8)
, qui search le système de files racine (éventuellement en utilisantsystemd(1)
). Après avoir trouvé et monté le système de files racine, l'initrd
remet le contrôle au gestionnaire système de l'hôte (tel quesystemd(1)
) stocké sur l'image du operating system, qui est ensuite chargé de vérifier tout le matériel restant frayant tous les services configurés.
Vous auriez trouvé cela par le man boot
, en le lisant et en ne trouvant pas la réponse, mais en voyant "Voir aussi: bootup(7)
" en bas du manuel.
Étant curieux, j'ai ensuite regardé le manuel d' initrd
:
Dans la première phase de démarrage, le kernel démarre et monte un système de files racine initial à partir du contenu de
/dev/initrd
(par exemple, disque RAM initialisé par le chargeur de démarrage). Dans la deuxième phase, des pilotes supplémentaires ou d'autres modules sont chargés à partir du contenu du périphérique racine initial. Après le chargement des modules supplémentaires, un nouveau système de files racine (c'est-à-dire le système de files racine normal) est monté à partir d'un autre périphérique.
Vous avez mentionné "Unix", donc je vais vous montrer la documentation pour le bootstrap du système de première étape d' OpenBSD et le bootstrap de deuxième étape aussi.