O initramfs, ou initrd, é responsável por configurar seu sistema de arquivos raiz antes de inicializar o sistema completo. Se você tiver um RAID de software, ele será configurado no initrd. Se você tem criptografia de todo o disco, isso é tratado no initrd. Alguns drivers de armazenamento precisam ter as coisas executadas na userland antes de usá-los, então eles são tratados no initrd. Thre são provavelmente outras coisas que eu estou faltando. Você pode conferir a coisa toda em um sistema Ubuntu procurando em /usr/share/initramfs-tools
. O arquivo, init
, é na verdade o script init que é executado primeiro pelo kernel. Se você olhar a parte inferior, verá onde ele configura a nova raiz FS e executa / sbin / init (que é o upstart)
Mas para um sistema especializado, como um sistema embarcado, tudo isso é mais barulho e complicação. Ele consome uma fração TINY do tempo de inicialização. Estamos levando 1 segundo ou menos, mas isso é mais 1 segundo para reduzir o tempo de inicialização em dispositivos que precisam ser inicializados rapidamente.
O papel de Upstart nessa peça é criar os nós de dispositivos necessários e outras configurações do sistema que não são tratadas pelo initrd / initramfs. Ele precisa inicializar o sistema para tal estado todas as partes necessárias estão presentes para que o sistema inicialize com sucesso na terra do usuário. Isso tudo é apresentado claramente pelo commit associado: link