Como executo o kernel do Linux?

2

Estou lendo o Desenvolvimento do Kernel do Linux de Robert Love para aprender mais sobre o desenvolvimento do kernel do Linux !

Mas no Capítulo 2: Introdução ao Kernel , sou instruído a baixar e instalar o kernel. Isso me confunde. "Construir o kernel é fácil", diz ele. No entanto, o pensamento de instalar um kernel Linux dentro de um ambiente Linux não faz sentido para mim - como se eu estivesse executando este novo Linux virtualmente?

Os passos que ele dá são para obter a fonte do kernel

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
$ git pull

Em seguida, descompacte o tarball (dois métodos diferentes no caso do GNU zip, mas aqui está o método bzip2),

$ tar xvjf linux-x.y.z.tar.bz2

A partir daí, você constrói o kernel executando make em menuconfig , deconfig , oldconfig , etc.

Então você instala o novo kernel . Ele explica que a instalação é "dependente da arquitetura e do carregador de inicialização" e "consulta as instruções do [meu] gerenciador de inicialização sobre onde copiar a imagem do kernel." Ele então fornece um exemplo de onde se pode copiar a imagem e depois executar

$ make modules_install

e então o capítulo simplesmente não vai mais adiante neste tutorial de instalação do kernel.

É aqui que estou perdido. Até este momento eu entendo todos os comandos até agora (eu tenho usado o Fedora por alguns anos, escrevendo código de sistema em C , etc.) mas eu não entendo esse conceito de " instalando "o kernel do Linux no meu ambiente Linux já. Não há nenhuma explicação sobre o que está acontecendo aqui (talvez ele vá em detalhes mais tarde) ou como realmente fazer o kernel rodar. Eu coloco em um novo disco rígido? Eu corro como uma VM? Eu escolho alguma opção de inicialização na BIOS? Como faço para executá-lo? Este passo não está neste capítulo, nem no capítulo 3 ou 4.

    
por 8protons 06.05.2016 / 02:26

1 resposta

2

make install simplesmente copia a imagem do kernel para o diretório / boot. make modules_install copia os módulos para / lib / modules / kernel-version /. A maioria das distribuições linux hoje em dia inicializam usando o grub, então você precisa executar update-grub para notar a nova imagem do kernel em / boot e adicionar uma entrada para inicializá-lo no arquivo de configuração do grub para que você tenha a opção de inicializar usando esse kernel. Normalmente você também precisa de um initrd contendo os módulos necessários para acessar o hardware de inicialização e alguns scripts de inicialização, e pelo menos nas distribuições baseadas no Debian, você pode gerar isto executando update-initramfs -k kernelversion , antes de executar update-grub .

    
por 06.05.2016 / 03:41