Conocimiento relacionado con el arranque del sistema Linux

  

La PC inicia el sistema Linux desde el disco duro en dos fases:

1. El BIOS realiza una prueba automática en el hardware y encuentra el programa de arranque en el MBR. [Este paso tiene el programa BIOS que se ha solidificado en la placa base.]

2. Una vez que el control se asigna a la rutina de arranque, la longitud del MBR en el disco duro se fija en 512 bytes. El propio MBR se divide en dos partes: los primeros 446 bytes son el programa de la rutina de arranque y el resto es la tabla de particiones. El propósito del programa Bootstrap es encontrar los parámetros de inicio, obtener la imagen del kernel en el disco, cargarla en la memoria y pasar los parámetros de arranque, y finalmente pasar el control de la CPU al kernel.

Dos BootLoaders comunes: LILO, GRUB

Dos archivos usados ​​en el inicio: vmlinux e initrd

Vmlinux

Explicación de Wikipedia
>

En los sistemas Linux, vmlinux es un archivo ejecutable estáticamente vinculado que contiene el kernel de Linux en uno de los formatos de archivo de objetos compatibles con Linux, que incluye ELF, COFF y a.out. El archivo vmlinux puede ser necesario para la depuración del kernel , generación de tablas de símbolos u otras operaciones, pero debe poder iniciarse antes de ser utilizado como un kernel del sistema operativo agregando un encabezado de arranque múltiple, un sector de arranque y rutinas de configuración.

Vmlinux es un archivo ejecutable compilado en el formato Los soportes de Linux, como: ELF, COFF, a.out, se usan generalmente para la depuración del kernel, la generación de tablas de símbolos. Si desea colocarlo en el kernel como un archivo ejecutable, debe agregar la parte relevante del inicio para que sea un archivo de inicio.

Initrd:

Al igual que otros sistemas Unix, el sistema operativo Linux primero inicia el kernel en la memoria. El núcleo reside a lo largo de todo el ciclo de vida del sistema operativo y las aplicaciones, donde la aplicación (software) se ejecuta dentro del espacio de usuario y está bajo el control del núcleo.

Para minimizar la memoria de carga, algunos programas centrales de Linux se convierten en módulos y se pueden cargar dinámicamente en el sistema.

El kernel puede acceder a los archivos en el sistema initrd durante el proceso de arranque. El contenido del archivo se monta como un archivo de bucle. En los primeros días, el initrd se colocó en un pequeño disquete. El initrd generalmente se comprime en un tipo gzip, y el gestor de arranque (LILO, GRUB) indica la ubicación del initrd central en el momento del arranque.

La diferencia entre Vmlinux e imagen

Vmlinux es un archivo en formato elf, imagen es un archivo que vmlinux solo retiene el segmento de datos y el segmento de texto después de la operación de objcopy, generalmente será imagen Almacenado después de la compresión, como zimage.Uimage se basa en zimage más el encabezado de 0x40 que uboot puede proporcionar, y se usa con uboot.


Copyright © Conocimiento de Windows All Rights Reserved