Bootstrapping (informática)
La palabra inglesa bootstrapping es un término utilizado para describir el arranque o el proceso de inicio de cualquier ordenador. El término hace referencia al proceso que inicia el gestor de arranque, un programa ejecutado por el BIOS cuando se enciende una computadora, encargándose de la inicialización del sistema operativo y de los dispositivos.[1]
La palabra "boot" es la abreviatura de bootstrap o bootstrap load y deriva de la frase en inglés "to pull oneself up by one's bootstraps" (levantarse por medios propios).[2][3] Suele referirse al programa que arranca un sistema operativo, como por ejemplo GRUB, LiLo (utilizados en sistemas GNU/Linux), BCD o NTLDR (utilizados en sistemas Windows). Se ejecuta tras el proceso POST (power-on self-test, «autoprueba de arranque») del BIOS, que realiza una serie de comprobaciones e inicializaciones de los componentes electrónicos conectados.[1][4] También se llama «Boot loader» (cargador de inicio).
Proceso de arranque
[editar]Cuando un equipo se enciende, el proceso POST se realiza siempre antes de cargar el sistema operativo o cualquier otro software, ya que POST está almacenado en la BIOS y está configurado para ser uno de los primeros procesos que se realizan.[4]
El proceso típico es el siguiente:
- Se ejecuta el POST, destinado a realizar una serie de comprobaciones e inicializaciones de los componentes hardware, incluyendo la verificación de los registros del procesador, la integridad del código de la BIOS, la inicialización de la memoria RAM y la comprobación del controlador del teclado.[1]
- Se carga del disco primario el primer sector (512 bytes) en la dirección de memoria física 0x7C00.[5]
- Se comprueba que contenga código válido mediante la verificación de la firma de arranque (boot signature), que consiste en los valores hexadecimales 0x55 y 0xAA en los bytes de las posiciones 510 y 511 del sector de arranque.[5]
- Si la verificación es exitosa, el control se transfiere a esa dirección para iniciar el gestor de arranque.
Gestores de arranque
[editar]Un cargador o gestor de arranque (bootloader) es un programa sencillo diseñado exclusivamente para preparar todo lo que necesita el sistema operativo para funcionar. Normalmente se utilizan los cargadores de arranque multietapas, en los que varios programas pequeños se suman los unos a los otros, hasta que el último de ellos carga el sistema operativo.[1]
GRUB
[editar]GNU GRUB (GNU GRand Unified Bootloader) es un cargador de arranque múltiple, desarrollado por el proyecto GNU, que permite elegir qué sistema operativo arrancar de los instalados.[6] GRUB fue inicialmente diseñado e implementado por Erich Stefan Boleyn como parte del trabajo en el arranque del sistema operativo GNU Hurd desarrollado por la Free Software Foundation. GRUB es un cargador de arranque que cumple la Especificación Multiboot, permitiendo arrancar de forma uniforme los kernels que cumplen esta especificación.[6]
LILO
[editar]LILO ("Linux Loader") fue un gestor de arranque que permite elegir con qué sistema operativo trabajar al momento de iniciar un equipo. Fue desarrollado inicialmente por Werner Almesberger en 1992.[7] LILO funciona en una variedad de sistemas de archivos y puede arrancar un sistema operativo desde el disco duro o desde un disco flexible externo, permitiendo seleccionar entre 16 imágenes en el arranque.[7]
Entornos de programación
[editar]El bootstrapping también puede referirse al proceso mediante el cual se han desarrollado entornos de programación cada vez más complejos a partir de otros más simples. En el desarrollo de software, el bootstrapping se refiere al proceso de construir herramientas o entornos de desarrollo más avanzados utilizando herramientas básicas previas.[8] En ciencias de la computación, el bootstrapping es la técnica para producir un compilador auto-compilable, es decir, un compilador escrito en el lenguaje de programación fuente que pretende compilar.[9]
El entorno más simple sería, quizás, un editor de textos muy sencillo (p. ej. ed) y un programa ensamblador. Utilizando estas herramientas, se puede escribir un editor de texto más complejo y un compilador simple para un lenguaje de más alto nivel y así sucesivamente, hasta obtener un entorno de desarrollo integrado y un lenguaje de programación de muy alto nivel.
Componentes de un sistema
[editar]También se conoce este término para «construir» un sistema completo a partir de sus componentes base, o bien de previas versiones precompiladas de esos componentes, como por ejemplo una instalación vía «stage1» en Gentoo Linux o 'net install' en Debian.
Véase también
[editar]Referencias
[editar]- ↑ a b c d «What Is Bootstrapping (Computing)?» (en inglés). ITU Online IT Training. 28 de agosto de 2024. Consultado el 4 de octubre de 2025.
- ↑ Harper, Douglas. «Etymology of bootstrap» (en inglés). Online Etymology Dictionary. Consultado el 4 de octubre de 2025.
- ↑ «How the 'bootstrap' idiom became an American cultural ideal» (en inglés). The Christian Science Monitor. 4 de octubre de 2021. Consultado el 4 de octubre de 2025.
- ↑ a b «Bootload: Bootload Your Way to Smooth System Upgrades» (en inglés). Lenovo. Consultado el 4 de octubre de 2025.
- ↑ a b «MBR (x86)» (en inglés). OSDev Wiki. Consultado el 4 de octubre de 2025.
- ↑ a b «GNU GRUB Manual 2.12» (en inglés). Free Software Foundation. 5 de diciembre de 2023. Consultado el 4 de octubre de 2025.
- ↑ a b «¿Qué es LILO (Linux Loader)?». AlexHost. 12 de febrero de 2025. Consultado el 4 de octubre de 2025.
- ↑ LeBlanc-Williams, M. (19 de junio de 2019). «A Brief History of Bootstrapping» (en inglés). Adafruit Learning System. Consultado el 4 de octubre de 2025.
- ↑ «Bootstrapping in Compiler Design» (en inglés). GeeksforGeeks. 20 de enero de 2025. Consultado el 4 de octubre de 2025.