O kernel inteiro é carregado na memória durante a inicialização, normalmente junto com um initramfs
atualmente. (Ainda é possível configurar um sistema para inicializar sem um initramfs
, mas isso é incomum em desktops e servidores.)
A função initramfs
é fornecer a funcionalidade necessária para montar os sistemas de arquivos "reais" e continuar inicializando o sistema. Isso envolve módulos do kernel, e também vários binários: você precisa de pelo menos udev
, talvez alguma rede, e kmod
que carrega módulos.
Os módulos podem ser carregados no kernel depois de inicializar, então não há preparação especial do kernel pelo initramfs
. Eles podem ser armazenados em qualquer lugar: o initramfs
, /lib/modules
no sistema de arquivos real, em uma árvore de desenvolvimento se você estiver desenvolvendo um módulo ... O initramfs
precisa conter apenas os módulos que são necessários para montar a raiz sistema de arquivos (que contém o restante).