Un cargador de arranque es un software que se encarga de arrancar una computadora.
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 la memoria de solo lectura (ROM, y luego EEPROM , NOR flash ) junto con algunos datos necesarios, para inicializar la RAM (especialmente en sistemas x86), para acceder al dispositivo no volátil (generalmente dispositivo de bloque , ej. flash NAND) o dispositivos 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 .
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 apuntar la CPU a las instrucciones y 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 o una PC IBM compatible ) en una dirección predefinida (algunas CPU, incluida la serie Intel x86, son compatibles ). diseñado para ejecutar este software después del reinicio 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 punto de entrada fijo como el inicio del sector.
Cargador de arranque de primera etapa
Los cargadores de botas pueden enfrentarse a limitaciones peculiares, especialmente en tamaño; por ejemplo, en la PC IBM anterior y en las compatibles, un sector de arranque normalmente debería funcionar en solo 32 KB [1] [2] (luego relajado a 64 KB [3] ) de memoria del sistema y solo usar instrucciones compatibles con el 8088 original / 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 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 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 especiales de arranque múltiple también deben ser compatibles en algunos entornos. En los registros de inicio 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 el EBPB de FAT32 introducido con DOS 7.1 requiere incluso 87 bytes, dejando solo 423 bytes para el cargador de inicio 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 almacenarse como sectores consecutivos, [4] [5] condiciones atendidas de por el comando y un poco relajado en versiones posteriores de DOS. [5] [nb 1] 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. [5] Cuando Microsoft agregó soporte para LBA y 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 2] 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. [6] [1] [7] [8] [9] [nb 3] [nb 2]SYS
BIOS (en los sistemas x86 modernos) y UEFI no solo cargan el sistema operativo desde un dispositivo no volátil, sino que también inicializan el hardware del sistema para el sistema operativo.
Ejemplos de cargadores de arranque de primera etapa incluyen BIOS , coreboot , Libreboot y Das U-Boot .
Cargador de arranque de segunda etapa
Los cargadores de arranque de segunda etapa, como GNU GRUB , rEFInd , BOOTMGR , Syslinux , NTLDR o iBoot , 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. [10]
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 ). [11] 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
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.
Ver también
- Comparación de cargadores de arranque
Notas
- ^ 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.
- ^ 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 El soporte de LOADER los sectores 7.07 tuvieron que recurrir a código de modificación automática , programación a nivel de código de operación , utilización controlada de efectos secundarios , 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 compatibilidad con versiones anteriores y cruzadas con otros sistemas operativos en escenarios de carga en cadena y de arranque múltiple .
- ^ 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.07 VBR 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 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.
Referencias
- ^ a b 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]
- ^ 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 .
- ^ 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 .
- ^ 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] )
- ^ 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]
- ^ 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). - ^ 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. […]
- ^ 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 simplemente copiar los archivos del kernel al disco (incluso con una simple COPIA ), 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 . […]
- ^ 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 en realidad "montarán" el sistema de archivos para buscar y cargar los archivos del sistema en el directorio raíz en lugar de esperando que se coloquen en un lugar determinado. Físicamente, los archivos del sistema se pueden ubicar en cualquier lugar y también se pueden fragmentar. […]
- ^ "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.
- ^ "Tinte" . coreboot . Consultado el 20 de noviembre de 2010 .
enlaces externos
- Cargador de arranque - OSDev Wiki