Experiência do sistema operacional Compilação do kernel 1-Linux e adição de chamadas do sistema

Compilação do kernel Linux e adição de etapas de chamada do sistema

O autor está usando o ubuntu18.04 , compila e instala a versão do kernel linux-5.3.17

1 Verifique a versão antiga do kernel

Compare com a nova versão do kernel após a instalação

uname -a

2 Código fonte

https://www.kernel.org/
baixe o código fonte para qualquer pasta do ubuntu

3 Digite as permissões de root

Evitar erros causados ​​por permissões insuficientes

su

4 Descompacte o código-fonte e coloque-o em uma pasta específica

-J Use o algoritmo xz para compactar e descompactar arquivos
-x Descompactar
-f Parâmetros necessários
-C Especifique a pasta para descompactar

tar -Jxf linux-5.3.17.tar.xz  -C /usr/src/

5 Adicionar chamada do sistema

No total, 3 etapas, defina você mesmo o conteúdo adicionado

1. Atribua o número de chamada do sistema e modifique a tabela de chamadas do sistema

gedit ./arch/x86/entry/syscalls/syscall_64.tbl

2. Declarar a rotina do serviço de chamada do sistema

gedit ./include/linux/syscalls.h

3. Implemente a rotina do serviço de chamada do sistema

gedit ./kernel/sys.c

6 Instale cada pacote de pré-requisito

Ao compilar e instalar o kernel, você precisa de alguns pacotes de software, instale-os com antecedência para evitar erros posteriormente

apt install libncurses5-dev make openssl libssl-dev bison flex

7 Limpe os arquivos .config .o restantes

Limpe o arquivo .config .o que sobrou devido ao último erro de compilação; se for a primeira compilação, poderá ser ignorado (é claro, não haverá problemas ao executar o comando)

cd /usr/src/linux-5.3.17
make mrproper

8 Configure o kernel

Configure as opções do kernel, todos podem sair por padrão

make menuconfig

9 Compile o kernel

-j6 compila com 6 núcleos de CPU e redireciona os erros de saída para o arquivo error.log para facilitar a visualização.Claro
, se houver apenas dois núcleos,
é mais demorado mudar para -j2 . 2 horas. O autor i7 9a geração, compilação de 6 núcleos por 40 minutos, como referência

// make -j6 2> error.log
make -j2 2> error.log

10 Módulo de compilação

Cerca de 10 minutos

make modules

11 Instale o kernel e os módulos

Instale o módulo primeiro e depois instale o núcleo por
cerca de 10 minutos

// 安装模块
make modules_install
// 安装内核
make install

12 Configurar o gerenciador de inicialização grub

update-grub

13 arquivos intermediários limpos

Limpe os arquivos intermediários.Os arquivos ocupam muito espaço e não têm significado para experimentos subsequentes

make clean

14 Reiniciar

reboot

15 Ver versão do kernel

uname -a

16 Excluir o kernel antigo

su
// 查询并删除旧内核
dpkg --get-selections|grep linux
apt purge ....

17 Teste a chamada do sistema que você adicionou

Escreva um programa de linguagem C, solicite a rotina de serviço do sistema operacional através do número de chamada do sistema

Publicado 9 artigos originais · Curtidas2 · Visitas 559

Acho que você gosta

Origin blog.csdn.net/qq_40939814/article/details/103945878
Recomendado
Clasificación