Se você está perguntando se você pode simplesmente instalar ou atualizar um kernel "sobre" um sistema existente sem instalar um monte de outros programas?
O kernel do Linux é um arquivo binário geralmente chamado de vmlinuz-x.x.x-x-name
no diretório boot
(que normalmente é uma pequena partição separada no início do disco rígido) onde os x's são um número de versão. "name" é apenas um nome escolhido para o kernel que pode ser configurado em tempo de compilação, você pode usá-lo para identificar que tipo de máquina ou arquitetura o kernel é ou por qualquer outro motivo.
Ele é carregado no boottime por um gerenciador de inicialização, normalmente GRUB
, que é invocado pelo código de inicialização no MBR, que é invocado pela ROM do BIOS. Uma vez carregado, não é "aberto" ou protegido especialmente. Então você pode substituir esse arquivo por outro kernel funcional. Mas, GRUB
tem um recurso interessante que permite selecionar vários kernels para inicializar. Portanto, é muito inteligente adicionar seu kernel adicional a essa lista, mas manter o kernel de trabalho original conhecido apenas no caso de as coisas darem errado.
Quase todas as distribuições que acredito fazem um kernel "modular" onde os drivers de dispositivo estão em arquivos separados. Portanto, a maioria dos kernels precisa de um sistema de arquivos contendo drivers disponíveis no momento da inicialização e é para isso que um "initrd" (disco de RAM inicial) ou "initramfs" serve. GRUB
carregará o kernel em um local na memória, e o initrd em um local diferente, e irá para o kernel informando onde o initrd está, iniciando o Linux.
Os drivers também podem ser "incorporados" ao kernel e, portanto, são carregados e disponibilizados automaticamente quando o carregador de inicialização carrega a imagem vmlinuz
. Kernels que são feitos para trabalhar em diversos sistemas (como os da maioria das distribuições) geralmente minimizam o que é embutido no kernel, porque o hardware disponível será escaneado mais tarde no processo de boot e apenas os módulos que representam o hardware atual serão carregados.
Existem ferramentas para modificar e criar initrds. O Debian tem boas ferramentas e imagino que outras distribuições também.
Então, se você baixar um kernel mais recente do kernel.org e compilá-lo para criar uma nova imagem binária do kernel, você precisa fazer ou atualizar um initrd com drivers que funcionam com esse kernel. O antigo initrd não funciona porque os drivers têm que combinar com a versão do kernel que está rodando.
O arquivo initrd é denominado initrd.img-x.x.x.x-name
similarmente ao kernel, e pode ser substituído após a inicialização, assim como o kernel, e a prática recomendada indicaria que você não excluiria um initrd de trabalho conhecido até saber que pode inicializar em seu novo kernel + initrd com sucesso.
Espero que forneça algum contexto.
Se você estiver procurando por uma instalação Linux "barebones" que tenha pouco ou nenhum programa adicional instalado, minha opção favorita sempre foi instalar a imagem Debian netinst
. Praticamente você tem apenas as ferramentas mais básicas necessárias para executar um console de texto de linha de comando e nano
como editor de texto.