El proceso principal de compilación del kernel de Linux: configuración, compilación e instalación .
- La configuración se realiza principalmente
Kconfig
proporcionando una interfaz gráfica - La compilación se basa principalmente en
Kbuild
el sistema de compilación, y la ejecuciónmake
completa la compilación. - La instalación se basa principalmente en
Kbuild
el script proporcionado y luego se ejecutamake
para completar la instalación.
Kconfig
Kconfig
Para la configuración del kernel, make menuconfig
el menú desplegado proviene de Kconfig
.
make menuconfig
El menú incluye múltiples capas, y cada capa se Kconfig
genera correspondientemente en cada directorio.Después de seleccionar la configuración, el resultado de la configuración se guardará en .config
el archivo.
Al ejecutarse Makefile
, la compilación del kernel Makefile
se .config
realizará según el resultado de.
Sintaxis de Kconfig
Kconstruir
Kbuild
Es decir Kernel build
, es un sistema de compilación para el kernel.
En términos simples, Kbuild
es Makefile
una extensión de las funciones gramaticales.
Por ejemplo, kbuild
se definen muchas variables útiles, como obj-m`` obj-y
, -objs
etc., siempre que el usuario asigne valores a estas variables, kbuild
el código se compilará automáticamente en el kernel o se compilará en un módulo.
Linux
Cuando se compila el kernel kbuild
, escaneará dos veces Linux
: Makefile
primero leerá el archivo de nivel superior y luego leerá el archivo kbuild por segunda vez para compilar el kernel Makefile
de acuerdo con el contenido leído .Makefile
Linux
El núcleo Makefile
consta de cinco partes:
Información a través del tren: ruta de aprendizaje de la tecnología del código fuente del kernel de Linux + video tutorial del código fuente del kernel
Aprendizaje a través del entrenamiento: código fuente del kernel de Linux, ajuste de memoria, sistema de archivos, gestión de procesos, controlador de dispositivo/pila de protocolo de red
Makefile
El nivel superior Makefile
es la entrada compilada, analicemos el Makefile
archivo de nivel superior.
El nivel superior Makefile
pasará alguna información a cada subdirectorio Makefile
, algunas variables, por ejemplo , no solo se definen y asignan vmlinux-dirs
en el nivel superior , sino que también se expanden.Makefile
arch/*/Makefile