¿Cuál es la diferencia entre el gestor de arranque, el código de inicio y el cargador de arranque?

Un gestor de arranque es responsable de mover, y en algunos casos descomprimir, el núcleo del sistema operativo del almacenamiento a largo plazo (es decir, flash o disco duro) a la memoria principal (RAM) para que la CPU lo ejecute. Un cargador de arranque es otro término para el gestor de arranque.

El código de inicio, sin embargo, es ligeramente diferente. El código de inicio se refiere al puñado de subrutinas que se ejecutan cuando el gestor de arranque controla el núcleo por primera vez. Estas rutinas están escritas en código de máquina para la arquitectura de destino y configuran parámetros dentro de la CPU de destino que permiten la ejecución de otros programas y realizan tareas críticas como configurar la pila, poner a cero el BSS y copiar la sección de datos del núcleo desde el almacenamiento a largo plazo hasta la memoria principal. Una vez ejecutado, el código de inicio salta al punto de entrada del kernel, generalmente definido bajo el nombre del símbolo ‘main’ para la inicialización del sistema de nivel superior, como la creación de instancias de controladores de dispositivo y periferia del sistema.

Todos son iguales

El cargador de arranque reside en una memoria primaria del procesador. Configura el procesador con inicialización de memoria secundaria para cargar el sistema operativo principal en el procesador.

El cargador de arranque es el primer programa que ejecuta el procesador. Después de reiniciar o encender, comienza a ejecutarse.

Solo EXPLORA las cosas.

Bootloader, Startup code y bootstrap loader son una misma cosa y se refieren al fragmento de código que carga el sistema operativo en la memoria cuando se inicia el sistema. Si este código no está presente, luego del encendido, el sistema no entiende qué hacer y permanece en estado suspendido.