¿Cómo el kernel "cede" el control a la initialization específica de la distribución?

Siempre me he preguntado cómo el kernel pasa el control al código de un tercero, o específicamente al código específico de distribución, durante el arranque.

He buscado en los files de configuration de GRUB, sospechando que se pasará un parámetro especial al núcleo para que sepa qué hacer una vez que se haya arrancado correctamente, pero no se haya podido encontrar nada. Esto me lleva a sospechar que puede haber ciertos files en la partición raíz que busca el kernel.

Estaría agradecido si alguien pudiera arrojar algo de luz sobre este asunto. ¿Cómo las distribuciones logran esto?

Está codificado, pero puede anular los valores pnetworkingeterminados mediante el parámetro kernel init=...

Desde init/main.c :

 if (execute_command) { run_init_process(execute_command); printk(KERN_WARNING "Failed to execute %s. Attempting " "defaults...\n", execute_command); } run_init_process("/sbin/init"); run_init_process("/etc/init"); run_init_process("/bin/init"); run_init_process("/bin/sh"); panic("No init found. Try passing init= option to kernel. " "See Linux Documentation/init.txt for guidance."); 

Wikipedia tiene un buen artículo sobre el process de inicio de Linux.

Hoy en día, usualmente se usa un initramfs .