stringtranslate.com

Arranque

Diagrama de flujo del arranque de una computadora.

En informática , el arranque es el proceso de poner en marcha una computadora a través de hardware , como un botón en la computadora, o mediante un comando de software . Después de encenderla, la unidad central de procesamiento (CPU) de una computadora no tiene software en su memoria principal , por lo que algún proceso debe cargar software en la memoria antes de poder ejecutarse. Esto puede hacerse mediante hardware o firmware en la CPU, o mediante un procesador independiente en el sistema informático.

El reinicio de una computadora también se denomina reinicio , que puede ser "duro", por ejemplo, después de que la energía eléctrica de la CPU pasa de estar apagada a estar encendida, o "suave", donde la energía no se corta. En algunos sistemas, un arranque suave puede, opcionalmente, borrar la RAM a cero. Tanto el arranque duro como el suave pueden iniciarse por hardware, como al presionar un botón, o por un comando de software. El arranque se completa cuando se alcanza el sistema operativo en tiempo de ejecución , generalmente el sistema operativo y algunas aplicaciones, [nb 1] .

El proceso de recuperación de un ordenador desde un estado de suspensión no implica el arranque; sin embargo, la recuperación desde un estado de hibernación sí lo implica. Como mínimo, algunos sistemas integrados no requieren una secuencia de arranque notable para empezar 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 estados y un reinicio puede ser el único método para volver a un estado cero designado desde un estado bloqueado no deseado.

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 deriva de la frase " pull oneself up by one's bootstraps" (salir adelante por sí mismo con las propias fuerzas) . [3] [4] El uso llama la atención sobre el requisito de que, si la mayor parte 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 obtener 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 en la capacidad de la ROM ha permitido que se implementen procedimientos de inicio cada vez más elaborados.

Historia

Interruptores y cables utilizados para programar ENIAC (1946)

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

Ejemplos de ROM de circuitos preintegrados

Las primeras computadoras

Las primeras computadoras de los años 1940 y 1950 eran proyectos de ingeniería únicos que podían llevar semanas de programación y la carga de programas era uno de los muchos problemas que había que resolver. Una de las primeras computadoras, la ENIAC , no tenía programas almacenados en la memoria, sino que estaba configurada para cada problema mediante una configuración de cables de interconexión. El arranque no se aplicaba a la ENIAC, cuya configuración de hardware estaba lista para resolver problemas tan pronto como se aplicaba la energía.

El sistema EDSAC , el segundo ordenador con programa almacenado que se construyó, utilizaba interruptores de paso para transferir un programa fijo a la memoria cuando se pulsaba su botón de inicio. El programa almacenado en este dispositivo, que David Wheeler completó a finales de 1948, cargaba más instrucciones desde una cinta perforada y luego las ejecutaba. [6] [7]

Primeros ordenadores comerciales

Los primeros ordenadores programables para su venta comercial, como el UNIVAC I y el IBM 701 [8], incluían características para simplificar su funcionamiento. Normalmente incluían instrucciones que realizaban una operación completa de entrada o salida. La misma lógica de hardware podía utilizarse para cargar el contenido de una tarjeta perforada (las más típicas) u otros medios de entrada, como un tambor magnético o una cinta magnética , que contenían un programa de arranque pulsando un único botón. Este concepto de arranque recibió diversos nombres para los ordenadores IBM de los años 1950 y principios de los 1960, pero IBM utilizó el término "Carga inicial del programa" con el IBM 7030 Stretch [9] y más tarde lo utilizó para sus líneas de mainframe, empezando por el System/360 en 1964.

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

El ordenador IBM 701 (1952-1956) tenía un botón de "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 de selección de carga. La media palabra de 18 bits de la izquierda se ejecutaba entonces como una instrucción, que normalmente leía palabras adicionales en la memoria. [10] [11] A continuación se ejecutaba el programa de arranque cargado, que, a su vez, cargaba un programa más grande desde ese medio en la memoria sin más ayuda del operador humano. El IBM 704 , [12] IBM 7090 , [13] e IBM 7094 [14] tenían mecanismos similares, pero con diferentes botones de carga para diferentes dispositivos. El término "arranque" se ha utilizado en este sentido desde al menos 1958. [15]

Consola IBM System/3 de la década de 1970. El interruptor selector de carga de programa está abajo a la izquierda; el interruptor de carga de programa está abajo a la derecha.

Otras computadoras IBM de esa época tenían características similares. Por ejemplo, el sistema IBM 1401 (c. 1958) utilizaba un lector de tarjetas para cargar un programa desde una tarjeta perforada. Los 80 caracteres almacenados en la tarjeta perforada se leían en las posiciones de memoria 001 a 080, luego la computadora se dirigía a la posició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 posiciones de memoria a un área de ensamblaje donde la información en las tarjetas perforadas 2, 3, 4, etc., se podía combinar para formar el programa almacenado. Una vez que esta información se movía al área de ensamblaje, la máquina se dirigía a una instrucción en la posición 080 (leer una tarjeta) y se leía la siguiente tarjeta y se procesaba 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. Así, al poner los interruptores en 7004000400 y presionar el botón apropiado, se leí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. [16] Los IBM 7040 y 7044 tienen un mecanismo similar, en el que el botón Cargar hace que se ejecute la instrucción configurada en las teclas de entrada en el panel frontal, y el canal que configura la instrucción recibe un comando para transferir datos a la memoria comenzando en la dirección 00100; cuando esa transferencia termina, la CPU salta a la dirección 00101. [17]

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

Una notable variación de esto se encuentra en el Burroughs B1700 , donde no hay una ROM de arranque ni una operación de IPL cableada. En cambio, después de que el sistema se reinicia, lee y ejecuta microinstrucciones secuencialmente desde una unidad de cinta de casete montada en el panel frontal; esto configura un cargador de arranque en RAM que luego se ejecuta. [21] Sin embargo, dado que esto hace pocas suposiciones sobre el sistema, también se puede utilizar 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 falla grave de la CPU. [21]

IBM System/360 y sucesores

En IBM System/360 y sus sucesores, incluidas las máquinas z/Architecture actuales , el proceso de arranque se conoce como Carga inicial del programa (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 en día. [22] 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 de presionar el botón LOAD . En los modelos System/360 de gama alta , la mayoría [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] un dispositivo similar al IBM 2250 o al 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. Las CPU Amdahl 470V/6 y 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. Más tarde, IBM también admitiría más de 16 canales.

La función IPL en el System/360 y sus sucesores anteriores a IBM Z , y sus compatibles como el de 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 (la primera CCW siempre es simulada por la CPU y consiste en un comando Read IPL, 02h , con encadenamiento de comandos y supresión de indicación de longitud incorrecta aplicada). 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 esa PSW. [22] El dispositivo IPL es normalmente una unidad de disco, de ahí la especial importancia del comando de tipo lectura 02h , pero también se utiliza exactamente el mismo procedimiento para IPL desde otros dispositivos de tipo entrada, como unidades de cinta o incluso lectores de tarjetas, de una 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 Seek de cilindro y cabezal, 07h , y que busque el registro 01h , simulando un comando Search ID Equal, 31h ; las búsquedas no son simuladas por los controladores de cinta y tarjeta, ya que para estas clases de dispositivos un comando Read IPL es simplemente un comando de lectura secuencial.

El disco, la cinta o la unidad de tarjetas 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 "Texto IPL" se coloca en el disco mediante el programa DASDI (Inicialización de dispositivo de almacenamiento de acceso directo) independiente o un programa equivalente que se ejecuta en un sistema operativo, por ejemplo, ICKDSF, pero las cintas y unidades de tarjetas compatibles con IPL generalmente se distribuyen con este "Texto IPL" ya presente.

IBM introdujo algunos cambios evolutivos en el proceso de IPL, modificando algunos detalles para System/370 Extended Architecture (S/370-XA) y posteriores, y añadiendo un nuevo tipo de IPL para z/Architecture.

Minicomputadoras

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

Las minicomputadoras , comenzando con las PDP-5 y PDP-8 (1965) de Digital Equipment Corporation (DEC), simplificaron el diseño al utilizar 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 generalmente tenían alguna forma de alternar en programas cortos manipulando una matriz 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 se cortaba la energía, estos cargadores de arranque permanecerían en su lugar a menos que se borraran. El borrado a veces ocurría accidentalmente cuando un error del programa causaba un bucle que sobrescribía toda la memoria.

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

Como las operaciones de E/S necesarias para provocar una operación de lectura en un dispositivo de E/S de minicomputadora normalmente eran diferentes para los distintos controladores de dispositivos, se necesitaban distintos programas de arranque para los distintos dispositivos.

Más tarde, en 1971, DEC añadió una memoria opcional de sólo lectura con matriz de diodos 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 contenía una matriz de 32 por 16 diodos semiconductores. Con los 512 diodos en su lugar, la memoria contenía todos los bits "uno"; la tarjeta se programaba cortando cada diodo cuyo bit iba a ser "cero". DEC también vendió versiones de la tarjeta, la serie BM792-Yx, preprogramadas para muchos dispositivos de entrada estándar simplemente omitiendo los diodos innecesarios. [23] [24]

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 indicarle al lector de cinta de papel que cargue un programa directamente en la memoria central. Los sucesores del PDP-4 , PDP- 7 [25] PDP-9 [26] y PDP -15 [27], tienen un botón Read-In agregado para leer un programa desde la cinta de papel y saltar a él. El Data General Supernova usó interruptores del panel frontal para hacer que la computadora cargara automáticamente instrucciones en la memoria desde un dispositivo especificado por los interruptores de datos del panel frontal y luego saltara al código cargado. [28]

Ejemplos de cargadores de arranque de minicomputadoras antiguas

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 segunda etapa (a menudo llamado cargador binario ) que podía leer 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 podría ser tan simple como las siguientes ocho instrucciones:

  1. Establezca el registro P en 9
  2. Lector de cinta de papel de verificación listo
  3. Si no está listo, salte al paso 2
  4. Leer un byte desde el lector de cinta de papel al acumulador
  5. Almacenar acumulador en dirección en registro P
  6. Si es el final de la cinta, salta al 9
  7. Incrementar el registro P
  8. Saltar al 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 perforación y lectura de cinta de papel de un teleimpresor Teletype Model 33 ASR . 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. Lector de cinta de papel de verificación listo
  3. Si no está listo, salte al paso 2
  4. Leer un byte desde el lector de cinta de papel al acumulador
  5. Almacenar acumulador en dirección en registro P
  6. Decrementar el registro P
  7. Saltar al 2

La longitud del cargador de segunda etapa es tal que el byte final sobrescribe la posición 7. Después de que se ejecuta la instrucción en la posición 6, la posición 7 inicia la ejecución del cargador de segunda etapa. El cargador de segunda etapa espera entonces a que la cinta mucho más larga que contiene el sistema operativo se coloque en el lector de cinta. 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 detectar errores de lectura de la cinta de papel, una ocurrencia frecuente con hardware de "trabajo a tiempo parcial" de costo relativamente bajo, como el Teletype Model 33 ASR. (Las máquinas de flexografía Friden eran mucho más confiables, pero también comparativamente costosas).

Arranque de los primeros microordenadores

Los primeros microordenadores, como el Altair 8800 (lanzado por primera vez en 1975) y una máquina similar aún anterior (basada en la CPU Intel 8008) no tenían hardware de arranque como tal. [29] Cuando se encendía, la CPU veía memoria que contenía datos aleatorios. Los paneles frontales de estas máquinas llevaban interruptores de palanca para introducir direcciones y datos, un interruptor por bit de la palabra de memoria de la computadora y bus de direcciones. Sencillas adiciones al hardware permitían cargar una ubicación de memoria a la vez desde esos interruptores para almacenar el código de arranque. Mientras tanto, se impedía que la CPU intentara ejecutar el contenido de la memoria. Una vez cargado correctamente, la CPU podía ejecutar el código de arranque. Este proceso, similar al utilizado para varios miniordenadores anteriores, era tedioso y tenía que estar libre de errores. [30]

La era de la memoria de sólo lectura en circuitos integrados

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

La introducción de la memoria de solo lectura (ROM) de circuitos integrados, con sus numerosas variantes, incluidas las ROM programadas por máscara , las ROM programables (PROM), las ROM programables borrables (EPROM) y la memoria flash , redujo el tamaño físico y el costo de la ROM. Esto permitió que los programas de arranque de firmware se incluyeran como parte de la computadora.

Minicomputadoras

Los modelos Data General Nova 1200 (1970) y Nova 800 (1971) tenían un interruptor de carga de programa que, en combinación con opciones que proporcionaban dos chips ROM, cargaba un programa en la memoria principal desde esos chips ROM y saltaba a él. [28] Digital Equipment Corporation introdujo las memorias ROM basadas en circuitos integrados BM873 (1974), [31] M9301 (1977), [32] M9312 (1978), [33] REV11-A y REV11-C, [34] MRV11-C, [35] y MRV11-D [36] , todas utilizables como ROM de arranque. Los modelos PDP-11/34 (1976), [37] PDP-11/60 (1977), [38] PDP-11/24 (1979), [39] y la mayoría de los modelos posteriores incluyen módulos ROM de arranque.

Un ordenador de conmutación telefónica italiano, llamado "Gruppi Speciali", patentado en 1975 por Alberto Ciaramella , un investigador del CSELT , [40] incluía una ROM (externa). Gruppi Speciali fue, a partir de 1975, una máquina que arrancaba el sistema operativo con un solo botón desde una memoria ROM compuesta de semiconductores, no de núcleos de ferrita. Aunque el dispositivo ROM no estaba integrado de forma nativa en el ordenador de Gruppi Speciali, debido al diseño de la máquina, también permitía el arranque con un solo botón de ROM 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 almacenaba el estado de la máquina después del apagado, lo que era otra característica crítica en la competición de conmutación telefónica. [41]

Algunas minicomputadoras y superminicomputadoras incluyen un procesador de consola independiente que arranca el procesador principal. La PDP-11/44 tenía un Intel 8085 como procesador de consola; [42] la VAX-11/780 , el primer miembro de la línea VAX de superminicomputadoras de 32 bits de Digital, tenía un procesador de consola basado en LSI-11 , [43] y la VAX-11/730 tenía un procesador de consola basado en 8085. [44] Estos procesadores de consola podían arrancar el procesador principal desde varios dispositivos de almacenamiento.

Algunas otras superminicomputadoras, como la VAX-11/750, implementan funciones de consola, incluida la primera etapa de arranque, en el microcódigo de la CPU. [45]

Microprocesadores y microcomputadoras

Por lo general, un microprocesador, después de una condición de reinicio o encendido, realizará un proceso de inicio que generalmente toma la forma de "iniciar 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 utilizando ese microprocesador tendrá la ROM permanente ocupando estas ubicaciones especiales de modo que el sistema siempre comience a funcionar sin asistencia del operador. Por ejemplo, los procesadores Intel x86 siempre comienzan ejecutando las instrucciones que comienzan en F000:FFF0, [46] [47] mientras que para el procesador MOS 6502 , la inicialización comienza leyendo una dirección de vector de dos bytes en $FFFD (byte MS) y $FFFC (byte LS) y saltando a esa ubicación para ejecutar el código de arranque. [48]

El primer ordenador de Apple Computer , el Apple 1 , presentado en 1976, incorporaba chips PROM que eliminaban la necesidad de un panel frontal para el proceso de arranque (como era el caso del Altair 8800) en un ordenador comercial. Según el anuncio de Apple que lo anunciaba, "No más interruptores, no más luces... el firmware en PROMS permite introducir, visualizar y depurar programas (todo en hexadecimal) desde el teclado". [49]

Debido al costo de la memoria de solo lectura en ese momento, el Apple II iniciaba sus sistemas operativos de disco utilizando una serie de pasos incrementales muy pequeños, cada uno de los cuales pasaba el control a la siguiente fase del proceso de arranque gradualmente más complejo. (Ver Apple DOS: Cargador de arranque ). Debido a que tan 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 personalizados de protección contra copias de disco. (Ver Cracking de software: Historia ).

Algunos sistemas operativos, en particular 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 distinto del estándar. Este es el extremo opuesto del escenario que utiliza los conmutadores 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 habitual en estas 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 de Unix A/UX y copiada por varios sistemas operativos freeware y BeOS Personal Edition 5 .

Algunas máquinas, como la microcomputadora Atari ST , eran de "encendido instantáneo", con el sistema operativo ejecutándose desde una ROM . De esta manera, la recuperación del sistema operativo desde una memoria secundaria o terciaria fue eliminada como una de las operaciones características del arranque. Para permitir que las personalizaciones del sistema, los accesorios y otro software de soporte se cargaran automáticamente, la unidad de disquete de Atari se leía en busca de componentes adicionales durante el proceso de arranque. Había un retraso de tiempo de espera que proporcionaba tiempo para insertar manualmente un disquete mientras el sistema buscaba los componentes adicionales. Esto se podía evitar insertando un disco en blanco. El hardware de Atari ST también fue diseñado para que la ranura del cartucho pudiera proporcionar la ejecución nativa del programa para fines de juego como un remanente del legado de Atari de hacer juegos electrónicos; al insertar el cartucho Spectre GCR con la ROM del sistema Macintosh en la ranura del juego y encender el Atari, podía "arrancar de forma nativa" el sistema operativo Macintosh en lugar del propio TOS de Atari .

La IBM Personal Computer incluía un firmware basado en ROM llamado BIOS ; una de las funciones de ese firmware era realizar una prueba automática de encendido cuando se encendía la máquina y luego leer el software de un dispositivo de arranque y ejecutarlo. El firmware compatible con el BIOS en la IBM Personal Computer se utiliza en computadoras compatibles con IBM PC . La UEFI fue desarrollada por Intel, originalmente para máquinas basadas en Itanium , y luego también se usó como una alternativa al BIOS en máquinas basadas en x86 , incluidas las Apple Macs que usan procesadores Intel .

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

Cargadores de arranque modernos

Cuando se apaga una computadora, su software, incluidos los sistemas operativos, el código de aplicación y los datos, permanece almacenado en la memoria no volátil . Cuando se enciende la computadora, normalmente no tiene un sistema operativo ni su cargador en la memoria de acceso aleatorio (RAM). La computadora primero ejecuta un programa relativamente pequeño almacenado en la memoria de solo lectura (ROM y más tarde EEPROM , flash NOR ) que admite la ejecución en el lugar , para inicializar la CPU y la placa base, para inicializar la DRAM (especialmente en sistemas x86), para acceder al dispositivo no volátil (generalmente un dispositivo direccionado por bloques, por ejemplo, flash NAND, SSD) o dispositivos desde los cuales los programas y datos del sistema operativo se pueden cargar en la RAM; además, este programa puede inicializar dispositivos de visualización (como GPU ), dispositivos de entrada de texto (como el teclado ) y dispositivos de entrada de puntero (como el mouse ).

El pequeño programa que inicia esta secuencia se conoce como cargador de arranque , bootstrap o gestor de arranque . A menudo se utilizan cargadores de arranque de varias etapas, durante los cuales se cargan varios programas de complejidad creciente uno tras otro en un proceso de carga en cadena .

Algunos sistemas informáticos anteriores, 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 indicarle a la CPU las instrucciones e iniciar su ejecución. Estas instrucciones generalmente inician una operación de entrada desde algún dispositivo periférico (que puede ser seleccionable por el operador mediante un interruptor). Otros sistemas pueden enviar comandos de hardware directamente a dispositivos periféricos o controladores de E/S que hacen que se realice 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"), cargando efectivamente una pequeña cantidad de instrucciones del cargador de arranque en la memoria; luego, se puede usar una señal de finalización del dispositivo de E/S para iniciar la ejecución de las instrucciones por parte de la CPU.

Los ordenadores más pequeños suelen utilizar mecanismos de arranque menos flexibles pero más automáticos para garantizar que el ordenador se inicie rápidamente y con una configuración de software predeterminada. En muchos ordenadores de sobremesa, por ejemplo, el proceso de arranque comienza con la CPU ejecutando el software contenido en la ROM (por ejemplo, la BIOS de un IBM PC ) en una dirección predefinida (algunas CPU, incluidas las de la serie Intel x86 , están diseñadas para ejecutar este software tras el reinicio sin ayuda externa). Este software contiene una funcionalidad rudimentaria para buscar dispositivos aptos para participar en el arranque y cargar un pequeño programa desde una sección especial (más habitualmente el sector de arranque ) del dispositivo más prometedor, normalmente empezando en un punto de entrada fijo como el inicio del sector.

Los cargadores de arranque pueden enfrentar restricciones peculiares, especialmente en tamaño; por ejemplo, en IBM PC y compatibles, el código de arranque debe caber en el Registro de arranque maestro (MBR) y el Registro de arranque de partición (PBR), que a su vez están limitados a un solo sector; en IBM System/360 , el tamaño está limitado por el medio IPL, por ejemplo, tamaño de la tarjeta , tamaño de la pista.

En sistemas con esas restricciones, el primer programa cargado en la RAM puede no ser lo suficientemente grande como para cargar el sistema operativo y, en su lugar, debe cargar otro programa más grande. El primer programa cargado en la RAM se denomina cargador de arranque de primera etapa, y el programa que carga se denomina cargador de arranque de segunda etapa. En muchas CPU integradas, la ROM de arranque integrada de la CPU , a veces denominada cargador de arranque de etapa cero, [50] puede encontrar y cargar cargadores de arranque de primera etapa.

Cargadores de arranque de primera etapa

Entre los ejemplos de cargadores de arranque de primera etapa (etapa de inicialización de hardware) se incluyen BIOS , UEFI , coreboot , Libreboot y Das U-Boot . En la IBM PC, el cargador de arranque en el Master Boot Record (MBR) y el Partition Boot Record (PBR) se codificó para requerir al menos 32 KB [51] [52] ( posteriormente ampliado a 64 KB [53] ) de memoria del sistema y solo usar instrucciones compatibles con los procesadores 8088/8086 originales .

Cargadores de arranque de segunda etapa

Los cargadores de arranque de segunda etapa (etapa de inicialización del SO), como shim, [54] GNU GRUB , rEFInd , BOOTMGR , Syslinux , NTLDR y iBoot , no son en sí mismos sistemas operativos, pero pueden cargar un sistema operativo correctamente y transferirle la ejecución; el sistema operativo posteriormente se inicializa a sí mismo y puede cargar controladores de dispositivos adicionales . El cargador de arranque de segunda etapa no necesita controladores para su propio funcionamiento, pero puede utilizar en su lugar métodos de acceso de almacenamiento genéricos proporcionados por el firmware del sistema, como el BIOS, UEFI u Open Firmware , aunque normalmente con funcionalidad de hardware restringida y menor rendimiento. [55]

Muchos cargadores de arranque (como GNU GRUB, rEFInd, BOOTMGR de Windows, Syslinux y NTLDR de Windows NT/2000/XP) pueden configurarse 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 modo de rescate o seguro ) y algunos programas independientes que pueden funcionar sin un sistema operativo, como comprobadores de memoria (por ejemplo, memtest86+ ), un shell básico (como en GNU GRUB) o incluso juegos (consulte Lista de juegos de PC Booter ). [56] Algunos cargadores de arranque también pueden cargar otros cargadores de arranque; por ejemplo, GRUB carga BOOTMGR en lugar de cargar Windows directamente. Normalmente se preselecciona una opción predeterminada con un retraso de tiempo durante el cual el usuario puede pulsar una tecla para cambiar la opción; después de este retraso, la opción predeterminada se ejecuta automáticamente para que el arranque normal pueda ocurrir sin interacción.

El proceso de arranque puede considerarse 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.

Cargadores de arranque integrados y de múltiples etapas

Muchos sistemas integrados deben arrancar inmediatamente. Por ejemplo, esperar un minuto para que se inicie un televisor digital o un dispositivo de navegación GPS es generalmente inaceptable. Por lo tanto, estos dispositivos tienen sistemas de software en la memoria ROM o 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 fabrica el dispositivo. [ cita requerida ]

Los sistemas grandes y complejos pueden tener procedimientos de arranque que se llevan a cabo en varias fases hasta que finalmente el sistema operativo y otros programas se cargan y están listos para ejecutarse. Debido a que los sistemas operativos están diseñados como si nunca se iniciaran ni se detuvieran, 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 finaliza normalmente como lo haría cualquier otro proceso.

Arranque de red

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 que se han transferido estas partes, el sistema operativo asume el control del proceso de arranque.

Al igual que con el cargador de arranque de segunda etapa, el arranque en red comienza utilizando métodos de acceso a red genéricos proporcionados por la ROM de arranque de la interfaz de red, que normalmente contiene una imagen de entorno de ejecución de prearranque (PXE). No se requieren controladores, pero la funcionalidad del sistema está limitada hasta que se transfieran e inicien el núcleo y los controladores del sistema operativo. Como resultado, una vez que se ha completado el arranque basado en ROM, es totalmente posible arrancar en red un sistema operativo que no tiene la capacidad de utilizar la interfaz de red.

Computadoras personales (PC) compatibles con IBM

Dispositivos de arranque

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

El dispositivo de arranque es el dispositivo de almacenamiento desde el que se carga el sistema operativo. El firmware UEFI o BIOS de una PC moderna admite el arranque desde varios dispositivos, normalmente una unidad de estado sólido local o una unidad de disco duro a través del 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 USB , lector de tarjetas de memoria , unidad de disco duro USB, unidad de disco óptico USB, unidad de estado sólido USB, etc.) o una tarjeta de interfaz de red (usando PXE ). Los dispositivos de arranque BIOS más antiguos y menos comunes incluyen unidades de disquete , unidades Zip y unidades LS-120 .

Por lo general, el firmware del sistema (UEFI o BIOS) permitirá al usuario configurar un orden de arranque . Si el orden de arranque está configurado como "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 podría configurar el orden de arranque al indicado anteriormente y luego insertar un Live CD de Linux para probar Linux sin tener que instalar un sistema operativo en el disco duro. 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 iniciar seleccionándolo desde un menú de administrador de arranque en el dispositivo seleccionado, usando el teclado de la computadora para seleccionar desde un menú de arranque BIOS o UEFI , o ambos; el menú de arranque generalmente se ingresa presionando las teclas o durante la POST; la configuración de la BIOS generalmente se ingresa presionando las teclas o durante la POST. [57] [58]F8F12F2DEL

Hay varios dispositivos disponibles que permiten al usuario iniciar rápidamente lo que suele ser una variante de Linux para diversas tareas simples, como el acceso a Internet; algunos ejemplos son Splashtop y Latitude ON . [59] [60] [61]

Secuencia de arranque

Un volcado hexadecimal del MBR de arranque de FreeBSD
Premio al software BIOS del año 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 [62] y FFFFFFF0h en procesadores x86 de 32 bits y 64 bits [63] [64] ), generalmente apuntando 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 verificar e inicializar los dispositivos requeridos, como la memoria principal ( DRAM ), el bus PCI y los dispositivos PCI (incluidas las ROM opcionales integradas en ejecución ). Uno de los pasos más complejos es configurar la DRAM sobre SPD , lo que se complica 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 ) recorre una lista preconfigurada de dispositivos de almacenamiento no volátiles ("secuencia de dispositivos de arranque") hasta que encuentra uno que sea arrancable.

BIOS

Una vez que el BIOS ha encontrado un dispositivo de arranque, carga el sector de arranque en la dirección lineal 7C00h (normalmente segmento : desplazamiento 0000h : 7C00h , [51] [53] : 29,  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 Registro de arranque maestro (MBR). El código MBR convencional comprueba la tabla de particiones del MBR en busca de una partición configurada como de arranque [nb 5] (la que tiene activa la bandera). Si se encuentra una partición activa , el código MBR carga el código del sector de arranque de esa partición, conocido como Registro de arranque de volumen (VBR), y lo ejecuta. El código de arranque MBR suele ser específico del sistema operativo.

Un dispositivo MBR de arranque se define como uno que se puede leer y donde los dos últimos bytes del primer sector contienen la palabra little-endian AA55h , [nb 6] que se encuentra como secuencia de bytes 55h , AAh en el disco (también conocida como la firma de arranque MBR ), o donde se establece de otra manera que el código dentro del sector es ejecutable en PC x86.

El código del sector de arranque es el cargador de arranque de primera etapa. Se encuentra en discos fijos y unidades extraíbles , y 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 entradas de partición y la firma de arranque de dos bytes , que el BIOS requiere para un cargador de arranque adecuado, o incluso menos, cuando también se deben admitir 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), una Partición activa avanzada (18 bytes) o cargadores de arranque múltiples especiales en algunos entornos. En los registros de arranque de volumen de disquetes y superdisquetes , hasta 59 bytes están ocupados para el bloque de parámetros BIOS extendidos en volúmenes FAT12 y FAT16 desde DOS 4.0, mientras que el EBPB FAT32 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 tradicionalmente imponían 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 almacenado como sectores consecutivos, [65] [66] condiciones atendidas por el comando y ligeramente relajadas en versiones posteriores de DOS. [66] [nb 7] El cargador de arranque pudo entonces cargar los primeros tres sectores del archivo en la memoria, que contenía otro cargador de arranque integrado capaz de cargar el resto del archivo en la memoria. [66] Cuando Microsoft añadió soporte para LBA y FAT32, incluso cambiaron a un cargador de arranque que alcanzaba más de dos sectores físicos y usaba 386 instrucciones por razones de tamaño. Al mismo tiempo, otros proveedores lograron comprimir mucha más funcionalidad en un solo sector de arranque sin relajar las restricciones originales sobre la memoria mínima disponible (32 KB) y el soporte del procesador (8088/8086). [nb 8] Por ejemplo, los sectores de arranque DR-DOS pueden localizar 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. [67] [51] [68] [69] [70] [nb 9] [nb 8]SYS

El VBR suele ser específico del sistema operativo; sin embargo, su función principal es cargar y ejecutar el archivo del cargador de arranque del sistema operativo (como bootmgro ntldr), que es el cargador de arranque de segunda etapa, desde una partición activa. Luego, el cargador de arranque carga el núcleo del sistema operativo desde el dispositivo de almacenamiento.

Si no hay ninguna 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 normalmente carga el núcleo 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, debe emitir una llamada de interrupción del BIOS INT 18h [53] [51] (seguida de una INT 19h en caso de que INT 18h regrese) para devolver el control al BIOS, que luego intentará arrancar desde otros dispositivos e intentará un arranque remoto a través de la red. [51]

UEFI

Muchos sistemas modernos ( Mac Intel y PC más nuevos ) utilizan UEFI . [71] [72]

A diferencia del BIOS, UEFI (no el arranque heredado a través de CSM) no depende de 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, [73] y el kernel del sistema operativo es cargado por el cargador de arranque.

Otros tipos de secuencias de arranque

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

Muchas CPU, SoC y microcontroladores modernos (por ejemplo, TI OMAP ) o, a veces, incluso procesadores de señales digitales (DSP) pueden tener ROM de arranque integrada directamente en su silicio, por lo que un procesador de este tipo puede realizar una secuencia de arranque simple por sí solo y cargar programas de arranque (firmware o software) desde fuentes de arranque como NAND flash o eMMC. Es difícil cablear toda la lógica necesaria para manejar tales dispositivos, por lo que en tales escenarios se utiliza una ROM de arranque integrada. Además, una ROM de arranque puede cargar un cargador de arranque o un programa de diagnóstico a través de interfaces en serie como UART , SPI , USB , etc. Esta característica se utiliza a menudo para fines de recuperación del sistema, o también podría usarse para la programación inicial de memoria no volátil cuando aún no hay software disponible en la memoria no volátil. Muchos microcontroladores modernos (por ejemplo, el controlador de memoria flash en unidades flash USB ) tienen ROM de firmware integrada directamente en su silicio.

Algunos diseños de sistemas integrados también pueden incluir un paso de secuencia de arranque intermedio. Por ejemplo, Das U-Boot puede dividirse en dos etapas: la plataforma cargaría un pequeño SPL (Secondary Program Loader), que es una versión simplificada de U-Boot, y el SPL realizaría una configuración inicial del hardware (por ejemplo, inicialización de DRAM utilizando la caché de la CPU como RAM) y cargaría la versión más grande y con todas las funciones de U-Boot. [74] Algunas CPU y SoC pueden no utilizar la caché de la CPU como RAM en el proceso de arranque, sino que utilizan un procesador de arranque integrado para realizar una parte de la configuración del hardware, para reducir los costos. [75]

También es posible tomar el control de un sistema mediante una interfaz de depuración de hardware como JTAG . Dicha interfaz se puede utilizar para escribir el programa de 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 se puede utilizar para cargar algún código de diagnóstico o de arranque en la RAM y luego iniciar el núcleo del procesador y darle instrucciones para 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 ). [ cita requerida ]

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 de código de arranque en una 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 de reiniciar el sistema, el microcontrolador comienza a ejecutar código programado en su memoria no volátil, al igual que los procesadores habituales utilizan ROM para el arranque. Esta técnica es utilizada en particular por los microcontroladores Atmel AVR y por otros también. En muchos casos, dichas interfaces se implementan mediante lógica cableada. En otros casos, dichas interfaces podrían crearse mediante software que se ejecuta en la ROM de arranque integrada en el chip desde los pines GPIO .

La mayoría de los DSP 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, el manejo de interrupciones, el manejo de eventos externos, la interfaz de usuario, etc., mientras que el DSP se dedica únicamente 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 host (que da nombre a un puerto host). A este procesador también se lo denomina a veces maestro , ya que generalmente se inicia 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 depende del procesador host para proporcionar el código requerido. Los sistemas más notables con este diseño son los teléfonos celulares, los módems, los reproductores de audio y video, etc., donde coexisten un DSP y una CPU/microcontrolador.

Muchos chips FPGA cargan su configuración desde una EEPROM serial externa ("ROM de configuración") al encenderse.

Seguridad

Se han implementado varias medidas que mejoran la seguridad del proceso de arranque. Algunas de ellas son obligatorias, mientras que otras pueden ser deshabilitadas o habilitadas por el usuario final . Tradicionalmente, el arranque no implicaba el uso de criptografía . La seguridad se puede eludir desbloqueando el cargador de arranque , que puede o no estar aprobado por el fabricante. Los cargadores de arranque modernos utilizan concurrencia, lo que significa que pueden ejecutar varios núcleos de procesador y subprocesos al mismo tiempo, lo que agrega capas adicionales de complejidad para asegurar el arranque.

Matthew Garrett argumentó que el arranque seguro persigue un objetivo legítimo pero al hacerlo elige valores predeterminados que son hostiles para los usuarios. [76]

Medidas

Bucle de arranque

Consola UART de un enrutador TP-Link con OpenWrt que está atascado en un bucle de arranque

Al depurar un sistema de sistemas concurrente y distribuido , un bucle de arranque (también llamado bucle de arranque o bucle de arranque ) es una condición de diagnóstico de un estado erróneo que ocurre en los dispositivos informáticos; cuando esos dispositivos fallan repetidamente en completar el proceso de arranque y se reinician antes de que finalice una secuencia de arranque, un reinicio podría impedir que un usuario acceda a la interfaz normal.

A medida que aumenta la complejidad de los productos actuales, los proyectos individuales, los departamentos individuales o incluso las empresas individuales ya no pueden desarrollar productos totales, lo que provoca un desarrollo simultáneo y distribuido. Hoy y en todo el mundo, las industrias se enfrentan al desarrollo complejo de productos y a su amplia gama de problemas asociados, relacionados con la organización del proyecto, el control del proyecto y la calidad del producto. Muchos procesos también se distribuirán. El proceso de detección de defectos, tan importante para medir y, en última instancia, lograr la calidad del producto, suele ser uno de los primeros en experimentar problemas causados ​​por la naturaleza distribuida del proyecto. La distribución de las actividades de detección de defectos entre varias partes introduce riesgos como la revisión inadecuada de los productos de trabajo, la aparición de "puntos ciegos" con respecto a la cobertura de pruebas o el exceso de pruebas de los componentes. Por lo tanto, se necesita una coordinación de la detección de defectos a lo largo de todo el ciclo de vida para garantizar la eficacia y la eficiencia de las actividades de detección de defectos. —JJM Trienekens; RJ Kusters. (2004) [78]

Detección de un estado erróneo

El sistema podría exhibir su estado erróneo, digamos en un bucle de arranque explícito o una pantalla azul de la muerte , antes de que se indique la recuperación. [79] La detección de un estado erróneo puede requerir un almacén de eventos distribuido y una plataforma de procesamiento de flujo para la operación en tiempo real de un sistema distribuido.

Recuperación de un estado erróneo

Un estado erróneo puede provocar bucles de arranque; este estado puede ser causado por una configuración incorrecta de operaciones anteriores que se sabía que eran correctas. [a] Los intentos de recuperación desde ese estado erróneo luego ingresan a un reinicio, en un intento de volver a un estado que se sabía que era correcto. En las operaciones del sistema operativo Windows, por ejemplo, el procedimiento de recuperación consistía en reiniciar tres veces, los reinicios necesarios para volver a un menú utilizable. [80] [81] [79]

Política de recuperación

La recuperación se puede especificar a través del lenguaje de marcado de confirmación de seguridad (SAML), que también puede implementar el inicio de sesión único (SSO) para algunas aplicaciones; en el modelo de seguridad de confianza cero , la identificación, la autorización y la autenticación son cuestiones separables en una sesión SSO. Cuando se indica la recuperación de un sitio (por ejemplo, se muestra una pantalla azul de la muerte en la pantalla de una terminal de aeropuerto), [a] pueden ser necesarias visitas personales al sitio para remediar la situación. [78]

Ejemplos

Véase también

Notas

  1. ^ abc CrowdStrike revirtió la actualización de contenido a las 05:27 UTC, [90] Esto dejó a las máquinas atrapadas en un bucle de arranque o en modo de recuperación . [91] y los dispositivos que se iniciaron después de la reversión no se vieron afectados. [92] [93]
  1. ^ Incluyendo demonios .
  2. ^ UU solía tener la forma Uu, U=Dirección de unidad de control, u=Dirección de dispositivo, pero algunas unidades de control conectaban solo 8 dispositivos; algunas conectaban más de 16. De hecho, el controlador DASD 3830 ofrecía direccionamiento de 32 unidades como opción.
  3. ^ Excluyendo los modelos 370/145 y 370/155, que utilizaban una máquina de escribir de consola 3210 o 3215.
  4. ^ Sólo el S/360 usaba el 2250; el 360/85 , 370/165 y 370/168 usaban un dispositivo de teclado/pantalla compatible con ningún otro.
  5. ^ La partición activa puede contener un cargador de arranque de segunda etapa , por ejemplo, el Administrador de arranque OS/2, en lugar de un sistema operativo.
  6. ^ La firma en el desplazamiento +1FEhde los sectores de arranque es 55h AAh, es decir, 55hen el desplazamiento +1FEhy AAhen el desplazamiento +1FFh. Dado que se debe asumir la representación little-endian en el contexto de las máquinas compatibles con IBM PC , esto se puede escribir como una palabra de 16 bits AA55hen programas para procesadores x86 (observe el orden intercambiado), mientras que tendría que escribirse como 55AAhen programas para otras arquitecturas de CPU que utilizan una representación big-endian . Dado que esto se ha mezclado numerosas veces en libros e incluso en documentos de referencia originales de Microsoft, este artículo utiliza la representación en disco byte a byte basada en desplazamiento para evitar cualquier posible interpretación errónea.
  7. ^ El manual de PC DOS 5.0 indica incorrectamente que los archivos del sistema ya no necesitan estar 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 tres primeros sectores de IBMBIO.COM aún deben almacenarse de forma contigua. SYS continúa ocupándose de estos requisitos.
  8. ^ ab Como ejemplo, mientras que la funcionalidad extendida de los MBR y sectores de arranque de DR-DOS en comparación con sus contrapartes MS-DOS / PC DOS aún se podía lograr utilizando técnicas de optimización de código convencionales en lenguaje ensamblador hasta 7.05 , para la adición de soporte LBA , FAT32 y LOADER, los sectores 7.07 tuvieron que recurrir a código automodificable , programación a nivel de código de operación en lenguaje de máquina , utilización controlada de efectos secundarios (documentados) , superposición de datos/código de múltiples niveles y técnicas de plegado algorítmico 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 arranque múltiple y carga en cadena .
  9. ^ Hay una excepción a la regla de que los VBR de DR-DOS cargarán el archivo IBMBIO.COM completo en la memoria: si el archivo IBMBIO.COM es mayor que unos 29 KB, intentar cargar el archivo completo en la memoria haría que el cargador de arranque sobrescribiera la pila y reubicara la Tabla de parámetros de disco (DPT/FDPB). [A] Por lo tanto, un VBR de DR-DOS 7.07 solo cargaría los primeros 29 KB del archivo en la memoria, confiando en otro cargador integrado 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 excedió este límite en versiones anteriores sin este cargador. [A] Combinado con una estructura de entrada dual, esto también permite que el sistema sea cargado por un VBR de PC DOS , que cargaría solo los primeros tres sectores del archivo en la memoria.

Referencias

  1. ^ "bootstrap". Diccionario informático de tecnología de la información . Archivado desde el original el 5 de agosto de 2019. Consultado el 5 de agosto de 2019 .
  2. ^ "Bootstrap". Diccionario Libre . Archivado desde el original el 27 de agosto de 2006. Consultado el 27 de agosto de 2008 .
  3. ^ "Salir adelante por sus propios medios". Modismos de The Free Dictionary . Archivado desde el original el 2018-10-05 . Consultado el 2019-10-07 .
  4. ^ "Definición de Bootstrap". Términos técnicos . Archivado desde el original el 2020-05-10 . Consultado el 2019-10-02 .
  5. ^ "Sal de ahí por tus propios medios". The Phrase Finder . Archivado desde el original el 17 de abril de 2012. Consultado el 15 de julio de 2010 .
  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 . Archivado desde el original el 2023-02-20 . Consultado el 2020-09-25 .
  8. ^ Buchholz, Werner (1953). "El diseño del sistema de la computadora IBM Type 701" (PDF) . Actas del IRE . 41 (10): 1273. Archivado (PDF) desde el original el 2022-10-09.
  9. ^ ab "IBM 7619 Exchange". Manual de referencia del sistema de procesamiento de datos 7030 (PDF) . IBM. Agosto de 1961. págs. 125–127. A22-6530-2. Archivado (PDF) desde el original el 9 de octubre de 2022.
  10. ^ Principios de funcionamiento del tipo 701 y equipo asociado (PDF) . IBM. 1953. p. 26. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2012-11-09 .
  11. ^ De Gutenberg a Internet , Jeremy M. Norman, 2005, página 436, ISBN 0-930405-87-0 
  12. ^ 704 Manual de operación de la máquina de procesamiento electrónico de datos (PDF) . IBM . págs. 14-15. Archivado (PDF) desde el original el 2022-10-09.
  13. ^ Guía del operador del sistema de procesamiento de datos IBM 7090 (PDF) . IBM . p. 34. Archivado (PDF) desde el original el 2022-10-09.
  14. ^ Principios de funcionamiento de IBM 7094 (PDF) . IBM . pág. 146. Archivado (PDF) desde el original el 2022-10-09.
  15. ^ Diccionario Oxford de inglés. Universidad de Oxford . 1939.
  16. ^ Manual de operación de la máquina de procesamiento de datos de tambor magnético 650 (PDF) . IBM. 1955. págs. 49, 53–54. Archivado (PDF) desde el original el 9 de octubre de 2022.
  17. ^ Guía del operador de los sistemas IBM 7040-7044 (PDF) . IBM . pág. 10. A22-6741-1. Archivado (PDF) desde el original el 2022-10-09.
  18. ^ CONTROL DATA 6600 Computer System Reference Manual (PDF) (Segunda edición). Control Data Corporation . Agosto de 1963. pág. 53. Archivado (PDF) desde el original el 2022-10-09.
  19. ^ Manual del sistema GE-645 (PDF) . General Electric . Enero de 1968. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2019-10-30 .
  20. ^ Manual de referencia del sistema PDP-10, parte 1 (PDF) . Digital Equipment Corporation . 1969. págs. 2–72. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2012-11-09 .
  21. ^ ab Burroughs B 1700 Systems Reference Manual (PDF) . Burroughs Corporation . Noviembre de 1973. pág. 1-14. Archivado (PDF) desde el original el 2022-10-09.
  22. ^ ab z/Architecture Principles of Operation (PDF) . IBM . Septiembre de 2005. págs. Capítulo 17. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2007-04-14 .
  23. ^ Cargador de arranque MR11~DB y memoria de solo lectura BM792 (PDF) . Digital Equipment Corporation . Enero de 1974. DEC-II-HBMAA-ED. Archivado (PDF) desde el original el 2022-10-09.
  24. ^ Manual de periféricos PDP-11 (PDF) . Digital Equipment Corporation . 1976. pág. 4-25. Archivado (PDF) desde el original el 2022-10-09.
  25. ^ Manual del usuario del procesador de datos programado-7 (PDF) . Digital Equipment Corporation . 1965. pág. 143. Archivado (PDF) desde el original el 2022-10-09.
  26. ^ Manual del usuario de la PDP-9 (PDF) . Digital Equipment Corporation . Enero de 1968. pág. 10-3. Archivado (PDF) desde el original el 9 de octubre de 2022.
  27. ^ Manual de referencia de sistemas PDP-15 (PDF) . Digital Equipment Corporation . Agosto de 1969. pág. 10-3. Archivado (PDF) desde el original el 2022-10-09.
  28. ^ ab Cómo utilizar las computadoras Nova (PDF) . Data General . Abril de 1971. pág. 2-30. Archivado (PDF) desde el original el 2022-10-09.
  29. ^ "Oldcomputers: Altair 8800b". Archivado desde el original el 3 de enero de 2020. Consultado el 10 de diciembre de 2019 .
  30. ^ Holmer, Glenn. Altair 8800 carga BASIC 4K desde una cinta de papel. Archivado desde el original el 30 de julio de 2019. Consultado el 2 de mayo de 2016 .
  31. ^ Reinicio/cargador BM873 (PDF) . Digital Equipment Corporation . Abril de 1974. DEC-11-H873A-BD. Archivado (PDF) desde el original el 2022-10-09.
  32. ^ Manual de mantenimiento y operación del módulo de arranque/terminación M9301 (PDF) . Digital Equipment Corporation . Junio ​​de 1977. EK-M9301-TM-OO1. Archivado (PDF) desde el original el 2022-10-09.
  33. ^ Manual técnico del módulo de arranque/terminación M9312 (PDF) . Digital Equipment Corporation . Marzo de 1981. EK-M9312-TM-OO3. Archivado (PDF) desde el original el 2022-10-09.
  34. ^ Manual de interfaces de microcomputadoras (PDF) . Digital Equipment Corporation . 1981. p. 17. Archivado (PDF) desde el original el 2022-10-09.
  35. ^ "Módulo de memoria de solo lectura 10 MRV11-C". Manual de productos de microcomputadoras (PDF) . Digital Equipment Corporation . 1985. Archivado (PDF) desde el original el 24 de octubre de 2022 . Consultado el 12 de junio de 2022 .
  36. ^ "11 MRVll·D Memoria de solo lectura programable universal". Manual de productos de microcomputadoras (PDF) . Digital Equipment Corporation . 1985. Archivado (PDF) desde el original el 24 de octubre de 2022 . Consultado el 12 de junio de 2022 .
  37. ^ Manual del usuario del sistema PDP-11/34 (PDF) . Digital Equipment Corporation . Julio de 1977. págs. 1–5, 2-1–2-12. EK-11034-UG-001. Archivado (PDF) desde el original el 2022-10-09.
  38. ^ Manual de instalación y funcionamiento de la PDP-11/60 (PDF) . Digital Equipment Corporation . Febrero de 1979. págs. 1–10, 2-29–2-34, 3-1–3-6. EK-11060-OP-003. Archivado (PDF) desde el original el 2022-10-09.
  39. ^ Manual técnico del sistema PDP-11/24 (PDF) . Digital Equipment Corporation . Junio ​​de 1981. pág. 1-6. EK-11024-TM-001. Archivado (PDF) desde el original el 2022-10-09.
  40. ^ Ciaramella, Alberto . Dispositivo para cargar automáticamente la memoria central de procesadores electrónicos. Patente de EE.UU. n.º 4.117.974. 1978-10-03. (presentada en 1975)
  41. ^ Alberto Ciaramella racconta il brevetto del boostrap dei computer concepito en CSELT [ Alberto Ciaramella analiza la patente para computadoras de arranque concebidas en CSELT ] (en italiano). Archivado desde el original el 13 de noviembre de 2021.
  42. ^ Manual técnico del sistema PDP-11/44 (PDF) . Digital Equipment Corporation . Febrero de 1979. pág. 6-57. EK-KD11Z-TM-001. Archivado (PDF) desde el original el 2022-10-09.
  43. ^ Guía del usuario del hardware del VAX-11/780 (PDF) . Digital Equipment Corporation . Febrero de 1979. 2.3 BOOTSTRAPPING y 3.6.1 Comando de arranque (B). EK-11780-UG-001. Archivado (PDF) desde el original el 2022-10-09.
  44. ^ Descripción técnica de la unidad central de procesamiento VAX-11/730 (PDF) . Digital Equipment Corporation . Mayo de 1982. pág. 1-9. EK-KA730-TD-001. Archivado (PDF) desde el original el 2022-10-09.
  45. ^ Guía de instalación del software VAX-11/750 (PDF) . Digital Equipment Corporation . Diciembre de 1982. págs. 1-2–1-4, B-1–B-8, C-1–C-2. AA-K410C-TE. Archivado (PDF) desde el original el 2022-10-09.
  46. ^ Osborne, Adam ; Kane, Gerry (1981). Manual del microprocesador de 16 bits de Osborne (PDF) . OSBORNE/McGraw-Hill. págs. 5–27. ISBN 0-931988-43-8Archivado (PDF) del original el 9 de octubre de 2022. Consultado el 23 de agosto de 2019 .
  47. ^ 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) . Archivado (PDF) desde el original el 2022-10-09.
  48. ^ Osborne, Adam ; Kane, Gerry (1981). Manual de microprocesadores de 4 y 8 bits de Osborne . Osborne/McGraw-Hill. págs. 10-20. ISBN 0-931988-42-X.
  49. ^ Anuncio de Apple, Interface Age, octubre de 1976
  50. ^ "Introducción al flujo de arranque de RISC-V" (PDF) . Consultado el 4 de septiembre de 2024 .
  51. ^ abcde Paul, Matthias R. (1997-10-02) [1997-09-29]. "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 2003-10-04 . Consultado el 2009-03-29 .[1]
  52. ^ Sakamoto, Masahiko (13 de mayo de 2010). "¿Por qué la BIOS carga el MBR en 7C00h en x86?". Glamenv-Septzen.net . Archivado desde el original el 24 de agosto de 2017. Consultado el 22 de agosto de 2012 .
  53. ^ abc Compaq Computer Corporation; Phoenix Technologies Ltd; Intel Corporation (11 de enero de 1996). «BIOS Boot Specification 1.01» (PDF) . Archivado (PDF) desde el original el 9 de octubre de 2022. Consultado el 21 de diciembre de 2017 .
  54. ^ Equipo de cargadores de arranque de Red Hat. «Cargador de compatibilidad UEFI». GitHub . Consultado el 28 de octubre de 2023 .
  55. ^ "Capítulo 6: Solución de problemas de arranque y de disco". Kit de recursos de Windows NT Server . Microsoft. Archivado desde el original el 15 de mayo de 2007.
  56. ^ "Tint". coreboot. Archivado desde el original el 28 de diciembre de 2010. Consultado el 20 de noviembre de 2010 .
  57. ^ "Lista de marcas de PC con sus correspondientes teclas de acceso rápido". www.disk-image.com . Archivado desde el original el 11 de noviembre de 2020 . Consultado el 26 de septiembre de 2020 .
  58. ^ "Cómo ingresar al BIOS en cualquier PC: Teclas de acceso por fabricante | Tom's Hardware" www.tomshardware.com . Archivado desde el original el 2023-02-20 . Consultado el 2020-09-26 .
  59. ^ Brown, Eric (2008-10-02). "MontaVista Linux impulsa la función de arranque rápido de Dell". linuxdevices.com . Consultado el 20 de noviembre de 2010 .
  60. ^ Larabel, Michael (14 de junio de 2008). "¿SplashTop Linux en portátiles HP y Dell?". Phoronix . Archivado desde el original el 5 de octubre de 2016. Consultado el 20 de noviembre de 2010 .
  61. ^ "Voodoo Envy's Instant-On IOS (con tecnología de Splashtop)". YouTube. 16 de julio de 2008. Archivado desde el original el 13 de noviembre de 2021. Consultado el 20 de noviembre de 2010 .
  62. ^ "iAPX 286 Programmer's Reference Manual" (PDF) . Intel . 1983. Sección 5.3 INICIALIZACIÓN DEL SISTEMA, pág. 5-7. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2019-08-23 . 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.
  63. ^ "80386 Programmer's Reference Manual" (PDF) . Intel. 1986. Sección 10.2.3 Primeras instrucciones, pág. 10-3. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2013-11-03 . Después de RESET, las líneas de dirección A31–20 se activan automáticamente para la obtención de 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.
  64. ^ "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ág. 2611. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2012-08-23 . La primera instrucción que se obtiene y ejecuta después de un reinicio de hardware se encuentra en la dirección física FFFFFFF0h. Esta dirección está 16 bytes por debajo de la dirección física superior del procesador. La EPROM que contiene el código de inicialización del software debe estar ubicada en esta dirección.
  65. ^ Zbikowski, Mark ; Allen, Paul ; Ballmer, Steve ; Borman, Reuben; Borman, Rob; Butler, John; Carroll, Chuck; Chamberlain, Mark; Chell, David; Colee, Mike; Courtney, Mike; Dryfoos, Mike; Duncan, Rachel; Eckhardt, Kurt; Evans, Eric; Farmer, Rick; Gates, Bill ; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W.; Kermaani, Kaamel; King, Adrian; Koch, Reed; Landowski, James; Larson, Chris; Lennon, Thomas; Lipkie, Dan; McDonald, Marc ; McKinney, Bruce; Martin, 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; Short, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). "Asesores técnicos". La enciclopedia 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 (edición completamente reelaborada). Redmond, Washington, EE. UU.: 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 reelaboración de la primera edición retirada de 1986 por un equipo diferente de autores: "The MS-DOS Encyclopedia (1988)". PCjs Machines . Archivado desde el original el 2018-10-14.)
  66. ^ abc Chappell, Geoff (enero de 1994). "Capítulo 2: La huella del sistema". En Schulman, Andrew; Pedersen, Amorette (eds.). DOS Internals . The Andrew Schulman Programming Series (1.ª impresión, 1.ª ed.). Addison Wesley Publishing Company . ISBN 978-0-201-60835-9.(xxvi+738+iv páginas, disquete de 3,5" [2][3]) Erratas: [4][5][6]
  67. ^ Rosch, Winn L. (12 de febrero de 1991). "DR DOS 5.0 - ¿El mejor sistema operativo?". PC Magazine . Vol. 10, no. 3. págs. 241–246, 257, 264, 266. Archivado desde el original el 25 de julio de 2019. Consultado el 26 de julio de 2019. […] SYS ha sido mejorado en DR DOS 5.0 , por lo que no tiene que preocuparse por dejar el primer clúster libre en un disco que desea convertir en arrancable. Los archivos del sistema DR DOS se pueden ubicar en cualquier parte del disco, por lo que cualquier disco con suficiente espacio libre puede configurarse para arrancar su sistema. […](NB. La fuente atribuye esto a la utilidad SYS mientras que, de hecho, se trata de una característica del cargador de arranque avanzado en el sector de arranque. SYS simplemente coloca este sector en el disco).
  68. ^ 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 de DR-DOS […] busca el archivo IBMBIO.COM ( DRBIOS.SYS ) y luego carga el archivo *completo* en la memoria antes de pasarle el control. […]
  69. ^ Paul, Matthias R. (2002-02-20). "No se puede copiar". opendos@delorie . Archivado desde el original el 2017-10-06 . Consultado el 2017-10-06 . […] El sector de arranque de 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 núcleo 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 le importa al sector de arranque de DR-DOS. Por lo tanto, puede simplemente copiar los archivos del núcleo al disco (incluso con un simple COPY ), y tan pronto como el sector de arranque sea un sector de DR-DOS, los encontrará y los cargará. Por supuesto, es difícil poner todo esto en sólo 512 bytes, el tamaño de un solo sector, pero esto es una mejora importante en cuanto a conveniencia si tiene que configurar un sistema DR-DOS, y también es la clave para que funcione la utilidad DR-DOS multi-OS LOADER . Los archivos del núcleo MS-DOS deben residir en ubicaciones específicas, pero los archivos DR-DOS pueden estar en cualquier lugar, por lo que no tiene que intercambiarlos físicamente cada vez que inicia el otro sistema operativo. Además, permite actualizar un sistema DR-DOS simplemente copiando los archivos del núcleo sobre los antiguos, sin necesidad de SYS , sin procedimientos de configuración difíciles como los requeridos para MS-DOS/ PC DOS . Incluso puede tener múltiples archivos del núcleo 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 . […]
  70. ^ 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 equivocado y no hay necesidad de FORMAT /S o SYS . Después, 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 pueden ubicarse en cualquier lugar y también pueden fragmentarse. […]
  71. ^ "Intel Platform Innovation Framework for EFI". Intel. Archivado desde el original el 21 de agosto de 2011. Consultado el 7 de enero de 2008 .
  72. ^ "OpenBIOS - coreboot". coreboot.org. Archivado desde el original el 18 de marzo de 2013. Consultado el 20 de marzo de 2013 .
  73. ^ "UEFI - Wiki OSDev". wiki.osdev.org . Archivado desde el original el 2020-11-12 . Consultado el 2020-09-26 .
  74. ^ "Descripción general: las cuatro etapas del cargador de arranque". ti.com . Texas Instruments . 2013-12-05. Archivado desde el original el 2014-12-23 . Consultado el 2015-01-25 .
  75. ^ "El proceso de arranque de la documentación de rxos ​​1.0rc1" . Consultado el 25 de octubre de 2015 .
  76. ^ "mjg59 | Boot Guard y PSB tienen valores predeterminados hostiles para el usuario". mjg59.dreamwidth.org . Consultado el 30 de noviembre de 2022 .
  77. ^ "Microsoft bloquea los cargadores de arranque UEFI, lo que permite omitir el arranque seguro de Windows". BleepingComputer . Consultado el 11 de diciembre de 2022 .
  78. ^ por JJM Trienekens; RJ Kusters. (2004) (conferencia del 19 al 21 de septiembre de 2003) Taller: detección de defectos en el desarrollo de software distribuido Undécimo Taller Internacional Anual sobre Tecnología de Software y Práctica de Ingeniería publicado IEEE Xplore: 27 de diciembre de 2004
  79. ^ de Tim Warren, The Verge (23 de julio de 2024) Dentro de los 78 minutos que dejaron fuera de servicio millones de máquinas Windows
  80. ^ Joe Tidy, BBC News (20 de julio de 2024) La interrupción de TI de CrowdStrike afectó a 8,5 millones de dispositivos Windows, dice Microsoft
  81. ^ Actualización de seguridad ocular: el cambio radical, 4:09 a. m. UTC del 19 de julio de 2024, revertido a las 05:27 a. m. UTC (19 de julio de 2024) Error BSOD en la última actualización de CrowdStrike Actualización de Reddit, 20 000 respuestas
  82. ^ Ruley, John D.; David Methvin; Tom Henderson; Martin Heller (1997). Redes de Windows NT 4.0: estaciones de trabajo y servidores. Wiley. pág. 257. ISBN 9780471175025– a través de Google Books.
  83. ^ Shultz, Gregory (febrero de 2001). "Deshabilitar el reinicio automático evita un posible bucle de reinicio". Windows Professional . 6 (2). Element K Journals: 9. ProQuest  191083238 – vía ProQuest.
  84. ^ "Las nuevas actualizaciones de Windows Server provocan bucles de arranque en el controlador de dominio y dañan Hyper-V". BleepingComputer . Consultado el 17 de mayo de 2022 .
  85. ^ Paul Wagenseil (21 de enero de 2021). "La actualización de Windows 10 hace que las PC entren en un ciclo de arranque interminable: qué hacer". Guía de Tom . Consultado el 20 de mayo de 2022 .
  86. ^ Hollister, Sean (19 de octubre de 2021). "Google lo ha intentado todo, pero no ha conseguido crear el mejor teléfono". The Verge . Consultado el 17 de mayo de 2022 .
  87. ^ "'No fue intencional', dice el creador del 'maldito' fondo de pantalla de Android". The Week . Consultado el 19 de mayo de 2022 .
  88. ^ Hager, Ryne (1 de junio de 2020). "Google cree haber resuelto el misterio del fondo de pantalla maldito que provoca un bucle de arranque". Android Police . Consultado el 19 de mayo de 2022 .
  89. ^ Peckham, James (29 de marzo de 2022). "Google Nest Hub tiene una nueva interfaz de usuario tan novedosa que podría hacer que tu pantalla inteligente se reinicie". Android Police . Consultado el 19 de mayo de 2022 .
  90. ^ "Declaración sobre la actualización de contenido de Falcon para hosts de Windows". crowdstrike.com . Consultado el 19 de julio de 2024 .
  91. ^ Baran, Guru (19 de julio de 2024). "La actualización de CrowdStrike lleva a las máquinas Windows a un bucle de BSOD". Noticias de seguridad cibernética . Consultado el 19 de julio de 2024 .
  92. ^ "Actualizaciones del problema de pantalla azul de CrowdStrike Falcon" www.eye.security . Consultado el 19 de julio de 2024 .
  93. ^ "Una actualización de seguridad fallida daña Windows en todo el mundo, lo que provoca BSOD y fallas". Neowin . 2024-07-19 . Consultado el 2024-07-19 .