La raison pour laquelle la plupart des distributions Linux utilisent un ramfs (initramfs) lors du démarrage est que son contenu peut être inclus dans le fichier noyau ou fourni par le bootloader. Ils sont donc disponibles immédiatement au démarrage, sans que le noyau doive les charger quelque part.
Cela permet au noyau d'exécuter des programmes d'espace utilisateur, par ex. configurez les périphériques, chargez les modules, configurez cette bonne matrice RAID qui contient tous les systèmes de fichiers ou demandez même à l'utilisateur le mot de passe de son système de fichiers racine chiffré.
Lorsque cette configuration est terminée, le premier script s'appelle simplement exec() s/sbin/init à partir du système de fichiers racine (maintenant configuré et disponible).
J'ai vu un certain nombre de systèmes où les pilotes eux-mêmes pour les contrôleurs de disque et les rootfs sont chargés via des modules dans un initramfs, plutôt que d'être inclus dans l'image du noyau.
Vous n'avez pas strictement besoin un initramfs à démarrage - si l'image de votre noyau contient tous les pilotes nécessaires pour accéder aux rootfs et vous ne nécessite aucune configuration spéciale ou l'entrée d'utilisateur (comme les tableaux RAID ou les systèmes de fichiers cryptés) pour monter Dans ce cas, il est souvent possible de lancer directement/sbin/init depuis le rootfs.
Voir aussi:
http://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
http://www.kernel.org/doc/Documentation/initrd.txt
Comme une note de côté, certains systèmes (disques de secours, embarqués et autres) peuvent utiliser un ramfs comme système de fichiers racine lorsque le système de fichiers racine réelle est dans un support qui peut être supprimé ou non accessible en écriture (CD, MTD Flash, etc.).
BTW, ramdisks init (comme dans les périphériques _block_ à base de RAM), également connu sous le nom de initrds, ne sont pas vraiment utilisés avec les versions modernes du noyau. Ils ont été remplacés par un système de fichiers basé sur RAM (ramfs). – thkala