¿Cuál es la diferencia entre una imagen de arranque, un núcleo y firmware?

Cuando enciende o reinicia un microcontrolador, obtendrá la primera instrucción de su ubicación de reinicio, que generalmente será 0x00000000. El primer conjunto de instrucciones que básicamente inicializa el sistema y estas instrucciones se almacenan en la dirección de reinicio se denomina cargador de arranque. El trabajo principal de un gestor de arranque es inicializar el sistema y cargar el kernel o la imagen del firmware en la RAM y dar el control al kernel o al firmware.

Un gestor de arranque puede ser tan simple como pocas inicializaciones como

  1. Inicialización de la CPU
  2. Inicialización y configuración de PLL y reloj
  3. Configuración de IVT
  4. Inicialización de RAM
  5. Inicialización periférica, etc.

Una vez hecho esto, busca el núcleo en los sistemas basados ​​en el sistema operativo o el firmware binario en los sistemas sin sistema operativo y lo copia a la RAM y le da el control al núcleo o al firmware para su ejecución.

El gestor de arranque puede ser tan complejo como u-boot que funciona como mini OS. Es compatible con shell, sistema de archivos, carga de red, etc.

Ahora el núcleo es básicamente el componente principal de Linux o cualquier otro sistema operativo. Una imagen del kernel generalmente contiene controladores de dispositivos, administración de procesos, administración de memoria y otros componentes centrales del sistema operativo. En los sistemas basados ​​en el sistema operativo, el gestor de arranque generalmente busca la imagen del núcleo configurada en el archivo de configuración del cargador de arranque y la carga en la RAM.

En los sistemas operativos menos integrados, el binario de la aplicación es el firmware. El gestor de arranque copia el firmware en la RAM y le da control al firmware para su ejecución.

La imagen de arranque corresponde al disco RAM inicial (initrd). Es una forma mínima del sistema de archivos que se monta antes de montar el sistema de archivos real.
Kernel es nuestro “KERNEL” en sí mismo. El núcleo del sistema operativo donde residen todos los módulos.
El firmware en el contexto de la computadora denota el BIOS. El programa almacena en la memoria no volátil (ROM) que realiza varias comprobaciones y actualiza los dispositivos conectados a la computadora y comprueba si funciona bien o no.