Hmm. Isso não deve ser complicado, mas também é muito complexo:)
Você pode simplesmente fazer o que Alexander sugeriu ( init=/bin/bash
), e você se sairá bem.
O processo init é o que o kernel chama, e inicia todo o seu userland. Terminal de login incluído. Se o seu init apenas gerar esse terminal bash, você está bem. Mas se esse terminal falhar ou sair, o init deve limpar. Se alguns dos processos que você iniciar do terminal morrer, você precisará limpar. Se eles morrerem, então os seus filhos precisam de um novo processo, será o seu início.
Eu recomendo dedicar 10 minutos para ler isto, é uma visão geral muito amigável do que o init
faz:
Então você vai ficar mais perto de entender o que significa rodar o seu próprio init.
Uma parte relevante desse link diz:
There is only one thing we need to do: provide an initial binary to launch at any of these paths: /sbin/init, /etc/init, /bin/init, or /bin/sh. This process (init) is run as pid 1.
The init process needs to do two things:
Never exit (if init exits, the kernel panics)
Reap zombie processes
O restante do texto implementa um init simples.