Estaba siguiendo un tutorial sobre cómo configurar un initramfs personalizado donde dice:
Lo único que falta es / init, el ejecutable en la raíz de initramfs que ejecuta el núcleo una vez que se carga. Debido a que sys-apps / busybox incluye un shell completamente funcional, esto significa que puede escribir su binario / init como un simple script de shell (en lugar de hacerlo una aplicación complicada escrita en Assembler o C que debe compilar).
y da un ejemplo de init como un script de shell que comienza con #!/bin/busybox sh
Hasta ahora, tenía la impresión de que init es el proceso principal que se inicia y que todos los demás procesos del espacio de usuario son eventualmente hijos de init. Sin embargo, en el ejemplo dado, el primer proceso es en realidad a bin/busybox/ sh
partir del cual se genera init posterior.
¿Es esta una correcta interacción? Si, por ejemplo, tuviera un intérprete disponible en ese momento, ¿podría escribir init como un script de Python, etc.?
/
no se desvanece en el aire : se monta (aunque generalmente todo su contenido se elimina antes de ahorrar memoria) . Aún está ahí .switch_root
realiza la llamada al sistemaswitchroot
, que es lo que proporcionaron los desarrolladores del kernel cuando cambiaron el proceso de arranque en el kernel 2.6.algo que requiere initramfs. Es el núcleo que hace la magia.