De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Un diagrama de flujo del arranque de una computadora.

En informática , el arranque es el proceso de iniciar una computadora . Puede iniciarse mediante hardware , como presionar un botón, o mediante un comando de software . Una vez que se enciende, la unidad central de procesamiento (CPU) de una computadora no tiene software en su memoria principal , por lo que algunos procesos deben cargar software en la memoria antes de que se pueda ejecutar. Esto puede realizarse mediante hardware o firmware en la CPU o mediante un procesador independiente en el sistema informático.

Reiniciar una computadora también se llama reinicio , lo que puede ser "difícil", por ejemplo, después de que la energía eléctrica a la CPU se apaga y enciende, o "suave", donde no se corta la energía. En algunos sistemas, un arranque suave puede borrar opcionalmente la RAM a cero. Tanto el arranque duro como el suave se pueden iniciar mediante hardware, como presionar un botón o mediante un comando de software. El arranque se completa cuando se alcanza el sistema operativo en tiempo de ejecución , normalmente el sistema operativo y algunas aplicaciones, [nb 1] .

El proceso de devolución de un equipo desde un estado de sueño (suspensión) no implica el arranque; sin embargo, restaurarlo de un estado de hibernación sí lo hace. Como mínimo, algunos sistemas integrados no requieren una secuencia de inicio notable para comenzar a funcionar y, cuando se encienden, pueden simplemente ejecutar programas operativos que están almacenados en la ROM. Todos los sistemas informáticos son máquinas de estado , y un reinicio puede ser el único método para volver a un estado cero designado desde un estado bloqueado no intencionado.

Además de cargar un sistema operativo o una utilidad independiente, el proceso de arranque también puede cargar un programa de volcado de almacenamiento para diagnosticar problemas en un sistema operativo.

Boot es la abreviatura de bootstrap [1] [2] o bootstrap load y se deriva de la frase para levantarse a sí mismo por los propios bootstraps . [3] [4] El uso llama la atención sobre el requisito de que, si la mayoría del software se carga en una computadora mediante otro software que ya se está ejecutando en la computadora, debe existir algún mecanismo para cargar el software inicial en la computadora. [5] Las primeras computadoras usaban una variedad de métodos ad-hoc para guardar un pequeño programa en la memoria para resolver este problema. La invención de la memoria de solo lectura(ROM) de varios tipos resolvió esta paradoja al permitir que las computadoras se enviaran con un programa de inicio que no se podía borrar. El crecimiento de la capacidad de ROM ha permitido implementar procedimientos de puesta en marcha cada vez más elaborados.

Historia [ editar ]

Interruptores y cables utilizados para programar ENIAC (1946)

Hay muchos métodos diferentes disponibles para cargar un programa inicial corto en una computadora. Estos métodos van desde una entrada física simple hasta medios extraíbles que pueden contener programas más complejos.

Ejemplos de ROM previos al circuito integrado [ editar ]

Primeros ordenadores [ editar ]

Las primeras computadoras en las décadas de 1940 y 1950 fueron esfuerzos de ingeniería únicos que podían tardar semanas en programarse y la carga de programas era uno de los muchos problemas que tenían que resolverse. Una de las primeras computadoras, ENIAC , no tenía ningún programa almacenado en la memoria, pero se configuraba para cada problema mediante una configuración de cables de interconexión. Bootstrapping no se aplicó a ENIAC, cuya configuración de hardware estaba lista para resolver problemas tan pronto como se aplicó la energía.

El sistema EDSAC , la segunda computadora con programa almacenado que se construyó, utilizó interruptores de pasos para transferir un programa fijo a la memoria cuando se presionó el botón de inicio. El programa almacenado en este dispositivo, que David Wheeler completó a fines de 1948, cargó más instrucciones de la cinta perforada y luego las ejecutó. [6] [7]

Primeras computadoras comerciales [ editar ]

Los primeros ordenadores programables para la venta comercial, como el UNIVAC I y el IBM 701 [8], incluían funciones para simplificar su funcionamiento. Por lo general, incluían instrucciones que realizaban una operación de entrada o salida completa. La misma lógica de hardware podría usarse para cargar el contenido de una tarjeta perforada (las más típicas) u otros medios de entrada, como un tambor magnético o cinta magnética , que contuviera un programa de arranque presionando un solo botón. Este concepto de arranque recibió varios nombres para las computadoras IBM de la década de 1950 y principios de la de 1960, pero IBM usó el término "Carga de programa inicial" con IBM 7030 Stretch [9]y luego lo usó para sus líneas de mainframe, comenzando con el System / 360 en 1964.

Tarjeta perforada de carga de programa inicial para IBM 1130 (1965)

La computadora IBM 701 (1952-1956) tenía un botón "Cargar" que iniciaba la lectura de la primera palabra de 36 bits en la memoria principal desde una tarjeta perforada en un lector de tarjetas , una cinta magnética en una unidad de cinta o una unidad de tambor magnético , dependiendo de la posición del interruptor selector de carga. La media palabra de 18 bits de la izquierda se ejecutó luego como una instrucción, que generalmente lee palabras adicionales en la memoria. [10] [11] Luego se ejecutó el programa de arranque cargado, que, a su vez, cargó un programa más grande desde ese medio en la memoria sin más ayuda del operador humano. El término "bota" se ha utilizado en este sentido desde al menos 1958. [12]

Consola IBM System / 3 de la década de 1970. El interruptor selector de carga del programa está en la parte inferior izquierda; El interruptor de carga del programa está en la parte inferior derecha.

Otras computadoras IBM de esa época tenían características similares. Por ejemplo, el sistema IBM 1401 (c. 1958) utilizó un lector de tarjetas para cargar un programa desde una tarjeta perforada. Los 80 caracteres almacenados en la tarjeta perforada se leyeron en las ubicaciones de memoria 001 a 080, luego la computadora se ramificaría a la ubicación de memoria 001 para leer su primera instrucción almacenada. Esta instrucción era siempre la misma: mover la información en estas primeras 80 ubicaciones de memoria a un área de ensamblaje donde la información en las tarjetas perforadas 2, 3, 4, etc., podría combinarse para formar el programa almacenado. Una vez que esta información se moviera al área de ensamblaje, la máquina se bifurcaría a una instrucción en la ubicación 080 (leer una tarjeta) y se leería la siguiente tarjeta y se procesaría su información.

Otro ejemplo fue el IBM 650 (1953), una máquina decimal, que tenía un grupo de diez interruptores de 10 posiciones en su panel de operador que eran direccionables como una palabra de memoria (dirección 8000) y podían ejecutarse como una instrucción. Por lo tanto, establecer los interruptores en 7004000400 y presionar el botón apropiado leería la primera tarjeta en el lector de tarjetas en la memoria (código de operación 70), comenzando en la dirección 400 y luego saltando a 400 para comenzar a ejecutar el programa en esa tarjeta. [13]

Los competidores de IBM también ofrecían carga de programas con un solo botón.

  • El CDC 6600 (c. 1964) tenía un panel de arranque muerto con 144 interruptores de palanca; el interruptor de arranque muerto ingresó 12 palabras de los interruptores de palanca a la memoria del procesador periférico ( PP ) 0 e inició la secuencia de carga. PP 0 cargó el código necesario en su propia memoria y luego inicializó los otros PP.
  • El GE 645 (c. 1965) tenía un botón de "CARGA DEL SISTEMA" que, cuando se presionaba, hacía que uno de los controladores de E / S cargara un programa de 64 palabras en la memoria desde una memoria de solo lectura de diodo y entregara una interrupción para causar ese programa para empezar a correr. [14]
  • El primer modelo del PDP-10 tenía un botón "READ IN" que, cuando se presionaba, reiniciaba el procesador e iniciaba una operación de E / S en un dispositivo especificado por interruptores en el panel de control, leyendo una palabra de 36 bits que daba una dirección de destino y recuento de lecturas de palabras posteriores; cuando se completó la lectura, el procesador comenzó a ejecutar el código leído saltando a la última palabra leída. [15]

Una variación notable de esto se encuentra en el Burroughs B1700 donde no hay una ROM de arranque ni una operación IPL cableada. En cambio, después de reiniciar el sistema, lee y ejecuta códigos de operación secuencialmente desde una unidad de cinta montada en el panel frontal; esto configura un cargador de arranque en RAM que luego se ejecuta. Sin embargo, dado que esto hace pocas suposiciones sobre el sistema, se puede usar igualmente para cargar cintas de diagnóstico (rutina de prueba de mantenimiento) que muestran un código inteligible en el panel frontal incluso en casos de fallas graves de la CPU.

IBM System / 360 y sucesores [ editar ]

En IBM System / 360 y sus sucesores, incluidas las máquinas actuales de z / Architecture , el proceso de arranque se conoce como Carga de programa inicial (IPL).

IBM acuñó este término para el 7030 (Stretch) , [9] lo revivió para el diseño del System / 360, y continúa usándolo en esos entornos hoy. [16] En los procesadores System / 360, el operador de la computadora inicia una IPL seleccionando la dirección del dispositivo de tres dígitos hexadecimales (CUU; C = dirección del canal de E / S, UU = unidad de control y dirección del dispositivo [nb 2] ) seguido presionando el botón LOAD . En los modelos System / 360 de gama alta , la mayoría de [nb 3] System / 370 y algunos sistemas posteriores, las funciones de los interruptores y el botón LOAD se simulan utilizando áreas seleccionables en la pantalla de una consola gráfica, a menudo [nb 4] yDispositivo similar a IBM 2250 o un dispositivo similar a IBM 3270 . Por ejemplo, en el System / 370 Modelo 158, la secuencia de teclado 0-7-X (cero, siete y X, en ese orden) da como resultado una IPL desde la dirección del dispositivo que se ingresó en el área de entrada. El Amdahl 470V / 6 y las CPU relacionadas admitían cuatro dígitos hexadecimales en aquellas CPU que tenían instalada la unidad de segundo canal opcional, para un total de 32 canales. Posteriormente, IBM también admitiría más de 16 canales.

La función IPL en System / 360 y sus sucesores, y sus compatibles como Amdahl, lee 24 bytes desde un dispositivo especificado por el operador en el almacenamiento principal comenzando en la dirección real cero. El segundo y tercer grupo de ocho bytes se tratan como palabras de comando de canal (CCW) para continuar cargando el programa de inicio (el primer CCW siempre es simulado por la CPU y consta de un comando Leer IPL, 02h , con encadenamiento de comandos y suprimir la longitud incorrecta indicación en vigor). Cuando se completan los comandos del canal de E / S, el primer grupo de ocho bytes se carga en la palabra de estado del programa (PSW) del procesador y el programa de inicio comienza a ejecutarse en la ubicación designada por ese PSW. [dieciséis]El dispositivo de IPL suele ser una unidad de disco, de ahí el significado especial del comando 02h read-type, pero también se utiliza exactamente el mismo procedimiento para realizar una IPL desde otros dispositivos de tipo de entrada, como unidades de cinta, o incluso lectores de tarjetas, en un de manera independiente del dispositivo, lo que permite, por ejemplo, la instalación de un sistema operativo en una computadora nueva a partir de una cinta magnética de distribución inicial del sistema operativo. Para los controladores de disco, el comando 02h también hace que el dispositivo seleccionado busque el cilindro 0000h , cabezal 0000h , simulando un comando de búsqueda de cilindro y cabezal, 07h , y que busque el registro 01h , simulando un comando de Igual de ID de búsqueda, 31h; Las búsquedas y búsquedas no son simuladas por controladores de cinta y tarjeta, ya que para estas clases de dispositivos, un comando 02h es simplemente un comando de lectura secuencial, no un comando de lectura de IPL.

El disco, la cinta o la unidad de tarjeta debe contener un programa especial para cargar el sistema operativo real o la utilidad independiente en el almacenamiento principal y, para este propósito específico, el DASDI (dispositivo de almacenamiento de acceso directo) independiente coloca el "texto de IPL" en el disco. Inicialización) o un programa equivalente que se ejecuta bajo un sistema operativo, por ejemplo, ICKDSF, pero las cintas y cubiertas de tarjetas aptas para IPL generalmente se distribuyen con este "Texto IPL" ya presente.

Miniordenadores [ editar ]

Panel frontal de PDP-8 / E que muestra los interruptores utilizados para cargar el programa de arranque

Las minicomputadoras , comenzando con Digital Equipment Corporation (DEC) PDP-5 y PDP-8 (1965) simplificaron el diseño mediante el uso de la CPU para ayudar en las operaciones de entrada y salida. Esto ahorró costos pero hizo que el arranque fuera más complicado que presionar un solo botón. Las minicomputadoras normalmente tenían alguna forma de alternar en programas cortos manipulando una serie de interruptores en el panel frontal. Dado que las primeras minicomputadoras usaban memoria de núcleo magnético , que no perdía su información cuando la energía estaba apagada, estos cargadores de arranque permanecerían en su lugar a menos que se borraran. El borrado a veces sucedía accidentalmente cuando un error del programa causaba un bucle que sobrescribía toda la memoria.

Otras miniordenadores con una forma tan simple de arranque incluyen la serie HP 2100 de Hewlett-Packard (mediados de la década de 1960), el Data General Nova original (1969) y el PDP-11 de DEC (1970).

Posteriormente, DEC agregó una memoria de solo lectura de matriz de diodos opcional para el PDP-11 que almacenaba un programa de arranque de hasta 32 palabras (64 bytes). Consistía en una tarjeta de circuito impreso, la M792, que se conectaba al Unibus y sostenía una matriz de diodos semiconductores de 32 por 16. Con los 512 diodos en su lugar, la memoria contenía todos los bits "uno"; la tarjeta se programaba cortando cada diodo cuyo bit debía ser "cero". DEC también vendió versiones de la tarjeta, la serie BM792-Yx, preprogramada para muchos dispositivos de entrada estándar simplemente omitiendo los diodos innecesarios. [17]

Siguiendo el enfoque anterior, el PDP-1 anterior tiene un cargador de hardware, de modo que un operador solo necesita presionar el interruptor de "carga" para indicar al lector de cinta de papel que cargue un programa directamente en la memoria central. El Data General Supernova usó interruptores del panel frontal para hacer que la computadora cargue automáticamente instrucciones en la memoria desde un dispositivo especificado por los interruptores de datos del panel frontal, y luego salte al código cargado; los Nova 800 y 1200 tenían un interruptor que cargaba un programa en la memoria principal desde una memoria especial de solo lectura y saltaba a ella. [18]

Ejemplos tempranos del cargador de arranque de minicomputadora [ editar ]

En una minicomputadora con un lector de cinta de papel, el primer programa que se ejecuta en el proceso de arranque, el cargador de arranque, leería en la memoria central el cargador de arranque de la segunda etapa (a menudo llamado cargador binario ) que podría leer la cinta de papel con suma de comprobación o el sistema operativo desde un medio de almacenamiento externo. El pseudocódigo para el cargador de arranque puede ser tan simple como las siguientes ocho instrucciones:

  1. Establezca el registro P en 9
  2. Compruebe el lector de cinta de papel listo
  3. Si no está listo, salte al 2
  4. Leer un byte del lector de cinta de papel al acumulador
  5. Almacene el acumulador a la dirección en el registro P
  6. Si es el final de la cinta, salte al 9
  7. Incrementar el registro P
  8. Saltar a 2

Un ejemplo relacionado se basa en un cargador para una minicomputadora Nicolet Instrument Corporation de la década de 1970, que utiliza la unidad de perforado-lector de cinta de papel en una teleimpresora ASR Teletype Modelo 33 . Los bytes de su cargador de segunda etapa se leen de la cinta de papel en orden inverso.

  1. Establezca el registro P en 106
  2. Compruebe el lector de cinta de papel listo
  3. Si no está listo, salte al 2
  4. Leer un byte del lector de cinta de papel al acumulador
  5. Almacene el acumulador a la dirección en el registro P
  6. Disminuir el registro P
  7. Saltar a 2

La longitud del cargador de la segunda etapa es tal que el byte final sobrescribe la ubicación 7. Después de que se ejecuta la instrucción en la ubicación 6, la ubicación 7 inicia la ejecución del cargador de la segunda etapa. El cargador de la segunda etapa espera a que la cinta mucho más larga que contiene el sistema operativo se coloque en el lector de cintas. La diferencia entre el cargador de arranque y el cargador de segunda etapa es la adición de un código de verificación para atrapar errores de lectura de la cinta de papel, una ocurrencia frecuente con hardware de "servicio parcial" de costo relativamente bajo, como el modelo de teletipo 33 ASR. (Los Flexowriters de Friden eran mucho más confiables, pero también comparativamente costosos).

Arrancando las primeras microcomputadoras [ editar ]

Las primeras microcomputadoras, como la Altair 8800 (lanzada por primera vez en 1975) y una máquina similar incluso anterior (basada en la CPU Intel 8008) no tenían hardware de arranque como tal. [19]Cuando se inicia, la CPU vería memoria que contendría código ejecutable que contenga solo ceros binarios; la memoria se borró reiniciando al encender. Los paneles frontales de estas máquinas llevaban interruptores de palanca para ingresar direcciones y datos, un interruptor por bit de la palabra de memoria de la computadora y el bus de direcciones. Las adiciones simples al hardware permitieron cargar una ubicación de memoria a la vez desde esos conmutadores para almacenar el código de arranque. Mientras tanto, se evitó que la CPU intentara ejecutar el contenido de la memoria. Una vez cargada correctamente, la CPU se habilitó para ejecutar el código de arranque. Este proceso era tedioso y tenía que estar libre de errores. [20]

Era de memoria de solo lectura de circuito integrado [ editar ]

Un "chip" Intel 2708 EPROM en una placa de circuito.

El proceso de arranque para miniordenadores y microordenadores [NB 5] se revolucionó por la introducción de circuito integrado de memoria de sólo lectura (ROM), con sus muchas variantes, incluyendo ROM programada por máscara , ROMs programables (PROM), ROM programable y borrable (EPROM) y memoria flash . Estos permitieron que los programas de arranque de firmware se incluyeran como parte de la computadora. La introducción de una ROM (externa) fue en un elaborador de conmutadores telefónicos italiano, llamado "Gruppi Speciali", patentado en 1975 por Alberto Ciaramella , investigador del CSELT . [21]Gruppi Speciali era, a partir de 1975, una máquina de un solo botón que se iniciaba en el sistema operativo desde una memoria ROM compuesta por semiconductores, no por núcleos de ferrita. Aunque el dispositivo ROM no estaba integrado de forma nativa en la computadora de Gruppi Speciali, debido al diseño de la máquina, también permitía el arranque de ROM con un solo botón en máquinas no diseñadas para eso (por lo tanto, este "dispositivo de arranque" era independiente de la arquitectura ), por ejemplo, el PDP-11. También se pudo almacenar el estado de la máquina después de la desconexión, que fue otra característica crítica en el concurso de conmutación telefónica. [22]

Por lo general, cada microprocesador, después de una condición de reinicio o encendido, realizará un proceso de inicio que generalmente toma la forma de "comenzar la ejecución del código que se encuentra comenzando en una dirección específica" o "buscar un código multibyte en una dirección específica y saltar a la ubicación indicada para comenzar la ejecución ". Un sistema construido usando ese microprocesador tendrá la ROM permanente ocupando estas ubicaciones especiales para que el sistema siempre comience a operar sin la ayuda del operador. Por ejemplo, los procesadores Intel x86 siempre comienzan ejecutando las instrucciones que comienzan en F000: FFF0, [23] [24] mientras que para el MOS 6502procesador, la inicialización comienza leyendo una dirección vectorial de dos bytes en $ FFFD (byte MS) y $ FFFC (byte LS) y saltando a esa ubicación para ejecutar el código de arranque. [25]

La primera computadora de Apple Inc. , la Apple 1 presentada en 1976, incluía chips PROM que eliminaban la necesidad de un panel frontal para el proceso de arranque (como era el caso del Altair 8800) en una computadora comercial. Según el anuncio de Apple que lo anuncia "No más interruptores, no más luces ... el firmware en PROMS le permite ingresar, mostrar y depurar programas (todo en hexadecimal) desde el teclado". [26]

Debido al gasto de la memoria de solo lectura en ese momento, la serie Apple II arrancó sus sistemas operativos de disco utilizando una serie de pasos incrementales muy pequeños, cada uno pasando el control a la siguiente fase del proceso de arranque gradualmente más complejo. (Ver Apple DOS: cargador de arranque ). Debido a que muy poco del sistema operativo de disco dependía de la ROM, el hardware también era extremadamente flexible y admitía una amplia gama de mecanismos de protección de copia de disco personalizados . (Consulte Craqueo de software: historial ).

Algunos sistemas operativos, sobre todo los sistemas Macintosh de Apple anteriores a 1995 , están tan estrechamente entrelazados con su hardware que es imposible arrancar de forma nativa un sistema operativo que no sea el estándar. Este es el extremo opuesto del escenario que usa los interruptores mencionados anteriormente; es muy inflexible pero relativamente a prueba de errores y a prueba de errores siempre que todo el hardware funcione con normalidad. Una solución común en tales situaciones es diseñar un cargador de arranque que funcione como un programa perteneciente al sistema operativo estándar que secuestra el sistema y carga el sistema operativo alternativo. Esta técnica fue utilizada por Apple para su implementación A / UX Unix y copiada por varios sistemas operativos gratuitos y BeOS Personal Edition 5 .

Algunas máquinas, como la microcomputadora Atari ST , eran de "encendido instantáneo" y el sistema operativo se ejecutaba desde una ROM.. La recuperación del sistema operativo del almacenamiento secundario o terciario se eliminó así como una de las operaciones características del bootstrapping. Para permitir que las personalizaciones del sistema, los accesorios y otro software de soporte se carguen automáticamente, se leyó la unidad de disquete de Atari en busca de componentes adicionales durante el proceso de arranque. Hubo un retraso de tiempo de espera que proporcionó tiempo para insertar manualmente un disquete mientras el sistema buscaba los componentes adicionales. Esto podría evitarse insertando un disco en blanco. El hardware Atari ST también fue diseñado para que la ranura del cartucho pudiera proporcionar la ejecución del programa nativo para propósitos de juego como un vestigio del legado de Atari en la fabricación de juegos electrónicos; insertando el Spectre GCRcartucho con la ROM del sistema Macintosh en la ranura del juego y al encender el Atari, podría "iniciar de forma nativa" el sistema operativo Macintosh en lugar del propio TOS de Atari .

La computadora personal de IBM incluía firmware basado en ROM llamado BIOS ; una de las funciones de ese firmware era realizar una autoprueba de encendido cuando la máquina estaba encendida, y luego leer el software de un dispositivo de arranque y ejecutarlo. El firmware compatible con el BIOS en la computadora personal IBM se utiliza en computadoras compatibles con IBM PC . La Interfaz de firmware extensible fue desarrollada por Intel, originalmente para máquinas basadas en Itanium , y más tarde también se usó como una alternativa a la BIOS en máquinas basadas en x86 , incluidas las Apple Macs que utilizan procesadores Intel .

Las estaciones de trabajo Unix originalmente tenían firmware basado en ROM específico del proveedor. Sun Microsystems más tarde desarrolló OpenBoot , más tarde conocido como Open Firmware, que incorporó un intérprete de Forth , con gran parte del firmware escrito en Forth. Fue estandarizado por IEEE como estándar IEEE 1275-1994; El firmware que implementa ese estándar se utilizó en Mac basadas en PowerPC y en algunas otras máquinas basadas en PowerPC, así como en las propias computadoras de Sun basadas en SPARC . La especificación Advanced RISC Computing definió otro estándar de firmware, que se implementó en algunas versiones Alpha y basadas en MIPS.máquinas basadas en SGI y las estaciones de trabajo basadas en SGI Visual Workstation x86.

Cargadores de arranque modernos [ editar ]

Cuando se apaga una computadora, su software — incluidos los sistemas operativos, el código de la aplicación y los datos‍ — permanece almacenado en la memoria no volátil . Cuando la computadora está encendida, generalmente no tiene un sistema operativo o su cargador en la memoria de acceso aleatorio (RAM). La computadora primero ejecuta un programa relativamente pequeño almacenado en una memoria de solo lectura (ROM) junto con una pequeña cantidad de datos necesarios, para acceder al dispositivo o dispositivos no volátiles desde los cuales los programas y datos del sistema operativo se pueden cargar en la RAM.

El pequeño programa que inicia esta secuencia se conoce como cargador de arranque , cargador de arranque o cargador de arranque . El único trabajo de este pequeño programa es cargar otros datos y programas que luego se ejecutan desde la RAM. A menudo, se utilizan cargadores de arranque de múltiples etapas, durante los cuales varios programas de complejidad creciente se cargan uno tras otro en un proceso de carga en cadena .

Algunos sistemas informáticos, al recibir una señal de arranque de un operador humano o un dispositivo periférico, pueden cargar una cantidad muy pequeña de instrucciones fijas en la memoria en una ubicación específica, inicializar al menos una CPU y luego apuntar la CPU a las instrucciones e iniciar su ejecución. Estas instrucciones normalmente inician una operación de entrada desde algún dispositivo periférico (que el operador puede seleccionar mediante un interruptor). Otros sistemas pueden enviar comandos de hardware directamente a dispositivos periféricos o controladores de E / S que provoquen una operación de entrada extremadamente simple (como "leer el sector cero del dispositivo del sistema en la memoria comenzando en la ubicación 1000") para que se lleve a cabo, cargando efectivamente un pequeño número de instrucciones del cargador de arranque en la memoria; una señal de finalización del dispositivo de E / S puede utilizarse para iniciar la ejecución de las instrucciones por parte de la CPU.

Las computadoras más pequeñas a menudo usan mecanismos de cargador de arranque menos flexibles pero más automáticos para garantizar que la computadora se inicie rápidamente y con una configuración de software predeterminada. En muchas computadoras de escritorio, por ejemplo, el proceso de arranque comienza con la CPU que ejecuta el software contenido en la ROM (por ejemplo, el BIOS de una PC IBM ) en una dirección predefinida (algunas CPU, incluida la serie Intel x86, están diseñadas para ejecutar este software después de reiniciar sin ayuda externa). Este software contiene una funcionalidad rudimentaria para buscar dispositivos elegibles para participar en el arranque y cargar un pequeño programa desde una sección especial (más comúnmente el sector de arranque ) del dispositivo más prometedor, generalmente comenzando en un fijo.punto de entrada como el inicio del sector.

Cargador de arranque de primera etapa [ editar ]

Los cargadores de botas pueden enfrentarse a limitaciones peculiares, especialmente en tamaño; por ejemplo, en el IBM PC y compatibles, un sector de arranque debe suelen trabajar sólo en un 32 KB [27] [28] (más tarde se relajó a 64 KB [29] ) de la memoria del sistema y sólo utilizar las instrucciones soportadas por el original 8088 / 8086 procesadores. La primera etapa de los cargadores de arranque de PC (FSBL, cargador de arranque de primera etapa) ubicada en discos fijos y unidades extraíbles debe caber en los primeros 446 bytes del Registro de arranque maestro para dejar espacio para la tabla de particiones predeterminada de 64 bytes con cuatro las entradas de la partición y la firma de arranque de dos bytes, que el BIOS requiere para un cargador de arranque adecuado, o incluso menos, cuando características adicionales como más de cuatro entradas de partición (hasta 16 con 16 bytes cada una), una firma de disco (6 bytes), una marca de tiempo de disco (6 bytes), en algunos entornos también se debe admitir una partición activa avanzada (18 bytes) o cargadores especiales de arranque múltiple . En los registros de arranque de volumen de disquete y superfloppy , se ocupan hasta 59 bytes para el bloque de parámetros de BIOS extendido en volúmenes FAT12 y FAT16 desde DOS 4.0, mientras que FAT32EBPB introducido con DOS 7.1 requiere incluso 87 bytes, dejando solo 423 bytes para el cargador de arranque cuando se asume un tamaño de sector de 512 bytes. Por lo tanto, los sectores de arranque de Microsoft imponían tradicionalmente ciertas restricciones en el proceso de arranque, por ejemplo, el archivo de arranque tenía que estar ubicado en una posición fija en el directorio raíz del sistema de archivos y almacenarse como sectores consecutivos, [30] [31] condiciones atendidas de por el SYScomando y un poco relajado en versiones posteriores de DOS. [31] [nb 6] El cargador de arranque pudo cargar los primeros tres sectores del archivo en la memoria, que por casualidad contenía otro cargador de arranque integrado capaz de cargar el resto del archivo en la memoria. [31] Cuando Microsoft agregó LBAy compatibilidad con FAT32, incluso cambiaron a un cargador de arranque que llegaba a más de dos sectores físicos y usaba instrucciones 386 por razones de tamaño. Al mismo tiempo, otros proveedores lograron exprimir mucha más funcionalidad en un solo sector de arranque sin relajar las restricciones originales sobre la mínima memoria disponible (32 KB) y soporte de procesador (8088/8086). [nb 7] Por ejemplo, los sectores de arranque DR-DOS pueden ubicar el archivo de arranque en el sistema de archivos FAT12, FAT16 y FAT32, y cargarlo en la memoria como un todo a través de CHS o LBA, incluso si el archivo no está almacenado en una ubicación fija y en sectores consecutivos. [32] [27] [33] [34] [35] [nb 8] [nb 7]

Ejemplos de cargadores de arranque de primera etapa incluyen coreboot , Libreboot y Das U-Boot .

Cargador de arranque de segunda etapa [ editar ]

Los cargadores de arranque de segunda etapa, como GNU GRUB , rEFInd , BOOTMGR , Syslinux , NTLDR o BootX , no son en sí mismos sistemas operativos, pero pueden cargar un sistema operativo correctamente y transferirle la ejecución; posteriormente, el sistema operativo se inicializa y puede cargar controladores de dispositivo adicionales . El cargador de arranque de la segunda etapa no necesita controladores para su propio funcionamiento, sino que puede utilizar métodos genéricos de acceso al almacenamiento proporcionados por el firmware del sistema, como BIOS o Open Firmware , aunque normalmente con una funcionalidad de hardware restringida y un rendimiento más bajo. [36]

Muchos cargadores de arranque (como GNU GRUB, rEFInd, BOOTMGR de Windows, Syslinux y NTLDR de Windows NT / 2000 / XP) se pueden configurar para ofrecer al usuario múltiples opciones de arranque. Estas opciones pueden incluir diferentes sistemas operativos (para arranque dual o múltiple desde diferentes particiones o unidades), diferentes versiones del mismo sistema operativo (en caso de que una nueva versión tenga problemas inesperados), diferentes opciones de carga del sistema operativo (por ejemplo, arrancar en un rescate o modo seguro ) y algunos programas independientes que pueden funcionar sin un sistema operativo, como probadores de memoria (por ejemplo, memtest86 + ), un shell básico (como en GNU GRUB), o incluso juegos (ver Lista de juegos de PC Booter ). [37]Algunos cargadores de arranque también pueden cargar otros cargadores de arranque; por ejemplo, GRUB carga BOOTMGR en lugar de cargar Windows directamente. Por lo general, una opción predeterminada se preselecciona con un retraso de tiempo durante el cual un usuario puede presionar una tecla para cambiar la opción; después de este retraso, la opción predeterminada se ejecuta automáticamente para que pueda ocurrir un arranque normal sin interacción.

El proceso de arranque se puede considerar completo cuando la computadora está lista para interactuar con el usuario o el sistema operativo es capaz de ejecutar programas del sistema o programas de aplicación.

Muchos sistemas integrados deben iniciarse inmediatamente. Por ejemplo, esperar un minuto a que se encienda una televisión digital o un dispositivo de navegación GPS es generalmente inaceptable. Por lo tanto, dichos dispositivos tienen sistemas de software en ROM o memoria flash para que el dispositivo pueda comenzar a funcionar inmediatamente; se necesita poca o ninguna carga, porque la carga se puede calcular previamente y almacenar en la ROM cuando se crea el dispositivo.

Los sistemas grandes y complejos pueden tener procedimientos de arranque que proceden en múltiples fases hasta que finalmente el sistema operativo y otros programas están cargados y listos para ejecutarse. Debido a que los sistemas operativos están diseñados como si nunca se iniciaran o se detengan, un cargador de arranque puede cargar el sistema operativo, configurarse como un mero proceso dentro de ese sistema y luego transferir irrevocablemente el control al sistema operativo. El cargador de arranque luego termina normalmente como lo haría cualquier otro proceso.

Arranque de red [ editar ]

La mayoría de las computadoras también pueden arrancar a través de una red informática . En este escenario, el sistema operativo se almacena en el disco de un servidor y ciertas partes del mismo se transfieren al cliente mediante un protocolo simple como el Protocolo trivial de transferencia de archivos (TFTP). Una vez transferidas estas partes, el sistema operativo asume el control del proceso de arranque.

Al igual que con el cargador de arranque de la segunda etapa, el arranque en red comienza mediante el uso de métodos de acceso a la red genéricos proporcionados por la ROM de arranque de la interfaz de red, que normalmente contiene una imagen del entorno de ejecución previa al arranque (PXE). No se requieren controladores, pero la funcionalidad del sistema es limitada hasta que el kernel del sistema operativo y los controladores se transfieren e inician. Como resultado, una vez que se ha completado el arranque basado en ROM, es completamente posible arrancar en red en un sistema operativo que por sí mismo no tiene la capacidad de usar la interfaz de red.

Computadoras personales (PC) [ editar ]

Dispositivos de arranque [ editar ]

Unidad flash de arranque de Windows To Go , un ejemplo de Live USB

El dispositivo de arranque es el dispositivo desde el que se carga el sistema operativo. El firmware UEFI o BIOS de una PC moderna admite el arranque desde varios dispositivos, generalmente una unidad de estado sólido local o una unidad de disco duro a través de GPT o Master Boot Record (MBR) en dicha unidad o disco, una unidad de disco óptico (usando El Torito ), un dispositivo de almacenamiento masivo USB ( unidad flash basada en FTL , ranura para tarjeta SD o tarjeta multimedia , unidad de disco duro USB, unidad de disco óptico USB, etc.) o una tarjeta de interfaz de red (usando PXE). Dispositivos de arranque de BIOS más antiguos y menos comunes incluyen unidades de disquete , unidades Zip , y LS-120 unidades.

Normalmente, el firmware (UEFI o BIOS) permitirá al usuario configurar un orden de arranque . Si el orden de arranque se establece en "primero, la unidad de DVD; segundo, la unidad de disco duro", entonces el firmware intentará arrancar desde la unidad de DVD, y si esto falla (por ejemplo, porque no hay ningún DVD en la unidad), intentará arrancar desde la unidad de disco duro local.

Por ejemplo, en una PC con Windows instalado en el disco duro, el usuario puede establecer el orden de arranque en el que se indica arriba y luego insertar un Live CD de Linux para probar Linux sin tener que instalar un sistema operativo en el disco duro. conducir. Este es un ejemplo de arranque dual , en el que el usuario elige qué sistema operativo iniciar después de que la computadora haya realizado su autoprueba de encendido (POST). En este ejemplo de arranque dual, el usuario elige insertando o quitando el DVD de la computadora, pero es más común elegir qué sistema operativo arrancar seleccionando desde un menú del administrador de arranque en el dispositivo seleccionado, usando el teclado de la computadora para seleccionar de unMenú de arranque BIOS o UEFI , o ambos; el menú de arranque generalmente se ingresa presionando las teclas F8o F12durante la POST; la configuración del BIOS generalmente se ingresa presionando las teclas F2o DELdurante la POST. [38] [39]

Hay varios dispositivos disponibles que permiten al usuario iniciar rápidamente lo que suele ser una variante de Linux para varias tareas sencillas como el acceso a Internet; algunos ejemplos son Splashtop y Latitude ON . [40] [41] [42]

Secuencia de arranque [ editar ]

Un volcado hexadecimal de boot0 MBR de FreeBSD
Premio BIOS de software de 2000 durante el arranque

Al iniciarse, la CPU x86 de una computadora personal compatible con IBM , ejecuta en modo real , la instrucción ubicada en el vector de reinicio (la dirección de memoria física FFFF0h en procesadores x86 de 16 bits [43] y FFFFFFF0h en procesadores x86 de 32 y 64 bits [44] [45] ), que normalmente apunta al punto de entrada del firmware ( UEFI o BIOS ) dentro de la ROM. Esta ubicación de memoria generalmente contiene una instrucción de salto que transfiere la ejecución a la ubicación del programa de inicio del firmware ( UEFI o BIOS ). Este programa ejecuta una autoprueba de encendido(POST) para comprobar e inicializar los dispositivos necesarios, como la memoria principal ( DRAM ), el bus PCI y los dispositivos PCI (incluida la ejecución de ROM de opción integradas ). Uno de los pasos más complicados es configurar DRAM sobre SPD , complicado aún más por el hecho de que en este punto la memoria es muy limitada.

Después de inicializar el hardware requerido, el firmware ( UEFI o BIOS ) pasa por una lista preconfigurada de dispositivos de almacenamiento no volátiles ("secuencia de dispositivo de arranque") hasta que encuentra uno que sea de arranque. Un dispositivo MBR de arranque se define como uno desde el que se puede leer, y donde los dos últimos bytes del primer sector contienen la palabra little-endian AA55h , [nb 9] que se encuentra como secuencia de bytes 55h , AAh en el disco (también conocido como Firma de arranque MBR ), o cuando se establezca de otro modo que el código dentro del sector es ejecutable en PC x86.

Una vez que el BIOS ha encontrado un dispositivo de arranque, carga el sector de arranque a la dirección lineal 7C00h (normalmente segmento : offset 0000h : 7C00h , [27] pero algunos BIOS utilizan erróneamente 07C0h : 0000h [ cita requerida ] ) y transfiere la ejecución al código de arranque. En el caso de un disco duro, esto se conoce como Master Boot Record (MBR). El código MBR convencional comprueba la tabla de particiones del MBR en busca de una partición configurada como de arranque [nb 10] (la que tiene la bandera activa ). Si una partición activa se encuentra, el código MBR carga el código del sector de arranque de esa partición, conocido como Volume Boot Record (VBR), y lo ejecuta.

El VBR es a menudo específico del sistema operativo; Sin embargo, su función principal es la de cargar y ejecutar el archivo del cargador de arranque del sistema operativo (como io.sys, ntldro bootmgr) de una partición activa. Luego, el cargador de arranque carga el kernel del sistema operativo desde el dispositivo de almacenamiento.

Si no hay una partición activa, o el sector de arranque de la partición activa no es válido, el MBR puede cargar un cargador de arranque secundario que seleccionará una partición (a menudo a través de la entrada del usuario) y cargará su sector de arranque, que generalmente carga el kernel del sistema operativo correspondiente. En algunos casos, el MBR también puede intentar cargar cargadores de arranque secundarios antes de intentar arrancar la partición activa. Si todo lo demás falla, debería emitir una llamada de interrupción del BIOS INT 18h [29] [27] (seguida de un INT 19h en caso de que INT 18h regresara) para devolver el control al BIOS, que luego intentaría arrancar de otros dispositivos, intente un inicio remoto a través de la red. [27]

La mayoría de los sistemas modernos ( Apple Mac más nuevos y PC más nuevos ) usan UEFI . [46] [47]

A diferencia de BIOS, UEFI (no el arranque heredado a través de CSM) no depende de los sectores de arranque, el sistema UEFI carga el cargador de arranque ( archivo de aplicación EFI en el disco USB o en la partición del sistema EFI ) directamente, [48] y el kernel del sistema operativo se carga mediante el cargador de arranque.

Otros tipos de secuencias de arranque [ editar ]

Un cargador de arranque de Android desbloqueado , que muestra opciones adicionales disponibles

Algunas CPU y microcontroladores modernos (por ejemplo, TI OMAP ) o, a veces, incluso los DSP pueden tener ROM de arranque con código de arranque integrado directamente en su silicio, por lo que dicho procesador podría realizar una secuencia de arranque bastante sofisticada por sí solo y cargar programas de arranque de varias fuentes como flash NAND, tarjeta SD o MMC, etc. Es difícil cablear toda la lógica necesaria para manejar dichos dispositivos, por lo que se usa una ROM de arranque integrada en tales escenarios. El uso de ROM de arranque permite secuencias de arranque más flexibles que las que podría proporcionar la lógica cableada. Por ejemplo, la ROM de arranque podría intentar realizar el arranque desde varias fuentes de arranque. Además, una ROM de arranque a menudo puede cargar un cargador de arranque o un programa de diagnóstico a través de interfaces seriales como UART , SPI ,USB y así sucesivamente. Esta función se usa a menudo para fines de recuperación del sistema cuando, por alguna razón, se borró el software de arranque habitual en la memoria no volátil, y también podría usarse para la programación inicial de la memoria no volátil cuando hay una memoria limpia no volátil instalada y, por lo tanto, no hay software. disponible en el sistema todavía.

Algunos diseños de sistemas integrados también pueden incluir un paso de secuencia de inicio intermedio en forma de código adicional que se carga en la RAM del sistema mediante la ROM de inicio integrada. El código adicional cargado de esa manera generalmente sirve como una forma de superar las limitaciones de la plataforma, como pequeñas cantidades de RAM, por lo que un cargador de arranque primario dedicado, como Das U-Boot , se puede cargar como el siguiente paso en la secuencia de arranque del sistema. El código adicional y el paso de la secuencia de arranque generalmente se conocen como cargador de programa secundario (SPL). [49]

También es posible tomar el control de un sistema utilizando una interfaz de depuración de hardware como JTAG . Una interfaz de este tipo puede usarse para escribir el programa del cargador de arranque en una memoria no volátil de arranque (por ejemplo, flash) instruyendo al núcleo del procesador para que realice las acciones necesarias para programar la memoria no volátil. Alternativamente, la interfaz de depuración puede usarse para cargar algún código de diagnóstico o de arranque en la RAM y luego para iniciar el núcleo del procesador e indicarle que ejecute el código cargado. Esto permite, por ejemplo, la recuperación de sistemas integrados donde no queda software en ningún dispositivo de arranque compatible y donde el procesador no tiene ninguna ROM de arranque integrada. JTAG es una interfaz estándar y popular; muchas CPU, microcontroladores y otros dispositivos se fabrican con interfaces JTAG (a partir de 2009).

Algunos microcontroladores proporcionan interfaces de hardware especiales que no se pueden utilizar para tomar el control arbitrario de un sistema o ejecutar código directamente, sino que permiten la inserción del código de arranque en la memoria no volátil de arranque (como la memoria flash) a través de protocolos simples. Luego, en la fase de fabricación, dichas interfaces se utilizan para inyectar código de arranque (y posiblemente otro código) en la memoria no volátil. Después del reinicio del sistema, el microcontrolador comienza a ejecutar el código programado en su memoria no volátil, al igual que los procesadores habituales utilizan ROM para arrancar. En particular, esta técnica es utilizada por los microcontroladores Atmel AVR y también por otros. En muchos casos, estas interfaces se implementan mediante lógica cableada. En otros casos, tales interfaces podrían crearse mediante software que se ejecute en la ROM de arranque integrada en el chip desdePines GPIO .

La mayoría de los procesadores de señales digitales tienen un arranque en modo serie y un arranque en modo paralelo, como la interfaz del puerto host (arranque HPI)

En el caso de los DSP, a menudo hay un segundo microprocesador o microcontrolador presente en el diseño del sistema, y ​​este es responsable del comportamiento general del sistema, manejo de interrupciones, manejo de eventos externos, interfaz de usuario, etc., mientras que el DSP está dedicado solo a tareas de procesamiento de señales. . En tales sistemas, el DSP podría ser iniciado por otro procesador que a veces se denomina procesador de host (que da nombre a un puerto de host). Un procesador de este tipo también se denomina a veces maestro., ya que generalmente arranca primero desde sus propias memorias y luego controla el comportamiento general del sistema, incluido el arranque del DSP y luego controla aún más el comportamiento del DSP. El DSP a menudo carece de sus propias memorias de arranque y, en su lugar, depende del procesador host para proporcionar el código requerido. Los sistemas más notables con tal diseño son teléfonos celulares, módems, reproductores de audio y video, etc., donde coexisten un DSP y una CPU / microcontrolador.

Muchos chips FPGA cargan su configuración desde una EEPROM serie externa ("ROM de configuración") en el momento del encendido.

Ver también [ editar ]

  • Disco de inicio
  • Bootkit
  • Comparación de cargadores de arranque
  • Proceso de inicio de Linux
  • Inicio de Macintosh
  • Microreboot
  • Arranque múltiple
  • Arranque de red
  • RedBoot
  • Disco de autoarranque
  • Proceso de inicio de Windows NT
  • Proceso de inicio de Windows Vista

Notas [ editar ]

  1. ^ Incluidos los demonios .
  2. ^ UU a menudo tenía la forma Uu, U = dirección de la unidad de control, u = dirección del dispositivo, pero algunas unidades de control conectaban solo 8 dispositivos; algunos adjuntaron más de 16. De hecho, el controlador 3830 DASD ofrecía direccionamiento de 32 unidades como opción.
  3. ^ Excepto el 370/145 y el 370/155, que usaban una máquina de escribir de consola 3210 o 3215.
  4. ^ Sólo el S / 360 utilizó el 2250; el 360/85 , 370/165 y 370/168 usaban un dispositivo de teclado / pantalla compatible con nada más.
  5. ^ El IBM 1401 , IBM 7090 , IBM System / 360 y muchos otros no requirieron teclear un cargador de arranque. El S / 360 tenía un almacenamiento de solo lectura en la mayoría de los modelos, aunque no lo usaba integrado.
  6. ^ Elmanual de PC DOS 5.0 indica incorrectamente que los archivos del sistema ya no necesitan ser contiguos. Sin embargo, para que el proceso de arranque funcione, los archivos del sistema aún deben ocupar las dos primeras entradas del directorio y los primeros tres sectores de IBMBIO.COM aún deben almacenarse de forma contigua. SYS continúa ocupándose de estos requisitos.
  7. ^ a b Como ejemplo, mientras que la funcionalidad extendida de DR-DOS MBR y sectores de arranque en comparación con sus contrapartes MS-DOS / PC DOS aún podría lograrse utilizando técnicas convencionales de optimización de código hasta 7.05 , para la adición de LBA , FAT32 y Compatibilidad con LOADER: los sectores 7.07 tuvieron que recurrir a código de modificación automática , programación de nivel de código de operación , utilización controlada de efectos secundarios , superposición de código / datos de varios niveles y algorítmicatécnicas de plegado para comprimir todo en un solo sector físico, ya que era un requisito para la compatibilidad con versiones anteriores y cruzadas con otros sistemas operativos en escenarios de carga en cadena y de arranque múltiple .
  8. ^ Hay una excepción a la regla de que los VBR DR-DOS cargarán todo elarchivo IBMBIO.COM en la memoria: si el archivo IBMBIO.COM tiene un tamaño superior a unos 29 KB, intentar cargar todo el archivo en la memoria provocaría el arranque. cargador para sobrescribir la pila y la tabla de parámetros de disco reubicada (DPT / FDPB). Por lo tanto, un DR-DOS 7.07VBR solo cargaría los primeros 29 KB del archivo en la memoria, confiando en otro cargador incrustado en la primera parte de IBMBIO.COM para verificar esta condición y cargar el resto del archivo en la memoria por sí mismo si fuera necesario. Esto no causa problemas de compatibilidad, ya que el tamaño de IBMBIO.COM nunca superó este límite en versiones anteriores sin este cargador. Combinado con una estructura de entrada dual, esto también permite que el sistema sea cargado por un PC DOS VBR, que cargaría solo los primeros tres sectores del archivo en la memoria.
  9. ^ La firma en el desplazamiento + 1FEh en los sectores de arranque es 55h AAh , es decir, 55h en el desplazamiento + 1FEh y AAh en el desplazamiento + 1FFh . Dado que larepresentación little-endian debe asumirse en el contexto demáquinas compatibles con IBM PC , esto se puede escribir como palabra de 16 bits AA55h en programas paraprocesadores x86 (tenga en cuenta el orden intercambiado), mientras que debería escribirse como 55AAh en programas para otras arquitecturas de CPU usando un big-endianrepresentación. Dado que esto se ha mezclado varias veces en libros e incluso en documentos de referencia originales de Microsoft, este artículo utiliza la representación en disco basada en el desplazamiento de bytes para evitar posibles malas interpretaciones.
  10. ^ La partición activa puede contener un cargador de arranque de segunda etapa , por ejemplo, OS / 2 Boot Manager, en lugar de un sistema operativo.

Referencias [ editar ]

  1. ^ "bootstrap" . Diccionario informático de tecnología de la información .
  2. ^ "Bootstrap" . El diccionario gratuito .
  3. ^ "Levantarse uno mismo por bootstraps" . Modismos de The Free Dictionary . Consultado el 7 de octubre de 2019 .
  4. ^ "Definición de Bootstrap" . Términos técnicos . Consultado el 2 de octubre de 2019 .
  5. ^ "Levántese por sus propios medios" . El buscador de frases .
  6. Campbell-Kelly, Martin (1980). "Programación del EDSAC". IEEE Annals of the History of Computing . 2 (1): 7-36. doi : 10.1109 / mahc.1980.10009 .
  7. ^ Wilkes, Maurice V .; Wheeler, David J .; Gill, Stanley (1951). La preparación de programas para una computadora digital electrónica . Addison-Wesley .
  8. ^ Buchholz, Werner (1953). "El diseño del sistema de la computadora IBM Tipo 701" (PDF) . Actas de la IRE . 41 (10): 1273.
  9. ^ a b "IBM 7619 Exchange". Manual de referencia Sistema de procesamiento de datos 7030 (PDF) . IBM. Agosto de 1961. págs. 125-127. A22-6530-2.
  10. ^ Principios de operación tipo 701 y equipo asociado (PDF) . IBM. 1953. p. 26 . Consultado el 9 de noviembre de 2012 .
  11. ^ De Gutenberg a Internet , Jeremy M. Norman, 2005, página 436, ISBN 0-930405-87-0 
  12. ^ Diccionario de inglés de Oxford . Universidad de Oxford .
  13. ^ 650 manual de operación de la máquina de procesamiento de datos de tambor magnético (PDF) . IBM. 1955. págs. 49, 53–54.
  14. ^ Manual del sistema GE-645 (PDF) . General Electric . Enero de 1968 . Consultado el 30 de octubre de 2019 .
  15. ^ Manual de referencia del sistema PDP-10, parte 1 (PDF) . Corporación de Equipos Digitales . 1969. págs. 2-72 . Consultado el 9 de noviembre de 2012 .
  16. ^ a b z / Principios de funcionamiento de la arquitectura (PDF) . IBM . Septiembre de 2005. págs. Capítulo 17 . Consultado el 14 de abril de 2007 .
  17. ^ Manual de periféricos PDP-11 (PDF) . Corporación de Equipos Digitales . 1976. págs. 4-25.
  18. ^ Cómo utilizar las computadoras Nova (PDF) . Datos generales . Octubre de 1974. Sección 2.8 "Carga del programa".
  19. ^ "Computadoras antiguas: Altair 8800b" . Consultado el 10 de diciembre de 2019 .
  20. ^ "Altair 8800 carga 4K BASIC desde cinta de papel", video de Glenn Holmer
  21. ^ Ciaramella, Alberto . " Dispositivo para cargar automáticamente la memoria central de procesadores electrónicos " . Patente de Estados Unidos Nº 4.117.974. 1978-10-03. (presentado en 1975)
  22. Alberto Ciaramella racconta il brevetto del boostrap dei computer concept in CSELT [ Alberto Ciaramella analiza la patente de bootstrapping computer concebida en CSELT ] (en italiano).
  23. ^ Osborne, Adam ; Kane, Gerry (1981). Manual del microprocesador Osborne de 16 Bbit (PDF) . págs. 5-27. ISBN  0-931988-43-8. Consultado el 23 de agosto de 2019 .
  24. ^ Manual del desarrollador de software de arquitecturas Intel 64 e IA-32 Volumen 3 (3A, 3B, 3C y 3D): Guía de programación del sistema (PDF) .
  25. ^ Osborne, Adam ; Kane, Gerry. Manual de microprocesadores de Osborne de 4 y 8 bits . págs. 10-20. ISBN 0-931988-42-X.
  26. ^ Anuncio de Apple, Interface Age, octubre de 1976
  27. ^ a b c d e Paul, Matthias R. (2 de octubre de 1997) [29 de septiembre de 1997]. "Caldera OpenDOS 7.01 / 7.02 Update Alpha 3 IBMBIO.COM - README.TXT y BOOT.TXT - Una breve descripción de cómo se inicia OpenDOS" . Archivado desde el original el 4 de octubre de 2003 . Consultado el 29 de marzo de 2009 . [1]
  28. Sakamoto, Masahiko (13 de mayo de 2010). "¿Por qué BIOS carga MBR en 7C00h en x86?" . Glamenv-Septzen.net . Consultado el 22 de agosto de 2012 .
  29. ^ a b Compaq Computer Corporation; Phoenix Technologies Ltd; Intel Corporation (11 de enero de 1996). "Especificación de arranque del BIOS 1.01" (PDF) . Consultado el 21 de diciembre de 2017 .
  30. ^ Zbikowski, Mark ; Allen, Paul ; Ballmer, Steve ; Borman, Reuben; Borman, Rob; Mayordomo, John; Carroll, Chuck; Chamberlain, Mark; Chell, David; Colee, Mike; Courtney, Mike; Dryfoos, Mike; Duncan, Rachel; Eckhardt, Kurt; Evans, Eric; Granjero, Rick; Gates, Bill ; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W .; Kermaani, Kaamel; Rey, Adrian; Koch, Reed; Landowski, James; Larson, Chris; Lennon, Thomas; Lipkie, Dan; McDonald, Marc ; McKinney, Bruce; Martín, Pascal; Mathers, Estelle; Matthews, Bob; Melin, David; Mergentime, Charles; Nevin, Randy; Newell, Dan; Newell, Tani; Norris, David; O'Leary, Mike; O'Rear, Bob ; Olsson, Mike; Osterman, Larry; Ostling, Ridge; Pai, Sunil;Paterson, Tim ; Pérez, Gary; Peters, Chris; Petzold, Charles ; Pollock, John; Reynolds, Aaron ; Rubin, Darryl; Ryan, Ralph; Schulmeisters, Karl; Shah, Rajen; Shaw, Barry; Corto, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). "Asesores técnicos". La Enciclopedia de MS-DOS: versiones 1.0 a 3.2 . Por Duncan, Ray; Bostwick, Steve; Burgoyne, Keith; Byers, Robert A .; Hogan, Thom; Kyle, Jim; Letwin, Gordon ; Petzold, Charles ; Rabinowitz, Chip; Tomlin, Jim; Wilton, Richard; Wolverton, Van; Wong, William; Woodcock, JoAnne (Ed. Completamente reelaborada). Redmond, Washington, Estados Unidos: Microsoft Press .ISBN 1-55615-049-0. LCCN  87-21452 . OCLC  16581341 .(xix + 1570 páginas; 26 cm) (NB. Esta edición fue publicada en 1988 después de una extensa revisión de la primera edición retirada de 1986 por un equipo diferente de autores. [2] )
  31. ↑ a b c Chappell, Geoff (enero de 1994). "Capítulo 2: La huella del sistema". En Schulman, Andrew; Pedersen, Amorette (eds.). Internos de DOS . The Andrew Schulman Programming Series (primera impresión, primera edición). Addison Wesley Publishing Company . ISBN 978-0-201-60835-9.(xxvi + 738 + iv páginas, 3.5 "-floppy [3] [4] ) Fe de erratas: [5] [6] [7]
  32. Rosch, Winn L. (12 de febrero de 1991). "DR DOS 5.0 - ¿El mejor sistema operativo?" . Revista de PC . Vol. 10 no. 3. p. 241-246, 257, 264, 266. Archivado desde el original el 25 de julio de 2019 . Consultado el 26 de julio de 2019 . […] SYS se ha mejorado en DR DOS 5.0 para que no tenga que preocuparse por dejar el primer clúster libre en un disco que desee que sea de arranque. Los archivos del sistema DR DOS se pueden ubicar en cualquier lugar del disco, por lo que cualquier disco con suficiente espacio libre puede configurarse para iniciar su sistema. […] (NB. La fuente atribuye esto a la utilidad SYS, mientras que de hecho es una característica del cargador de arranque avanzado en el sector de arranque. SYS simplemente coloca este sector en el disco).
  33. Paul, Matthias R. (17 de enero de 2001). "FAT32 en DR-DOS" . opendos @ delorie . Archivado desde el original el 6 de octubre de 2017 . Consultado el 6 de octubre de 2017 . […] El sector de arranque DR-DOS […] busca el archivo IBMBIO.COM ( DRBIOS.SYS ) y luego carga el archivo * completo * en la memoria antes de que le pase el control. […]
  34. Paul, Matthias R. (20 de febrero de 2002). "No se puede copiar" . opendos @ delorie . Archivado desde el original el 6 de octubre de 2017 . Consultado el 6 de octubre de 2017 . […] El sector de arranque DR-DOS carga todo el archivo IBMBIO.COM en la memoria antes de ejecutarlo. No le importa en absoluto el archivo IBMDOS.COM , que es cargado por IBMBIO.COM. […] El sector de arranque de DR-DOS […] encontrará los archivos del kernel […] siempre que estén almacenados lógicamente en el directorio raíz. Su ubicación física en el disco, y si están fragmentados o no, no se preocupa por el sector de arranque DR-DOS. Por lo tanto, puede copiar los archivos del kernel al disco (incluso con un simpleCOPY ), y tan pronto como el sector de arranque sea un sector DR-DOS, los encontrará y los cargará. Por supuesto, es difícil poner todo esto en solo 512 bytes, el tamaño de un solo sector, pero esta es una mejora de conveniencia importante si tiene que configurar un sistema DR-DOS, y también es la clave para el DR. -La utilidad DOS multi-OS LOADER funciona. Los archivos del kernel de MS-DOS deben residir en ubicaciones específicas, pero los archivos de DR-DOS pueden estar en cualquier lugar, por lo que no tiene que intercambiarlos físicamente cada vez que inicie el otro sistema operativo. Además, permite actualizar un sistema DR-DOS simplemente copiando los archivos del kernel sobre los antiguos, sin necesidad de SYS , sin procedimientos de configuración difíciles como se requiere para MS-DOS / PC DOS. Incluso puede tener varios archivos de kernel DR-DOS con diferentes nombres de archivo almacenados en la misma unidad, y LOADER cambiará entre ellos de acuerdo con los nombres de archivo enumerados en el archivo BOOT.LST . […]
  35. Paul, Matthias R. (14 de agosto de 2017) [7 de agosto de 2017]. "La saga continua de Windows 3.1 en modo mejorado en OmniBook 300" . MoHPC: el Museo de calculadoras HP . Archivado desde el original el 6 de octubre de 2017 . Consultado el 6 de octubre de 2017 . […] El DR-DOS FDISK no solo particiona un disco, sino que también puede formatear los volúmenes recién creados e inicializar sus sectores de arranque de una sola vez, por lo que no hay riesgo de estropear accidentalmente el volumen incorrecto y sin necesidad de FORMAT / S o SYS . Luego, puede simplemente copiar los archivos DR-DOS restantes, incluidos los archivos del sistema. Es importante saber que, a diferencia de MS-DOS / PC DOS , DR-DOS tiene sectores de arranque "inteligentes" que realmente "montarán" el sistema de archivos para buscar y cargar los archivos del sistema en el directorio raíz en lugar de esperar que se coloquen en una ubicación determinada. Físicamente, los archivos del sistema se pueden ubicar en cualquier lugar y también se pueden fragmentar. […]
  36. ^ "Capítulo 6 - Solución de problemas de inicio y de disco" . Kit de recursos de Windows NT Server . Microsoft. Archivado desde el original el 15 de mayo de 2007.
  37. ^ "Tinte" . coreboot . Consultado el 20 de noviembre de 2010 .
  38. ^ "Lista de marcas de PC con sus correspondientes teclas de acceso rápido" . www.disk-image.com . Consultado el 26 de septiembre de 2020 .
  39. ^ "Cómo ingresar al BIOS en cualquier PC: Teclas de acceso por fabricante | Hardware de Tom" . www.tomshardware.com . Consultado el 26 de septiembre de 2020 .
  40. Brown, Eric (2 de octubre de 2008). "MontaVista Linux impulsa la función de arranque rápido de Dell" . linuxdevices.com . Consultado el 20 de noviembre de 2010 .
  41. Larabel, Michael ( 14 de junio de 2008 ). "¿SplashTop Linux en HP, portátiles Dell?" . Phoronix . Consultado el 20 de noviembre de 2010 .
  42. ^ "IOS instantáneo de Voodoo Envy (impulsado por Splashtop)" . YouTube . Consultado el 20 de noviembre de 2010 .
  43. ^ "Manual de referencia del programador de iAPX 286" (PDF) . Intel . 1983. Sección 5.3 INICIALIZACIÓN DEL SISTEMA, p. 5-7 . Consultado el 23 de agosto de 2019 . Dado que el registro CS contiene F000 (especificando así un segmento de código que comienza en la dirección física F0000) y el puntero de instrucción contiene FFF0, el procesador ejecutará su primera instrucción en la dirección física FFFF0H.
  44. ^ "Manual de referencia del programador 80386" (PDF) . Intel. 1986. Sección 10.2.3 Primeras instrucciones, p. 10-3 . Consultado el 3 de noviembre de 2013 . Después de RESET, las líneas de dirección A31-20 se afirman automáticamente para obtener instrucciones. Este hecho, junto con los valores iniciales de CS: IP, hace que la ejecución de la instrucción comience en la dirección física FFFFFFF0H.
  45. ^ "Manual del desarrollador de software de arquitecturas Intel 64 e IA-32" (PDF) . Intel Corporation . Mayo de 2012. Sección 9.1.4 Primera instrucción ejecutada, p. 2611 . Consultado el 23 de agosto de 2012 . La primera instrucción que se obtiene y se ejecuta después de un reinicio del hardware se encuentra en la dirección física FFFFFFF0h. Esta dirección está 16 bytes por debajo de la dirección física más alta del procesador. La EPROM que contiene el código de inicialización del software debe estar ubicada en esta dirección.
  46. ^ "Marco de innovación de plataforma Intel para EFI" . Intel . Consultado el 7 de enero de 2008 .
  47. ^ "OpenBIOS - coreboot" . coreboot.org . Consultado el 20 de marzo de 2013 .
  48. ^ "UEFI - OSDev Wiki" . wiki.osdev.org . Consultado el 26 de septiembre de 2020 .
  49. ^ "Descripción general: las cuatro etapas del cargador de arranque" . ti.com . Texas Instruments . 2013-12-05 . Consultado el 25 de enero de 2015 .