Um lugar para começar seria o Buildroot .
O que é isso? É um conjunto de scripts / makefiles que permite produzir um sistema Linux literalmente do zero. Ele puxa para baixo todos os componentes relevantes, constrói o compilador cruzado no host. - praticamente tudo.
Ele foi projetado principalmente para o trabalho incorporado - como tal, contém uclibc em vez de glibc e faltam etapas de compilação para muitos componentes, por exemplo, Gnome e alguns ambientes de desktop - no entanto, se você estiver criando um CD ao vivo, é absolutamente brilhante. Não se limita aos CDs ao vivo, é claro. Eu digo isso - ele vem com Qt incorporado.
A versão estável mais recente vem com o grub 0.97, que pode não atender aos seus requisitos.
Menciono isso porque, embora o Linux From Scratch seja ótimo, ele explica como concluir todo o processo, é demorado, demorado e requer muita paciência. O Buildroot pode ser adaptado para incluir o que você precisa; como uma experiência de aprendizado, a capacidade de usar os menuconfig
menus de estilo e obter algo que inicializa e funciona é excelente. Você também pode ver como ele faz tudo antes de adicionar recursos posteriores.
Em termos de configuração do seu kernel, não posso recomendar mais fortemente que você pegue a sua configuração existente (geralmente disponível em /boot
), copie-a para a árvore do kernel .config
e execute make oldconfig
e percorra as novas opções. É garantido que as opções padrão funcionam da sua distribuição; se você começar absolutamente do zero, poderá criar algo inutilizável.
/sbin/init
(a menos que configurado de outra forma). Este programa pode fazer o que você quiser. Existem algumas opções comuns a serem usadas/sbin/init
, como Upstart, sysvinit, systemd ou apenas bash. A partir daí, esse programa está no controle. Se alguma vez sair, o kernel falhará, portanto deve ser capaz de iniciar outros programas.