Bootstrapping (informática)
# Bootstrapping (informática)

La palabra inglesa bootstrapping es generalmente un término utilizado para describir el arranque, o proceso de inicio de cualquier ordenador. Suele referirse al programa que arranca un sistema operativo como por ejemplo GRUB, LiLo (utilizados en sistemas GNU/Linux, por ejemplo), BCD o NTLDR (utilizados en sistemas Windows). Se ejecuta tras el proceso POST (power-on self-test) del BIOS. También es llamado «Boot loader» (cargador de inicio).

## Proceso de arranque

Cuando un equipo es encendido:

* Se ejecuta el POST, que se encuentra en la dirección F000:FFF0, que pertenece al ROM-BIOS, destinada a realizar una serie de tests e inicializaciones de los componentes electrónicos conectados (hardware).
* Se carga del disco primario el primer sector (cilindro 0, cabeza 0, sector 1) en la dirección 0000:7C00 (7C00 lineal).
* Se comprueba que contenga código válido (debe estar firmado con los valores 0x55 y 0xAA en bytes de las posiciones 511 y 512 respectivamente), en cuyo caso se salta a esa dirección (a la que apunta CS:IP).

## Entornos de programación

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. 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

También, por ejemplo, es conocido ese 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.

