En informática , BIOS [ b ] o Sistema Básico de Entrada/Salida [ c ] es un tipo de firmware que se utiliza para proporcionar servicios de tiempo de ejecución para sistemas operativos y programas , y para realizar la inicialización del hardware durante el proceso de arranque (arranque al encender). [ 1 ] En un ordenador que utiliza firmware BIOS, el firmware viene preinstalado en la placa base del ordenador .
El nombre proviene del Sistema Básico de Entrada / Salida utilizado en el sistema operativo CP/M en 1975. [ 2 ] [ 3 ] El firmware BIOS era originalmente propietario del IBM PC ; fue objeto de ingeniería inversa por parte de algunas empresas, como Compaq , Phoenix Technologies , AMI y otras, que buscaban crear sistemas compatibles. La interfaz de ese sistema original sirve como estándar de facto .
En los ordenadores antiguos, la BIOS inicializa y prueba los componentes de hardware del sistema ( autodiagnóstico al encender o POST, por sus siglas en inglés) y carga un gestor de arranque desde un dispositivo de almacenamiento masivo que, a su vez, inicializa un núcleo . En la época de DOS , la BIOS proporcionaba llamadas de interrupción para el teclado, la pantalla, el almacenamiento y otros dispositivos de entrada/salida (E/S), lo que estandarizaba la interfaz entre los programas de aplicación y el sistema operativo. Los sistemas operativos más recientes no utilizan las llamadas de interrupción de la BIOS después del arranque. [ 4 ]
La mayoría de las implementaciones de BIOS están diseñadas específicamente para funcionar con un modelo de computadora o placa base en particular , interactuando con diversos dispositivos, especialmente el chipset del sistema . Originalmente, el firmware de la BIOS se almacenaba en un chip ROM en la placa base de la PC. En sistemas informáticos más recientes, el contenido de la BIOS se almacena en memoria flash , lo que permite reescribirlo sin extraer el chip de la placa base. Esto facilita las actualizaciones del firmware de la BIOS por parte del usuario final, permitiendo agregar nuevas funciones o corregir errores, pero también crea la posibilidad de que la computadora se infecte con rootkits de BIOS . Además, una actualización de BIOS fallida podría dañar permanentemente la placa base.
La Interfaz de Firmware Extensible Unificada (UEFI) es la sucesora de la BIOS de PC tradicional, con el objetivo de abordar sus limitaciones técnicas. [ 5 ] El firmware UEFI puede incluir compatibilidad con la BIOS tradicional para mantener la compatibilidad con sistemas operativos y tarjetas de opción que no admiten el funcionamiento nativo de UEFI. [ 6 ] [ 7 ] [ 8 ] Intel eliminó gradualmente el soporte para el arranque desde la interfaz de la BIOS entre 2020 y 2024, dependiendo de la plataforma. [ 9 ] La última versión de Microsoft Windows que admite oficialmente la ejecución en PC que utilizan firmware de BIOS tradicional es Windows 10 , ya que Windows 11 requiere un sistema compatible con UEFI (excepto para las ediciones IoT Enterprise de Windows 11 desde la versión 24H2 [ 10 ] ).
Historia
/* CP / MBASICI / OSYSTEM (BIOS) DERECHOS DE AUTOR GARY A. KILDALL JUNIO DE 1975 */ […] /* SISTEMA BÁSICO DE OPERACIÓN DE DISCOS (BDOS) DERECHOS DE AUTOR GARY A. KILDALL JUNIO DE 1975 */
— Un extracto del encabezado del archivo BDOS.PLM en el código fuente PL/M de CP/M 1.1 o 1.2 para Lawrence Livermore Laboratories (LLL) [ 2 ]
El término BIOS (Sistema Básico de Entrada/Salida) fue creado por Gary Kildall [ 11 ] [ 12 ] y apareció por primera vez en el sistema operativo CP/M en 1975, [ 2 ] [ 3 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] describiendo la parte específica de la máquina de CP/M que se carga durante el arranque y que interactúa directamente con el hardware . [ 3 ] (Una máquina CP/M normalmente solo tiene un cargador de arranque simple en su ROM).
Las versiones de MS-DOS , PC DOS o DR-DOS contienen un archivo con nombres como " IO.SYS ", " IBMBIO.COM ", "IBMBIO.SYS" o "DRBIOS.SYS". Este archivo se conoce como "DOS BIOS" (también llamado "Sistema de E/S de DOS") y contiene la parte del sistema operativo específica del hardware de bajo nivel. Junto con el "System BIOS" subyacente, específico del hardware pero independiente del sistema operativo, que reside en la ROM , representa el equivalente al " CP/M BIOS ".
La BIOS, originalmente propiedad de la IBM PC, ha sido objeto de ingeniería inversa por parte de algunas empresas, como Compaq , Phoenix Technologies , AMI y otras, que buscan crear sistemas compatibles.
Con la introducción de las máquinas PS/2, IBM dividió el BIOS del sistema en partes de modo real y de modo protegido. La parte de modo real estaba destinada a proporcionar compatibilidad con versiones anteriores de sistemas operativos existentes como DOS, y por lo tanto se denominó "CBIOS" (por "Compatibility BIOS"), mientras que el "ABIOS" (por "Advanced BIOS") proporcionaba nuevas interfaces específicamente adecuadas para sistemas operativos multitarea como OS/2 . [ 16 ]
Interfaz de usuario
La BIOS de los IBM PC y XT originales no tenía interfaz de usuario interactiva. Se mostraban códigos o mensajes de error en la pantalla, o se generaban series de sonidos codificados para señalar errores cuando la autoprueba de encendido (POST) no había llegado al punto de inicializar correctamente un adaptador de pantalla de vídeo. Las opciones en los IBM PC y XT se configuraban mediante interruptores y puentes en la placa base y en las tarjetas de expansión . A partir de mediados de la década de 1990, se hizo habitual que la ROM de la BIOS incluyera una "utilidad de configuración de la BIOS" (BCU [ 17 ] ) o "utilidad de configuración de la BIOS", a la que se accedía al encender el sistema mediante una secuencia de teclas específica. Este programa permitía al usuario configurar las opciones de configuración del sistema, del tipo que antes se configuraba mediante interruptores DIP , a través de un sistema de menús interactivo controlado por el teclado. Durante ese período, los PC compatibles con IBM —incluido elIBM AT— almacenabanla configuración en una memoria RAM con respaldo de batería y utilizaban un programa de configuración de arranque en disquete, no en la ROM, para establecer las opciones de configuración contenidas en dicha memoria. El disquete se suministraba con el ordenador y, en caso de pérdida, no se podía modificar la configuración del sistema. Lo mismo ocurría, en general, con los ordenadores con bus EISA , para los que el programa de configuración se denominaba Utilidad de Configuración EISA (ECU).
Un ordenador moderno compatible con Wintel ofrece una rutina de configuración prácticamente idéntica a las utilidades de configuración del BIOS residentes en la ROM de finales de la década de 1990; el usuario puede configurar las opciones de hardware mediante el teclado y la pantalla. Es posible que el ordenador Wintel moderno almacene la configuración del BIOS en la memoria flash ROM, quizás la misma que contiene el propio BIOS.
Extensiones (ROMs opcionales)
Las tarjetas periféricas, como los adaptadores de bus de host para discos duros y las tarjetas de video, tienen su propio firmware, y el código de la ROM de opción de extensión de BIOS puede formar parte del firmware de la tarjeta de expansión; este código proporciona capacidades adicionales en la BIOS. El código en las ROM de opción se ejecuta antes de que la BIOS arranque el sistema operativo desde el almacenamiento masivo . Estas ROM suelen probar e inicializar el hardware, agregar nuevos servicios de BIOS o reemplazar los servicios de BIOS existentes con sus propios servicios. Por ejemplo, un controlador SCSI generalmente tiene una ROM de extensión de BIOS que agrega soporte para discos duros conectados a través de ese controlador. Una ROM de extensión podría, en principio, contener el sistema operativo o implementar un proceso de arranque completamente diferente, como el arranque de red . El funcionamiento de un sistema informático compatible con IBM puede cambiar por completo al extraer o insertar una tarjeta adaptadora (o un chip ROM) que contenga una ROM de extensión de BIOS.
La BIOS de la placa base normalmente contiene código para inicializar y arrancar la pantalla integrada y el almacenamiento integrado. El proceso de inicialización puede implicar la ejecución de código relacionado con el dispositivo que se está inicializando, para localizar el dispositivo, verificar el tipo de dispositivo, luego establecer registros base, establecer punteros , establecer tablas de vectores de interrupción, [ 18 ] seleccionar modos de paginación que son formas de organizar los registros disponibles en los dispositivos, establecer valores predeterminados para acceder a rutinas de software relacionadas con interrupciones , [ 19 ] y establecer la configuración del dispositivo usando valores predeterminados. [ 20 ] Además, las tarjetas adaptadoras enchufables como SCSI , RAID , tarjetas de interfaz de red y tarjetas de video a menudo incluyen su propia BIOS (por ejemplo, BIOS de video ), complementando o reemplazando el código de la BIOS del sistema para el componente dado. Incluso los dispositivos integrados en la placa base pueden comportarse de esta manera; sus ROM de opciones pueden ser parte de la BIOS de la placa base.
Una tarjeta de expansión requiere una ROM de opción si no es compatible con la BIOS de la placa base y necesita inicializarse o hacerse accesible mediante los servicios de la BIOS antes de que se pueda cargar el sistema operativo (normalmente, esto significa que es necesaria durante el proceso de arranque). Una ventaja adicional de la ROM en algunos sistemas de PC antiguos (en particular, el IBM PCjr) era que la ROM era más rápida que la RAM del sistema principal. (En los sistemas modernos, ocurre prácticamente lo contrario, y el código de la ROM de la BIOS suele copiarse ("enmascararse") en la RAM para que se ejecute más rápido).
Ubicación física

Las ROM de opción normalmente residen en tarjetas adaptadoras. Sin embargo, el PC original, y quizás también el PC XT, tienen un zócalo de ROM libre en la placa base (la "placa del sistema" en la terminología de IBM) en el que se puede insertar una ROM de opción, y las cuatro ROM que contienen el intérprete BASIC también se pueden extraer y reemplazar por ROM personalizadas que pueden ser ROM de opción. El IBM PCjr es único entre los PC por tener dos ranuras para cartuchos ROM en el frontal. Los cartuchos en estas ranuras se asignan a la misma región del área de memoria superior utilizada para las ROM de opción, y los cartuchos pueden contener módulos ROM de opción que la BIOS reconocería. Los cartuchos también pueden contener otros tipos de módulos ROM, como programas BASIC, que se manejan de manera diferente. Un cartucho de PCjr puede contener varios módulos ROM de diferentes tipos, posiblemente almacenados juntos en un solo chip ROM.
Operación
Inicio del sistema
Los 8086 y 8088 comienzan en la dirección física FFFF0h. [ 21 ] El 80286 comienza en la dirección física FFFFF0h. [ 22 ] Los procesadores x86 80386 y posteriores comienzan en la dirección física FFFFFFF0h. [ 23 ] [ 24 ] [ 25 ] Cuando se inicializa el sistema, la primera instrucción de la BIOS aparece en esa dirección.
Si el sistema se acaba de encender o se pulsó el botón de reinicio (" arranque en frío "), se ejecuta la autoprueba de encendido completa (POST). Si se pulsó Ctrl+Alt+Supr (" arranque en caliente "), un valor de indicador especial almacenado en la memoria no volátil de la BIOS (" CMOS "), que la BIOS comprueba, permite omitir la larga autoprueba de encendido y la detección de memoria.
El POST identifica, prueba e inicializa los dispositivos del sistema, como la CPU , el chipset , la RAM , la placa base , la tarjeta de vídeo , el teclado , el ratón , el disco duro , la unidad de disco óptico y otros componentes de hardware , incluidos los periféricos integrados .
Los primeros PC de IBM tenían una rutina en el POST que descargaba un programa en la RAM a través del puerto del teclado y lo ejecutaba. [ 26 ] [ 27 ] Esta función estaba destinada a fines de prueba o diagnóstico en fábrica.
Después de que la BIOS de la placa base completa su POST, la mayoría de las versiones de BIOS buscan módulos ROM de opción, también llamados ROM de extensión de BIOS, y los ejecutan. La BIOS de la placa base busca ROM de extensión en una porción del " área de memoria superior " (la parte del espacio de direcciones de modo real x86 en la dirección 0xA0000 y superiores) y ejecuta cada ROM encontrada, en orden. Para descubrir las ROM de opción mapeadas en memoria, una implementación de BIOS escanea el espacio de direcciones de modo real desde 0x0C0000hasta 0x0F0000en límites de 2 KB (2048 bytes), buscando una firma de ROM de dos bytes : 0x55 seguido de 0xAA. En una ROM de expansión válida, esta firma va seguida de un solo byte que indica el número de bloques de 512 bytes que la ROM de expansión ocupa en la memoria real, y el siguiente byte es el punto de entrada de la ROM de opción (también conocido como su "desplazamiento de entrada"). Si la ROM tiene una suma de verificación válida, la BIOS transfiere el control a la dirección de entrada, que en una ROM de extensión de BIOS normal debería ser el comienzo de la rutina de inicialización de la extensión.
En este punto, el código de la ROM de extensión toma el control, generalmente probando e inicializando el hardware que controla y registrando vectores de interrupción para su uso por aplicaciones posteriores al arranque. Puede utilizar los servicios del BIOS (incluidos los proporcionados por las ROM de opciones previamente inicializadas) para ofrecer una interfaz de configuración de usuario, mostrar información de diagnóstico o realizar cualquier otra tarea necesaria.
Una ROM de opción normalmente debería regresar a la BIOS tras completar su proceso de inicialización. Una vez que una ROM de opción regresa (si es que lo hace), la BIOS continúa buscando más ROMs de opción, llamándolas a medida que las encuentra, hasta que se haya explorado toda el área de ROMs de opción en el espacio de memoria. Es posible que una ROM de opción no regrese a la BIOS, interrumpiendo por completo la secuencia de arranque de la BIOS.
Proceso de arranque

Una vez finalizado el POST y, en una BIOS compatible con ROM de opciones, tras completarse el escaneo de las ROM de opciones y detectarse todos los módulos ROM con sumas de comprobación válidas , la BIOS llama a la interrupción 19h para iniciar el proceso de arranque. Tras el arranque, los programas cargados también pueden llamar a la interrupción 19h para reiniciar el sistema, pero deben tener cuidado de deshabilitar las interrupciones y otros procesos de hardware asíncronos que puedan interferir con el reinicio de la BIOS; de lo contrario, el sistema podría bloquearse o fallar durante el reinicio.
Cuando se llama a la interrupción 19h, la BIOS intenta localizar el software del cargador de arranque en un "dispositivo de arranque", como un disco duro , un disquete , un CD o un DVD . Carga y ejecuta el primer software de arranque que encuentra, lo que le da el control del PC. [ 28 ]
La BIOS utiliza los dispositivos de arranque configurados en la memoria CMOS ( memoria no volátil de la BIOS ) o, en los primeros PC, en los interruptores DIP . La BIOS comprueba cada dispositivo para ver si es arrancable intentando cargar el primer sector ( sector de arranque ). Si no se puede leer el sector, la BIOS pasa al siguiente dispositivo. Si el sector se lee correctamente, algunas BIOS también comprueban la firma del sector de arranque 0x55 0xAA en los dos últimos bytes del sector (que tiene una longitud de 512 bytes), antes de aceptar un sector de arranque y considerar que el dispositivo es arrancable. [ d ]
Cuando se encuentra un dispositivo de arranque, la BIOS transfiere el control al sector cargado. La BIOS no interpreta el contenido del sector de arranque, salvo para comprobar, posiblemente, la firma del sector de arranque en los dos últimos bytes. La interpretación de estructuras de datos como las tablas de partición y los bloques de parámetros de la BIOS la realiza el programa de arranque en el propio sector de arranque o bien otros programas cargados durante el proceso de arranque.
Un dispositivo que no sea un disco, como un adaptador de red, intenta arrancar mediante un procedimiento definido por su ROM de opciones o por la ROM BIOS equivalente integrada en la placa base. Por lo tanto, las ROM de opciones también pueden influir o reemplazar el proceso de arranque definido por la ROM BIOS de la placa base.
Con el estándar de arranque de medios ópticos El Torito , la unidad óptica emula un disquete de alta densidad de 3,5" para la BIOS con fines de arranque. Leer el "primer sector" de un CD-ROM o DVD-ROM no es una operación tan sencilla como en un disquete o un disco duro. Además, la complejidad del medio dificulta la escritura de un programa de arranque útil en un solo sector. El disquete virtual de arranque puede contener software que proporciona acceso al medio óptico en su formato nativo.
Si una ROM de expansión desea modificar el modo de arranque del sistema (por ejemplo, desde un dispositivo de red o un adaptador SCSI) de forma cooperativa, puede utilizar la API de la Especificación de Arranque de la BIOS (BBS) para registrar su capacidad de hacerlo. Una vez que las ROM de expansión se han registrado mediante las API de BBS, el usuario puede seleccionar entre las opciones de arranque disponibles desde la interfaz de usuario de la BIOS. Por este motivo, la mayoría de las implementaciones de BIOS de PC compatibles con BBS no permiten al usuario acceder a la interfaz de usuario de la BIOS hasta que las ROM de expansión hayan finalizado su ejecución y se hayan registrado en la API de BBS.
Además, si una ROM de expansión desea cambiar unilateralmente la forma en que el sistema arranca, puede simplemente interceptar la interrupción 19h u otras interrupciones que normalmente se llaman desde la interrupción 19h, como la interrupción 13h (el servicio de disco de la BIOS), para interceptar el proceso de arranque de la BIOS. Luego, puede reemplazar el proceso de arranque de la BIOS con uno propio, o simplemente modificar la secuencia de arranque insertando sus propias acciones de arranque, impidiendo que la BIOS detecte ciertos dispositivos como arrancables, o ambas cosas. Antes de que se promulgara la Especificación de Arranque de la BIOS, esta era la única forma en que las ROM de expansión podían implementar la capacidad de arranque para dispositivos que no eran compatibles con el arranque de la BIOS nativa de la placa base.
Prioridad de arranque
El usuario puede seleccionar la prioridad de arranque implementada por la BIOS. Por ejemplo, la mayoría de los ordenadores tienen un disco duro de arranque, pero a veces hay una unidad de almacenamiento extraíble con mayor prioridad de arranque, por lo que el usuario puede configurar el arranque para que se inicie desde dicha unidad.
En la mayoría de las BIOS modernas, el usuario puede configurar el orden de prioridad de arranque. En las BIOS antiguas, las opciones de prioridad de arranque eran limitadas; en las primeras BIOS, se implementaba un esquema de prioridad fijo, con las unidades de disquete primero, los discos duros en segundo lugar y, por lo general, sin compatibilidad con otros dispositivos de arranque, aunque estas reglas podían modificarse mediante ROMs de opciones instaladas. Además, la BIOS de un PC antiguo normalmente solo arrancaba desde la primera unidad de disquete o el primer disco duro, incluso si había dos unidades instaladas.
Fallo de arranque
En los IBM PC y XT originales, si no se encontraba un disco de arranque, la BIOS intentaba iniciar ROM BASIC mediante la llamada a la interrupción 18h . Dado que pocos programas utilizaban BASIC en la ROM, los fabricantes de PC clonados lo omitieron; entonces, un ordenador que no pudiera arrancar desde un disco mostraría "No ROM BASIC" y se detendría (en respuesta a la interrupción 18h).
Los ordenadores más recientes mostraban un mensaje como "No se encontró ningún disco de arranque"; algunos solicitaban la inserción de un disco y la pulsación de una tecla para intentar arrancar de nuevo. Una BIOS moderna puede no mostrar nada o acceder automáticamente a la utilidad de configuración de la BIOS cuando falla el arranque.
Entorno de arranque
El entorno para el programa de arranque es muy simple: la CPU está en modo real y los registros de propósito general y de segmento no están definidos, excepto SS, SP, CS y DL. CS:IP siempre apunta a la dirección física 0x07C00. Los valores que CS e IP realmente tienen no están bien definidos. Algunas BIOS usan un CS:IP de 0x0000:0x7C00mientras que otras pueden usar 0x07C0:0x0000. [ 29 ] Debido a que los programas de arranque siempre se cargan en esta dirección fija, no hay necesidad de que un programa de arranque sea reubicable. DL puede contener el número de unidad, como se usa con la interrupción 13h , del dispositivo de arranque. SS:SP apunta a una pila válida que presumiblemente es lo suficientemente grande como para admitir interrupciones de hardware, pero por lo demás SS y SP no están definidos. (Para que se atiendan las interrupciones, debe haber una pila configurada previamente, y las interrupciones deben estar habilitadas para que la interrupción del temporizador del sistema, que la BIOS siempre utiliza al menos para mantener el contador de la hora y que inicializa durante el POST, esté activa y para que funcione el teclado. El teclado funciona incluso si no se llama al servicio de teclado de la BIOS; las pulsaciones de teclas se reciben y se colocan en el búfer de autocompletado de 15 caracteres que mantiene la BIOS). El programa de arranque debe configurar su propia pila, ya que se desconoce el tamaño de la pila configurada por la BIOS y su ubicación también es variable; aunque el programa de arranque puede investigar la pila predeterminada examinando SS:SP, es más fácil y rápido simplemente configurar una nueva pila sin condiciones.
En el momento del arranque, todos los servicios del BIOS están disponibles, y la memoria por debajo de la dirección 0x00400contiene la tabla de vectores de interrupción . El POST del BIOS ha inicializado los temporizadores del sistema, el/los controlador(es) de interrupción, el/los controlador(es) DMA y otro hardware de la placa base/chipset según sea necesario para que todos los servicios del BIOS estén listos. La actualización de la DRAM para toda la DRAM del sistema en memoria convencional y memoria extendida, pero no necesariamente memoria expandida, se ha configurado y está en ejecución. Los vectores de interrupción correspondientes a las interrupciones del BIOS se han configurado para apuntar a los puntos de entrada apropiados en el BIOS, los vectores de interrupción de hardware para los dispositivos inicializados por el BIOS se han configurado para apuntar a las ISR proporcionadas por el BIOS, y algunas otras interrupciones, incluidas las que el BIOS genera para que los programas las intercepten, se han configurado a una ISR ficticia predeterminada que regresa inmediatamente. El BIOS mantiene un bloque reservado de RAM del sistema en direcciones 0x00400–0x004FFcon varios parámetros inicializados durante el POST. Toda la memoria en y por encima de la dirección 0x00500puede ser utilizada por el programa de arranque; incluso puede sobrescribirse a sí mismo. [ 30 ] [ 31 ]
Servicios del sistema operativo
La ROM del BIOS está personalizada para el hardware específico del fabricante, lo que permite que los programas, incluidos los sistemas operativos, proporcionen servicios de bajo nivel (como leer una pulsación de tecla o escribir un sector de datos en un disquete) de forma estandarizada. Por ejemplo, un PC IBM puede tener un adaptador de pantalla monocromático o a color (que utiliza diferentes direcciones de memoria de pantalla y hardware), pero se puede invocar una única llamada al sistema BIOS estándar para mostrar un carácter en una posición específica de la pantalla en modo texto o en modo gráfico .
La BIOS proporciona una pequeña biblioteca de funciones básicas de entrada/salida para operar periféricos (como el teclado, funciones rudimentarias de visualización de texto y gráficos, etc.). Al usar MS-DOS, se podía acceder a los servicios de la BIOS mediante un programa de aplicación (o desde MS-DOS) ejecutando una instrucción de interrupción 13h para acceder a las funciones del disco, o ejecutando alguna de las otras llamadas de interrupción de la BIOS documentadas para acceder a la pantalla de vídeo , el teclado , la unidad de casete y otras funciones del dispositivo.
Los sistemas operativos y el software ejecutivo diseñados para reemplazar esta funcionalidad básica del firmware proporcionan interfaces de software de reemplazo para el software de aplicación. Las aplicaciones también pueden proporcionar estos servicios a sí mismas. Esto comenzó incluso en la década de 1980 con MS-DOS , cuando los programadores observaron que el uso de los servicios de video de la BIOS para la visualización de gráficos era muy lento. Para aumentar la velocidad de salida de pantalla, muchos programas omitieron la BIOS y programaron directamente el hardware de visualización de video. Otros programadores de gráficos, particularmente, aunque no exclusivamente, en la demoscene , observaron que existían capacidades técnicas de los adaptadores de pantalla de PC que no eran compatibles con la BIOS de IBM y que no podían aprovecharse sin eludirla. Dado que la BIOS compatible con AT se ejecutaba en modo real de Intel , los sistemas operativos que se ejecutaban en modo protegido en procesadores 286 y posteriores requerían controladores de dispositivos de hardware compatibles con el funcionamiento en modo protegido para reemplazar los servicios de la BIOS.
Los sistemas operativos modernos , como Windows y Linux , utilizan las llamadas de interrupción de la BIOS únicamente durante el proceso de arranque. Antes de que se muestre la primera pantalla gráfica del sistema operativo, la entrada y la salida se gestionan normalmente a través de la BIOS. Un menú de arranque, como el menú de texto de Windows, que permite a los usuarios elegir un sistema operativo para arrancar, arrancar en modo seguro o utilizar la última configuración válida conocida, se muestra a través de la BIOS y recibe la entrada del teclado a través de la BIOS. [ 4 ]
Muchos ordenadores modernos aún pueden arrancar y ejecutar sistemas operativos antiguos como MS-DOS o DR-DOS, que dependen en gran medida de la BIOS para su consola y E/S de disco, siempre que el sistema tenga una BIOS o un firmware UEFI compatible con CSM.
Actualizaciones del microcódigo del procesador
Los procesadores Intel tienen microcódigo reprogramable desde la microarquitectura P6 . [ 32 ] [ 33 ] [ 34 ] Los procesadores AMD tienen microcódigo reprogramable desde la microarquitectura K7 . La BIOS contiene parches para el microcódigo del procesador que corrigen errores en el microcódigo inicial; el microcódigo se carga en la SRAM del procesador , por lo que la reprogramación no es persistente, y las actualizaciones del microcódigo se cargan cada vez que se enciende el sistema. Sin microcódigo reprogramable, sería necesario un costoso cambio de procesador; [ 35 ] por ejemplo, el error FDIV del Pentium se convirtió en un costoso fiasco para Intel, ya que requirió una retirada del producto porque el microcódigo defectuoso del procesador Pentium original no se podía reprogramar. Los sistemas operativos también pueden actualizar el microcódigo. [ 36 ] [ 37 ]
Identificación
Algunas BIOS contienen una tabla de descripción de licencias de software (SLIC), una firma digital colocada dentro de la BIOS por el fabricante de equipos originales (OEM), por ejemplo Dell . La SLIC se inserta en la tabla de datos ACPI y no contiene código activo. [ 38 ] [ 39 ]
Los fabricantes de computadoras que distribuyen versiones OEM de Microsoft Windows y software de aplicación de Microsoft pueden usar SLIC para autenticar la licencia del disco de instalación de Windows OEM y del disco de recuperación del sistema que contiene el software de Windows. Los sistemas con SLIC pueden preactivarse con una clave de producto OEM y verifican un certificado OEM con formato XML contra SLIC en la BIOS como medio de autoactivación (consulte Preinstalación bloqueada del sistema , SLP). Si un usuario realiza una instalación limpia de Windows, necesitará tener en su poder tanto la clave OEM (ya sea SLP o COA) como el certificado digital para su SLIC para omitir la activación. [ 38 ] Esto puede lograrse si el usuario realiza una restauración utilizando una imagen pre-personalizada proporcionada por el OEM. Los usuarios avanzados pueden copiar los archivos de certificado necesarios de la imagen OEM, decodificar la clave de producto SLP y luego realizar la activación SLP manualmente.
Overclocking
Algunas implementaciones de BIOS permiten el overclocking , una acción en la que la CPU se ajusta a una frecuencia de reloj superior a la especificada por el fabricante para garantizar su rendimiento. Sin embargo, el overclocking puede comprometer seriamente la fiabilidad del sistema en ordenadores con refrigeración insuficiente y, en general, acortar la vida útil de los componentes. Si se realiza incorrectamente, el overclocking también puede provocar que los componentes se sobrecalienten tan rápidamente que se dañen mecánicamente. [ 40 ]
Uso moderno
Algunos sistemas operativos más antiguos , por ejemplo MS-DOS , dependen de la BIOS para realizar la mayoría de las tareas de entrada/salida dentro del PC. [ 41 ]
Llamar directamente a los servicios de la BIOS en modo real es ineficiente para los sistemas operativos en modo protegido (y en modo largo ). Los sistemas operativos modernos multitarea no utilizan las llamadas a interrupciones de la BIOS después de su carga inicial.
En la década de 1990, la BIOS proporcionó algunas interfaces de modo protegido para Microsoft Windows y sistemas operativos tipo Unix , como Advanced Power Management (APM), Plug and Play BIOS , Desktop Management Interface (DMI), VESA BIOS Extensions (VBE), e820 y MultiProcessor Specification (MPS). A partir del año 2000, la mayoría de las BIOS proporcionan interfaces ACPI , SMBIOS , VBE y e820 para sistemas operativos modernos. [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ]
Después de que se cargan los sistemas operativos , el código del Modo de administración del sistema sigue ejecutándose en SMRAM. Desde 2010, la tecnología BIOS se encuentra en un proceso de transición hacia UEFI . [ 5 ]
Configuración
Utilidad de configuración
Históricamente, la BIOS de los IBM PC y XT no tenía interfaz de usuario integrada. Las versiones de BIOS de los primeros PC (clase XT) no eran configurables por software; en su lugar, los usuarios configuraban las opciones mediante interruptores DIP en la placa base. Los ordenadores posteriores, incluidos la mayoría de los compatibles con IBM con procesadores 80286, tenían una memoria BIOS no volátil con respaldo de batería (chip CMOS RAM) que almacenaba la configuración de la BIOS. [ 47 ] Esta configuración, como el tipo de adaptador de vídeo, el tamaño de la memoria y los parámetros del disco duro, solo podía configurarse ejecutando un programa de configuración desde un disco, no integrado en la ROM. Se insertaba un disquete de referencia especial en un IBM AT para configurar ajustes como el tamaño de la memoria. [ 48 ]
Las primeras versiones de BIOS no tenían contraseñas ni opciones de selección de dispositivo de arranque. La BIOS estaba programada para arrancar desde la primera unidad de disquete o, si esta fallaba, desde el primer disco duro. El control de acceso en las primeras máquinas de clase AT se realizaba mediante un interruptor de bloqueo físico (que no era difícil de burlar si se podía abrir la carcasa del ordenador). [ 49 ] Cualquiera que pudiera encender el ordenador podía arrancarlo. [ 50 ]
Posteriormente, los ordenadores de la serie 386 comenzaron a integrar la utilidad de configuración del BIOS en la propia ROM, junto con el código del BIOS; estos ordenadores suelen arrancar en la utilidad de configuración del BIOS si se pulsa una tecla o combinación de teclas determinada; de lo contrario, se ejecuta el proceso de arranque y la autoprueba de encendido del BIOS (POST).

Una utilidad de configuración de BIOS moderna cuenta con una interfaz de usuario de texto (TUI) o una interfaz gráfica de usuario (GUI) a la que se accede pulsando una tecla específica del teclado al iniciar el PC. Normalmente, esta tecla se anuncia brevemente durante el arranque inicial, por ejemplo: «Pulse DEL para acceder a la configuración».
La tecla exacta depende del hardware específico. La tecla de configuración suele ser Supr ( Acer , ASRock , Asus PC, ECS , Gigabyte , MSI , Zotac ) y F2 (placa base Asus , Dell , portátil Lenovo , Origin PC , Samsung , Toshiba ), pero también puede ser F1 (ordenador de sobremesa Lenovo ) y F10 ( HP ). [ 51 ]
Las características presentes en la utilidad de configuración del BIOS suelen incluir:
- Configurar, habilitar y deshabilitar los componentes de hardware.
- Configurar la hora del sistema
- Configurar el orden de arranque
- Establecer varias contraseñas, como una contraseña para proteger el acceso a la interfaz de usuario del BIOS y evitar que usuarios malintencionados arranquen el sistema desde dispositivos de almacenamiento portátiles no autorizados, o una contraseña para arrancar el sistema.
Monitorización del hardware
Una pantalla de configuración BIOS moderna suele incluir una pestaña de Estado de salud del PC o de Monitorización de hardware , que interactúa directamente con un chip de monitorización de hardware de la placa base. [ 52 ] Esto permite monitorizar la temperatura de la CPU y del chasis , el voltaje suministrado por la fuente de alimentación , así como monitorizar y controlar la velocidad de los ventiladores conectados a la placa base.
Una vez que el sistema arranca, la monitorización del hardware y el control del ventilador del ordenador normalmente se realizan directamente mediante el propio chip de monitorización del hardware, que puede ser un chip independiente, con interfaz a través de I²C o SMBus , o venir como parte de una solución Super I/O , con interfaz a través de la arquitectura estándar de la industria (ISA) o el bajo número de pines (LPC). [ 53 ] Algunos sistemas operativos, como NetBSD con envsys y OpenBSD con sysctl hw.sensors , cuentan con una interfaz integrada con monitores de hardware.
Sin embargo, en algunas circunstancias, la BIOS también proporciona la información subyacente sobre la monitorización del hardware a través de ACPI , en cuyo caso, el sistema operativo puede estar utilizando ACPI para realizar la monitorización del hardware. [ 54 ] [ 55 ] [ 56 ] [ 57 ] [ 58 ]
Reprogramación

En los ordenadores modernos, la BIOS se almacena en una EEPROM regrabable [ 59 ] o en una memoria flash NOR [ 60 ] , lo que permite reemplazar y modificar su contenido. Esta reescritura del contenido se denomina a veces flasheo. Puede realizarse mediante un programa especial, generalmente proporcionado por el fabricante del sistema, o durante el POST , con una imagen de la BIOS en un disco duro o una unidad flash USB. Un archivo que contiene dicho contenido se denomina a veces "imagen de la BIOS". Una BIOS puede reflashearse para actualizarla a una versión más reciente, corregir errores, mejorar el rendimiento o admitir hardware más reciente. Algunos ordenadores también permiten actualizar la BIOS mediante un disquete de actualización o una partición especial en el disco duro [ 61 ] .
Hardware

El BIOS original del IBM PC (y el BASIC en casete) se almacenaba en chips de memoria de solo lectura (ROM) programables mediante máscara en zócalos de la placa base. Los usuarios podían reemplazar las ROM, [ 62 ] pero no modificarlas. Para permitir actualizaciones, muchos ordenadores compatibles utilizaban dispositivos de memoria BIOS reprogramables, como EPROM , EEPROM y, posteriormente, memoria flash (normalmente NOR flash ). Según Robert Braver, presidente del fabricante de BIOS Micro Firmware, los chips Flash BIOS se popularizaron alrededor de 1995 porque los chips PROM (EEPROM) borrables eléctricamente son más baratos y fáciles de programar que los chips PROM ( EPROM ) estándar borrables por luz ultravioleta . Los chips Flash se programan (y reprograman) en el circuito, mientras que los chips EPROM deben extraerse de la placa base para su reprogramación. [ 63 ] Las versiones del BIOS se actualizan para aprovechar las versiones más recientes del hardware y corregir errores en revisiones anteriores del BIOS. [ 64 ]
A partir del IBM AT, los PC admitían un reloj de hardware configurable mediante la BIOS. Este contaba con un bit de siglo que permitía cambiar manualmente el siglo al llegar el año 2000. La mayoría de las revisiones de BIOS creadas en 1995 y casi todas las de 1997 admitían el año 2000 , configurando automáticamente el bit de siglo al pasar la medianoche del 31 de diciembre de 1999. [ 65 ]
Los primeros chips flash se conectaron al bus ISA . A partir de 1998, la memoria flash del BIOS se trasladó al bus LPC , siguiendo una nueva implementación estándar conocida como "firmware hub" (FWH). En 2005, la memoria flash del BIOS se trasladó al bus SPI . [ 66 ]
El tamaño de la BIOS y la capacidad de la ROM, EEPROM u otro medio en el que pueda almacenarse, ha aumentado con el tiempo a medida que se han añadido nuevas características al código; ahora existen versiones de BIOS con tamaños de hasta 32 megabytes. En comparación, la BIOS original de IBM PC estaba contenida en una ROM de máscara de 8 KB. Algunas placas base modernas incluyen circuitos integrados de memoria flash NAND aún más grandes en la placa que son capaces de almacenar sistemas operativos compactos completos, como algunas distribuciones de Linux . Por ejemplo, algunos portátiles ASUS incluían Splashtop OS integrado en sus circuitos integrados de memoria flash NAND. [ 67 ] Sin embargo, la idea de incluir un sistema operativo junto con la BIOS en la ROM de un PC no es nueva; en la década de 1980, Microsoft ofreció una opción de ROM para MS-DOS, y se incluyó en las ROM de algunos clones de PC como el Tandy 1000 HX .
Otro tipo de chip de firmware se encontraba en el IBM PC AT y sus primeros compatibles. En el AT, la interfaz del teclado estaba controlada por un microcontrolador con su propia memoria programable. En el IBM AT, se trataba de un dispositivo con zócalo de 40 pines, mientras que algunos fabricantes utilizaban una versión EPROM de este chip, similar a una EPROM. A este controlador también se le asignaba la función de puerta A20 para gestionar la memoria superior a un megabyte; ocasionalmente, era necesario actualizar este "BIOS del teclado" para aprovechar el software que podía utilizar la memoria superior.
La BIOS puede contener componentes como el Código de Referencia de Memoria (MRC), que es responsable de la inicialización de la memoria (por ejemplo, la inicialización de SPD y de los tiempos de memoria ). [ 68 ] : 8 [ 69 ]
La BIOS moderna [ 70 ] incluye el firmware Intel Management Engine o AMD Platform Security Processor .
Proveedores y productos
IBM publicó listados completos de las BIOS para sus PC originales, PC XT, PC AT y otros modelos de PC contemporáneos, en un apéndice del Manual de Referencia Técnica de IBM PC para cada tipo de máquina. Una ventaja de la publicación de estos listados de BIOS fue que los usuarios podían ver exactamente qué hacía la BIOS y cómo lo hacía. Sin embargo, dichas BIOS seguían estando protegidas por derechos de autor de IBM, por lo que otros fabricantes no podían utilizarlas.
En marzo de 1983, Compaq lanzó su Compaq Portable , que incluía una BIOS diseñada en un entorno controlado. Esto convirtió a Compaq en la primera empresa en clonar con éxito un IBM PC. Sin embargo, Compaq no ofreció su BIOS a otros fabricantes de computadoras.

En mayo de 1984, Phoenix Software Associates lanzó su primer ROM-BIOS. Este BIOS permitió a los fabricantes de equipos originales (OEM) crear clones prácticamente totalmente compatibles sin tener que realizar ingeniería inversa del BIOS de la IBM PC, como había hecho Compaq para la Portable ; también contribuyó al crecimiento de la industria de PC compatibles y a las ventas de versiones de DOS que no eran de IBM. [ 73 ] El primer BIOS de American Megatrends (AMI) se lanzó en 1986.
Los nuevos estándares incorporados a la BIOS suelen carecer de documentación pública completa o de listados en la BIOS. En consecuencia, no es tan fácil conocer los detalles de las numerosas adiciones a la BIOS que no son de IBM como los de los servicios principales de la BIOS.
Muchos proveedores de placas base para PC licenciaron el "núcleo" y el kit de herramientas de la BIOS de un tercero comercial, conocido como "proveedor independiente de BIOS" o IBV. El fabricante de la placa base personalizó esta BIOS para adaptarla a su propio hardware. Por esta razón, las BIOS actualizadas normalmente se obtienen directamente del fabricante de la placa base. Entre los principales IBV se encontraban American Megatrends (AMI), Insyde Software , Phoenix Technologies y Byosoft. Microid Research y Award Software fueron adquiridas por Phoenix Technologies en 1998; Phoenix posteriormente eliminó la marca Award (aunque Award Software todavía aparece en las versiones de AwardBIOS hasta 2001-2002, y AWRDACPI todavía aparece en los firmwares UEFI de Phoenix hasta finales de 2012). General Software , que también fue adquirida por Phoenix en 2007, vendía BIOS para sistemas embebidos basados en procesadores Intel.
SeaBIOS es una implementación de BIOS de código abierto.
Sustitutos de BIOS de código abierto
La comunidad de código abierto aumentó sus esfuerzos para desarrollar un reemplazo para las BIOS propietarias y sus futuras versiones con contrapartes de código abierto. Open Firmware fue un intento inicial de crear una especificación abierta para el firmware de arranque. Inicialmente fue respaldado por IEEE en su estándar IEEE 1275-1994 , pero fue retirado en 2005. [ 74 ] [ 75 ] Ejemplos posteriores incluyen los proyectos OpenBIOS , coreboot y libreboot . AMD proporcionó especificaciones de producto para algunos chipsets que usan coreboot, y Google está patrocinando el proyecto. El fabricante de placas base Tyan ofrece coreboot junto con la BIOS estándar en su línea de placas base Opteron .
Seguridad


Los chips de memoria EEPROM y flash son ventajosos porque el usuario puede actualizarlos fácilmente; es habitual que los fabricantes de hardware publiquen actualizaciones de BIOS para mejorar sus productos, aumentar la compatibilidad y corregir errores . Sin embargo, esta ventaja conllevaba el riesgo de que una actualización de BIOS mal ejecutada o interrumpida pudiera dejar el ordenador o dispositivo inutilizable. Para evitar estas situaciones, las BIOS más recientes utilizan un "bloque de arranque"; una parte de la BIOS que se ejecuta primero y debe actualizarse por separado. Este código verifica si el resto de la BIOS está intacto (mediante sumas de comprobación hash u otros métodos) antes de transferirle el control. Si el bloque de arranque detecta algún daño en la BIOS principal, normalmente advertirá al usuario de que debe iniciar un proceso de recuperación arrancando desde un medio extraíble (disquete, CD o unidad flash USB) para que pueda intentar actualizar la BIOS de nuevo. Algunas placas base tienen una BIOS de respaldo (a veces denominada DualBIOS) para recuperarse de daños en la BIOS, y utilizan un PLC especial para realizar dicha recuperación.
Existen al menos cinco virus conocidos que atacan la BIOS, dos de los cuales fueron creados con fines demostrativos. El primero detectado fue Mebromi , dirigido a usuarios chinos.
El primer virus BIOS fue BIOS Meningitis, que en lugar de borrar los chips BIOS los infectaba. BIOS Meningitis era relativamente inofensivo, comparado con un virus como CIH .
El segundo virus BIOS fue CIH , también conocido como el "Virus Chernóbil", capaz de borrar el contenido de la memoria flash ROM BIOS en chipsets compatibles. CIH apareció a mediados de 1998 y se activó en abril de 1999. A menudo, los ordenadores infectados dejaban de arrancar y era necesario extraer el circuito integrado de la memoria flash ROM de la placa base y reprogramarlo. CIH se dirigió al chipset de placa base Intel i430TX, entonces muy extendido, y aprovechó que los sistemas operativos Windows 9x , también muy populares en aquel momento, permitían el acceso directo al hardware para todos los programas.
Los sistemas modernos no son vulnerables a CIH debido a la variedad de chipsets que se utilizan, los cuales son incompatibles con el chipset Intel i430TX, así como con otros tipos de circuitos integrados de memoria flash ROM. También existe protección adicional contra reescrituras accidentales de la BIOS mediante bloques de arranque protegidos contra sobrescritura accidental o sistemas equipados con BIOS dual que, en caso de fallo, pueden usar una BIOS de respaldo. Además, todos los sistemas operativos modernos, como FreeBSD , Linux , macOS , Windows NT y sistemas operativos Windows como Windows 2000 , Windows XP y posteriores, no permiten que los programas en modo usuario tengan acceso directo al hardware mediante una capa de abstracción de hardware . [ 76 ]
Como resultado, a partir de 2008, CIH se ha vuelto esencialmente inofensivo, causando en el peor de los casos molestias al infectar archivos ejecutables y activar el software antivirus. Sin embargo, otros virus de BIOS siguen siendo posibles; [ 77 ] dado que la mayoría de los usuarios domésticos de Windows sin el UAC de Windows Vista/7 ejecutan todas las aplicaciones con privilegios de administrador, un virus moderno similar a CIH podría, en principio, obtener acceso al hardware sin usar primero un exploit. El sistema operativo OpenBSD impide que todos los usuarios tengan este acceso y el parche grsecurity para el kernel de Linux también impide este acceso directo al hardware de forma predeterminada, la diferencia radica en que un atacante necesitaría un exploit a nivel del kernel mucho más difícil o reiniciar la máquina.
El tercer virus BIOS fue una técnica presentada por John Heasman, consultor principal de seguridad de Next-Generation Security Software, con sede en el Reino Unido. En 2006, en la Conferencia de Seguridad Black Hat, mostró cómo elevar privilegios y leer la memoria física, utilizando procedimientos maliciosos que reemplazaban las funciones ACPI normales almacenadas en la memoria flash. [ 78 ]
El cuarto virus BIOS fue una técnica denominada "infección persistente de BIOS". Apareció en 2009 en la Conferencia de Seguridad CanSecWest en Vancouver y en la Conferencia de Seguridad SyScan en Singapur. Los investigadores Aníbal Sacco [ 79 ] y Alfredo Ortega, de Core Security Technologies, demostraron cómo insertar código malicioso en las rutinas de descompresión de la BIOS, lo que permitía un control casi total del PC al arrancar, incluso antes de que se iniciara el sistema operativo. La prueba de concepto no explota una vulnerabilidad en la implementación de la BIOS, sino que solo involucra los procedimientos normales de actualización de la BIOS. Por lo tanto, requiere acceso físico a la máquina o que el usuario sea root. A pesar de estos requisitos, Ortega subrayó las profundas implicaciones de su descubrimiento y el de Sacco: "Podemos parchear un controlador para instalar un rootkit completamente funcional . Incluso tenemos un pequeño código que puede eliminar o deshabilitar el antivirus". [ 80 ]
Mebromi es un troyano que ataca a computadoras con AwardBIOS , Microsoft Windows y software antivirus de dos empresas chinas: Rising Antivirus y Jiangmin KV Antivirus. [ 81 ] [ 82 ] [ 83 ] Mebromi instala un rootkit que infecta el registro de arranque maestro .
En una entrevista de diciembre de 2013 con 60 Minutes , Deborah Plunkett, Directora de Seguridad de la Información de la Agencia de Seguridad Nacional de EE. UU., afirmó que la NSA había descubierto y frustrado un posible ataque BIOS por parte de un Estado extranjero, dirigido al sistema financiero estadounidense. [ 84 ] El programa citó fuentes anónimas que alegaban que se trataba de un complot chino. [ 84 ] Sin embargo, artículos posteriores en The Guardian , [ 85 ] The Atlantic , [ 86 ] Wired [ 87 ] y The Register [ 88 ] refutaron las afirmaciones de la NSA.
Las plataformas Intel más recientes incorporan la tecnología Intel Boot Guard (IBG). Esta tecnología verifica la firma digital de la BIOS al arrancar, y la clave pública de IBG se integra en el PCH . Los usuarios finales no pueden desactivar esta función.
Alternativas y sucesores
La Interfaz de Firmware Extensible Unificada (UEFI) complementa la BIOS en muchas máquinas nuevas. Inicialmente escrita para la arquitectura Intel Itanium , UEFI ahora está disponible para plataformas x86 y Arm ; el desarrollo de la especificación está impulsado por el Foro Unificado de EFI , un grupo de interés especial de la industria . El arranque EFI solo ha sido compatible con versiones de Microsoft Windows que admiten GPT , [ 89 ] el kernel de Linux 2.6.1 y posteriores, y macOS en Macs basados en Intel . [ 90 ] A partir de 2014El nuevo hardware de PC se distribuye predominantemente con firmware UEFI. La arquitectura de la protección contra rootkits también puede impedir que el sistema ejecute los cambios de software del usuario, lo que hace que UEFI sea controvertido como reemplazo de BIOS tradicional en la comunidad de hardware abierto . UEFI es necesario para los dispositivos que se distribuyen con Windows 8 [ 91 ] [ 92 ] y versiones posteriores. Del mismo modo, Windows 11 requiere UEFI para arrancar, [ 93 ] con la excepción de las ediciones IoT Enterprise de Windows 11. [ 10 ]
Tras la popularidad de UEFI en la década de 2010, la BIOS antigua que admitía llamadas de interrupción de la BIOS pasó a denominarse "BIOS heredada".
Otras alternativas a la funcionalidad del "Legacy BIOS" en el mundo x86 incluyen coreboot y libreboot .
Algunos servidores y estaciones de trabajo utilizan un firmware abierto independiente de la plataforma (IEEE-1275) basado en el lenguaje de programación Forth ; se incluye con los ordenadores SPARC de Sun, la línea RS/6000 de IBM y otros sistemas PowerPC , como las placas base CHRP , junto con el OLPC XO-1 basado en x86 .
Desde al menos 2015, Apple eliminó la compatibilidad con BIOS heredada del monitor UEFI en las Mac con procesadores Intel . Por lo tanto, la utilidad BIOS ya no admite la opción heredada y muestra el mensaje "El modo heredado no es compatible con este sistema".
En 2017, Intel anunció que eliminaría la compatibilidad con BIOS heredada para 2020. Desde 2019, los nuevos PC OEM con plataforma Intel ya no son compatibles con la opción heredada. [ 94 ]
Véase también
- Doble arranque
- Datos de configuración extendida del sistema (ESCD)
- Sistema de control de entrada/salida
- ACPI (Interfaz avanzada de configuración y alimentación)
- Lista de interrupciones de Ralf Brown (RBIL) : interrupciones, llamadas, interfaces, estructuras de datos, direcciones de memoria y puertos, y códigos de operación del procesador para la arquitectura x86.
- BIOS de administración del sistema (SMBIOS)
- UEFI (Interfaz de Firmware Extensible Unificada)
- Das U-Boot , utilizado frecuentemente en sistemas embebidos
- UBIOS
Notas
- ↑ Si bien el término BIOS es anterior a 1981, el estándar para computadoras compatibles con IBM PC comenzó con el lanzamiento de la IBM Personal Computer original .
- ↑ Pronunciado / ˈ b aɪ ɒ s , - oʊ s / , BY -oss, - ohss
- ↑ También conocido como BIOS del sistema , ROM BIOS , ROM BIOS o BIOS de PC
- ↑ La firma en el desplazamiento
+0x1FEen los sectores de arranque es0x55 0xAA, es decir,0x55en el desplazamiento+0x1FEy0xAAen el desplazamiento+0x1FF. Dado quese debe asumir la representación little-endian en el contexto de los dispositivos compatibles con IBM PC , esto se puede escribir como una palabra de 16 bits0xAA55en programas para procesadores x86 (nótese el orden intercambiado), mientras que tendría que escribirse como0x55AAen programas para otras arquitecturas de CPU que utilizan una representación big-endian . Dado que esto se ha confundido 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.
Referencias
- ↑ Kozierok, Charles M. (17 de abril de 2001). "Ref — BIOS del sistema" . The PC Guide . Archivado del original el 18 de febrero de 2019. Consultado el 6 de diciembre de 2014 .
- 1 2 3 Kildall, Gary Arlen (junio de 1975), CP/M 1.1 o 1.2 BIOS y BDOS para los Laboratorios Lawrence Livermore
- 1 2 3 Kildall, Gary Arlen (enero de 1980). "La historia de CP/M: la evolución de una industria: el punto de vista de una persona" (Vol. 5, n.° 1, ed. n.° 41 ). Dr. Dobb's Journal of Computer Calisthenics & Orthodontia. págs. 6–7 . Archivado del original el 24 de noviembre de 2016. Recuperado el 3 de junio de 2013 .
- 1 2 "Arranque · Linux Inside" . 0xax.gitbooks.io . Consultado el 10 de noviembre de 2020 .
- 1 2 Bradley, Tony. "RIP BIOS: Una introducción a UEFI" . PCWorld . Archivado del original el 27 de enero de 2014. Recuperado el 27 de enero de 2014 .
- ↑ "Interfaz de firmware extensible unificada" . Intel .
- ↑ "UEFI" . OSDev.org .
- ↑ "Especificación del módulo de soporte de compatibilidad de la plataforma Intel® para EFI (revisión 0.97)" (PDF) . Intel. 4 de septiembre de 2007. Consultado el 6 de octubre de 2013 .
- ↑ "Aviso técnico sobre la eliminación del soporte de arranque heredado para plataformas Intel" . Consultado el 25 de julio de 2024 .
- 1 2 "Requisitos mínimos del sistema para Windows IoT Enterprise" . Microsoft Learn . 22 de mayo de 2024. Consultado el 7 de junio de 2024 .
- ↑ Swaine, Michael (1997-04-01). "Gary Kildall y el emprendimiento colegial" . Dr. Dobb's Journal . Archivado del original el 24-01-2007 . Recuperado el 20-11-2006 .
- 1 2 "Hito del IEEE en ingeniería eléctrica e informática: CP/M - Sistema operativo para microcomputadoras, 1974" (PDF) . Museo de Historia de la Computación . 25 de abril de 2014. Archivado (PDF) del original el 3 de abril de 2019. Recuperado el 3 de abril de 2019 .
- ↑ Shustek, Len (2 de agosto de 2016). "En sus propias palabras: Gary Kildall" . Personas extraordinarias . Museo de Historia de la Computación . Archivado del original el 17 de diciembre de 2016.
- ↑ Killian, A. Joseph "Joe" (2001). "Gary Kildall's CP/M: Algunos primeros años de CP/M - 1976-1977" . Thomas "Todd" Fischer , IMSAI . Archivado del original el 29-12-2012 . Recuperado el 03-06-2013 .
- ↑ Fraley, Bob; Spicer, Dag (26 de enero de 2007). "Historia oral de Joseph Killian, entrevistado por: Bob Fraley, editado por: Dag Spicer, grabado: 26 de enero de 2007, Mountain View, California, número de referencia CHM: X3879.2007" (PDF) . Museo de Historia de la Computación. Archivado del original (PDF) el 14 de julio de 2014. Recuperado el 3 de junio de 2013 .
- ↑ Glass, Brett (1989). "The IBM PC BIOS" . Byte : 303–310 . Recuperado el 31 de diciembre de 2021 .
- ↑ "Utilidad de configuración del BIOS de HP" . Hewlett-Packard . 2013. Archivado del original el 12 de enero de 2015. Consultado el 12 de enero de 2015 .
- ↑ Phoenix Technologies, Ltd. (junio de 1991). BIOS del sistema para PC, compatibles y ordenadores EISA de IBM : la guía completa del software de sistema basado en ROM . Serie de referencia técnica de Phoenix (2.ª ed.). Ámsterdam: Addison Wesley Publishing Company, Inc. ISBN 0-201-57760-7.
- ↑ Phoenix Technologies, Ltd. (1989) [1987]. BIOS del sistema para ordenadores IBM PC/XT/AT y compatibles : la guía completa del software de sistema basado en ROM . Serie de referencia técnica de Phoenix (1.ª ed.). Addison Wesley Publishing Company, Inc. ISBN 0-201-51806-6.
- ↑ Sánchez, Julio; Cantón, María P. (26 de febrero de 2003). Manual de gráficos para PC . CRC Press. ISBN 978-0-203-01053-2.
- ↑ "Manual del usuario de iAPX 86,88" (PDF) . Intel . 1981. Reinicio del sistema, pág. 2-29, tabla 2-4 . Consultado el 5 de agosto de 2025 .
- ↑ "Hoja de datos del AMD 80286" (PDF) . AMD . 1985. pág. 13.
El 286 comienza la ejecución en modo real con la instrucción en la ubicación física FFFFF0H.
- ↑ "Manual de referencia del programador 80386" (PDF) . Intel. 1990. Sección 10.1 Estado del procesador después del reinicio, páginas 10-1 - 10.3.
- ↑ "Manual de referencia del programador 80386" (PDF) . Intel. 1990. Sección 10.2.3 Primera instrucción, pág. 10-4 . Recuperado el 3 de noviembre de 2013.
La ejecución comienza con la instrucción a la que apuntan los contenidos iniciales de los registros CS e IP. Para permitir que el software de inicialización se coloque en una ROM en la parte superior del espacio de direcciones, se establecen los 12 bits superiores de las direcciones emitidas para el segmento de código, hasta la primera instrucción que carga el registro CS, como un salto lejano o una llamada. Como resultado, la obtención de instrucciones comienza desde la dirección 0FFFFFFF0H.
- ↑ "Manual del desarrollador de software para arquitecturas Intel® 64 e IA-32" (PDF) . Intel. Mayo de 2012. Sección 9.1.4 Primera instrucción ejecutada, pág. 2611. Archivado del original (PDF) el 8 de agosto de 2012. Recuperado el 23 de agosto de 2012. 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 más alta del procesador. La EPROM que contiene el código de inicialización de software debe estar ubicada en esta dirección.
- ↑ página 5-27 Biblioteca de referencia técnica de hardware para computadoras personales IBM , 1984, número de publicación 6361459
- ↑ "Manual de referencia técnica IBM 5162 PC XT286 TechRef 68X2537" (PDF) . Agosto de 1986. pág. 35 (BIOS del sistema A-5). Archivado (PDF) del original el 11 de diciembre de 2014. Consultado el 11 de diciembre de 2014 .
- ↑ "Cómo funciona StuffWorks: Qué hace la BIOS" . Archivado del original el 7 de febrero de 2008.
- ↑ Akeljic, Bekir (2017-01-01). "FUNCIONES Y MODIFICACIONES DEL SISTEMA BÁSICO DE ENTRADA/SALIDA DEL BIOS" . BIOS : 12. Archivado del original el 2022-08-08 . Recuperado el 2022-08-08 – a través de la UNIVERSIDAD INTERNACIONAL TRAVNIK, FACULTAD DE TECNOLOGÍA DE LA INFORMACIÓN, PROGRAMACIÓN DE SOFTWARE TRAVNIK.
- ↑ "Diseño de la memoria y mapa de la memoria" . flint.cs.yale.edu . Consultado el 8 de agosto de 2022 .
- ↑ "Tabla ACPI de datos de BIOS (BDAT)" (PDF) . Especificación de interfaz . 4 (5): 67. 2020. Archivado (PDF) del original el 3 de julio de 2021. Recuperado el 8 de agosto de 2022 .
- ^ Más quieto, Andreas; Paul, Matías R. (12 de mayo de 1996). "Prozessorgeflüster" . c't – revista para tecnología informática . Tendencias y noticias / aktuell - Prozessoren (en alemán). vol. 1996, núm. 6. Verlag Heinz Heise GmbH & Co. KG . pag. 20. ISSN 0724-8679 . Archivado desde el original el 28 de agosto de 2017 . Consultado el 28 de agosto de 2017 .
- ↑ Mueller, Scott (8 de junio de 2001). Función de actualización del procesador | Tipos y especificaciones de microprocesadores . InformIT. Archivado del original el 16 de abril de 2014. Consultado el 15 de abril de 2014 .
- ↑ "Archivo de datos de microcódigo del procesador Linux*" . Centro de descargas . Downloadcenter.intel.com. 23/09/2009. Archivado del original el 16/04/2014 . Consultado el 15/04/2014 .
- ↑ Scott Mueller (2003). Actualización y reparación de PCs, 15.ª edición . Que Publishing. págs. 109–110 . ISBN 0-7897-2974-1.
- ↑ "KB4100347: Actualizaciones de microcódigo de Intel" . support.microsoft.com . Consultado el 20 de septiembre de 2020 .
- ↑ "Microcódigo - Wiki de Debian" . wiki.debian.org . Consultado el 19 de septiembre de 2020 .
- 1 2 "Cómo funcionan SLP y SLIC" . guytechie.com . 25 de febrero de 2010. Archivado del original el 3 de febrero de 2015. Consultado el 3 de febrero de 2015 .
- ↑ "Crear y agregar un módulo de tabla SLIC ACPI OEM a una BIOS de congatec" (PDF) . congatec.com . 16 de junio de 2011. Archivado (PDF) del original el 2 de agosto de 2014. Consultado el 3 de febrero de 2015 .
- ↑ Whitson Gordon (13 de enero de 2014). "Introducción para principiantes al overclocking de su procesador Intel" . Lifehacker . Gawker Media. Archivado del original el 7 de diciembre de 2014. Consultado el 6 de diciembre de 2014 .
- ↑ "Artículo sobre informática inteligente: ¿Qué es la BIOS?" . Fundamentos de la informática . Vol. 5, n.º 7. Julio de 1994. Archivado del original el 10 de marzo de 2012.
- ↑ "¿Qué es ACPI (Advanced Configuration and Power Interface)? - Definición de WhatIs.com" . SearchWindowsServer . Consultado el 18 de septiembre de 2020 .
- ↑ "Cambio de la capa de abstracción de hardware en Windows 2000 / XP – Smallvoid.com" . 15 de enero de 2001. Consultado el 18 de septiembre de 2020 .
- ↑ "¿Qué es ACPI?" . www.spo-comm.de . Archivado del original el 05-03-2021 . Consultado el 18-09-2020 .
- ↑ lorihollasch. "Compatibilidad con sistemas sin interfaz gráfica: controladores de Windows" . docs.microsoft.com . Consultado el 5 de diciembre de 2020 .
- ↑ "Mapa de memoria (x86) - Wiki de OSDev" . wiki.osdev.org . Consultado el 11 de diciembre de 2020 .
- ↑ Torres, Gabriel (24-11-2004). "Introducción y batería de litio" . Reemplazo de la batería de la placa base . hardwaresecrets.com. Archivado del original el 24-12-2013 . Recuperado el 20-06-2013 .
- ↑ Beales, RP (11 de agosto de 2006). Sistemas de PC, instalación y mantenimiento . Routledge. ISBN 978-1-136-37441-8.
- ↑ Edwards, Benj (14 de noviembre de 2020). "¿Por qué las PC de los 90 tenían cerraduras de ojo de cerradura y para qué servían?" . How-To Geek . Consultado el 4 de junio de 2026 .
- ↑ Edwards, Benj (14 de noviembre de 2020). "¿Por qué las PC de los 90 tenían cerraduras de ojo de cerradura y para qué servían?" . How-To Geek . Consultado el 4 de junio de 2026 .
- ↑ "Cómo acceder a la BIOS en cualquier PC: Teclas de acceso según el fabricante" . Tom's Hardware . 4 de febrero de 2022.
- ↑ Constantine A. Murenin (21/05/2010). "11.1. Interfaz desde la BIOS". Sensores de hardware de OpenBSD: monitorización ambiental y control de ventiladores ( tesis de maestría en matemáticas ). Universidad de Waterloo : UWSpace. hdl : 10012/5234 . ID del documento: ab71498b6b1a60ff817b29d56997a418.
- ↑ Constantine A. Murenin (17 de abril de 2007). "2. Revisión de hardware". Interfaz generalizada con monitores de hardware de sistemas de microprocesadores . Actas de la Conferencia Internacional IEEE de 2007 sobre Redes, Detección y Control, 15-17 de abril de 2007. Londres, Reino Unido: IEEE . págs. 901-906 . doi : 10.1109/ICNSC.2007.372901 . ISBN 978-1-4244-1076-7IEEE ICNSC 2007, págs. 901-906.
- ↑ – Manual de interfaces del kernel de OpenBSD
- ↑ – Manual de dispositivos y controladores de dispositivos DragonFly BSD
- ↑ – Manual de interfaces del kernel de NetBSD
- ↑ – Manual de interfaces del kernel de FreeBSD
- ↑ – Manual de interfaces del kernel de FreeBSD
- ↑ Clarke, Glen E.; Tetz, Edward (30 de enero de 2007). CompTIA A+ Certification All-In-One Desk Reference for Dummies . John Wiley & Sons. ISBN 978-0-471-74811-3.
- ↑ Micheloni, Rino; Crippa, Luca; Marelli, Alessia (27 de julio de 2010). Dentro de las Memorias Flash NAND . Saltador. ISBN 978-90-481-9431-5.
- ↑ Mueller, Scott (2004). Actualización y reparación de PC . Que. ISBN 978-0-7897-2974-3.
- ↑ Clarke, Glen E.; Tetz, Edward (30 de enero de 2007). CompTIA A+ Certification All-In-One Desk Reference for Dummies . John Wiley & Sons. ISBN 978-0-471-74811-3.
- ↑ "Decodificando RAM y ROM" . Smart Computing . Vol. 8, n.º 6. Junio de 1997. Archivado del original el 6 de abril de 2012.
- ↑ "Actualización de la BIOS Flash para Plug and Play" . Smart Computing . Marzo de 1996. Archivado del original el 6 de abril de 2012.
- ↑ "Es hora de revisar la BIOS" . Smart Computing . Abril de 1999. Archivado del original el 16 de julio de 2011.
- ↑ "Ubicación de la memoria flash de la BIOS" . Archivado del original el 18 de agosto de 2021. Consultado el 30 de marzo de 2025 .
- ↑ "Escritorio Linux de arranque instantáneo de SplashTop | Geek.com" . Archivado del original el 7 de septiembre de 2008.
- ↑ Alex Watson (27 de noviembre de 2007). "La vida y la época de la placa base moderna" . Archivado del original el 29 de diciembre de 2007.
- ↑ David Hilber Jr. (agosto de 2009). "Consideraciones para el diseño de un sistema con arquitectura Intel integrada y memoria del sistema desactivada" (PDF) . Intel . Archivado (PDF) del original el 18 de octubre de 2012. Consultado el 2 de febrero de 2013 .
- ↑ "Tipos de BIOS" . rompacks.com . Consultado el 20 de septiembre de 2021 .
- ↑ Stiller, Andreas (2001). "Prozessor-Patches" . c't (en alemán) (5). Heise : 240. Archivado del original el 22-11-2015 . Recuperado el 21-11-2015 .
- ↑ "Logotipo de Award BIOS" . 15/06/2015. Archivado del original el 21/12/2015 . Consultado el 06/12/2015 .
- ↑ "Phoenix espera ansiosamente clonar la BIOS de próxima generación de IBM" . InfoWorld . Vol. 9, n.º 10. 9 de marzo de 1987, pág. 8. Archivado del original el 22 de enero de 2014.
- ↑ Norma IEEE para firmware de arranque (configuración de inicialización): requisitos y prácticas principales . 28 de octubre de 1994. págs. 1–262 . doi : 10.1109/IEEESTD.1994.89427 . ISBN 978-0-7381-1194-0. Norma IEEE STD 1275-1994.
- ↑ "Asociación de Estándares IEEE" . Asociación de Estándares IEEE . Consultado el 26 de abril de 2023 .
- ↑ "Definición de capa de abstracción de hardware" . PCMAG . Consultado el 11 de julio de 2022 .
- ↑ Marcus Yam (27 de marzo de 2009). "Nuevo virus de BIOS resiste el borrado de discos duros" . Tom's Hardware US .
- ↑ "Black Hat 2006 Multimedia - Archivos de presentación, audio y vídeo" . www.blackhat.com . Consultado el 21 de abril de 2019 .
- ↑ Sacco, Anibal; Alfredo Ortéga (23-03-2009). "Infección persistente de BIOS" . Exploiting Stuff . Archivado del original el 04-08-2009 . Recuperado el 06-02-2010 .
- ↑ Fisher, Dennis. "Investigadores revelan métodos de ataque persistentes a la BIOS" . Threat Post . Archivado del original el 30 de enero de 2010. Consultado el 6 de febrero de 2010 .
- ↑ Giuliani, Marco (13 de septiembre de 2011). "Mebromi: el primer rootkit de BIOS en acción" . Blog . Archivado del original el 23 de septiembre de 2011. Consultado el 19 de septiembre de 2011 .
- ^ "360发布"BMW病毒"技术分析报告" . blog . Archivado desde el original el 25 de septiembre de 2011 . Consultado el 19 de septiembre de 2011 .
- ↑ Yuan, Liang. "Trojan.Mebromi" . Respuesta a amenazas . Archivado del original el 23 de septiembre de 2011. Consultado el 19 de septiembre de 2011 .
- 1 2 "¿Cómo logró 60 Minutes introducir cámaras en una agencia de espionaje?" . CBS News . 15 de diciembre de 2013. Archivado del original el 22 de abril de 2014. Consultado el 15 de abril de 2014 .
- ↑ Spencer Ackerman en Washington (16 de diciembre de 2013). "La NSA aparece en 60 Minutes: los hechos definitivos detrás del informe defectuoso de CBS" . theguardian.com . Archivado del original el 25 de enero de 2014. Consultado el 27 de enero de 2014 .
- ↑ Friedersdorf, Conor (16 de diciembre de 2013). "Una pregunta para 60 Minutes: ¿Por qué querría China destruir la economía global?" . The Atlantic . Consultado el 26 de marzo de 2019 .
- ↑ Poulsen, Kevin (16 de diciembre de 2013). "Un reportaje de 60 Minutes afirma que la NSA salvó a EE. UU. del ciberterrorismo" . Wired . ISSN 1059-1028 . Consultado el 26 de marzo de 2019 en www.wired.com.
- ↑ Sharwood, Simon (16 de diciembre de 2013). "La NSA alega 'un complot de la BIOS para destruir ordenadores'"." . The Register . Consultado el 26 de marzo de 2019 .
- ↑ "Preguntas frecuentes sobre Windows y GPT" . microsoft.com . Microsoft. Archivado del original el 19 de febrero de 2011. Consultado el 6 de diciembre de 2014 .
- ↑ "Interfaz de firmware extensible (EFI) y EFI unificada (UEFI)" . Intel . Archivado del original el 5 de enero de 2010. Consultado el 6 de diciembre de 2014 .
- ↑ "La especificación de arranque de próxima generación podría impedir para siempre el acceso de Linux a los PC con Windows 8" .
- ↑ "El arranque seguro de Windows 8 podría complicar las instalaciones de Linux" . 21/09/2011.
- ↑ "Especificaciones y requisitos del sistema de Windows 11 | Microsoft" . Microsoft . Consultado el 14 de octubre de 2021 .
- ↑ Tung, Liam (2017-11-20). "Intel: Dejaremos de dar soporte a todas las BIOS heredadas para 2020" . ZDNET .
Lecturas adicionales
- Manual técnico de IBM para ordenadores personales ( Edición revisada). IBM Corporation . Marzo de 1983.
- Referencia técnica del IBM Personal Computer AT . Biblioteca de referencia de hardware del IBM Personal Computer. Vol. 0, 1, 2 ( Edición revisada). IBM Corporation . Marzo de 1986 [1984-03]. 1502494, 6139362, 6183310, 6183312, 6183355, 6280070, 6280099.
- Phoenix Technologies, Ltd. (1989) [1987]. BIOS del sistema para ordenadores IBM PC/XT/AT y compatibles : la guía completa del software de sistema basado en ROM . Serie de referencia técnica de Phoenix (1.ª ed.). Addison Wesley Publishing Company, Inc. ISBN 0-201-51806-6.
- Phoenix Technologies, Ltd. (1989) [1987]. CBIOS para computadoras IBM PS/2 y compatibles : la guía completa del software de sistema basado en ROM para DOS . Serie de referencia técnica de Phoenix (1.ª ed.). Addison Wesley Publishing Company, Inc. ISBN 0-201-51804-X.
- Phoenix Technologies, Ltd. (1989) [1987]. ABIOS para computadoras IBM PS/2 y compatibles : la guía completa del software de sistema basado en ROM para OS/2 . Serie de referencia técnica de Phoenix (1.ª ed.). Addison Wesley Publishing Company, Inc. ISBN 0-201-51805-8.
- Phoenix Technologies, Ltd. (junio de 1991). BIOS del sistema para PC, compatibles y ordenadores EISA de IBM : la guía completa del software de sistema basado en ROM . Serie de referencia técnica de Phoenix (2.ª ed.). Ámsterdam: Addison Wesley Publishing Company, Inc. ISBN 0-201-57760-7.
- BIOS Disassembly Ninjutsu Uncovered, 1st edition, a freely available book in PDF format
- More Power To Firmware, free bonus chapter to the Mac OS X Internals: A Systems Approach book
External links
- "BIOS Boot Specification 1.01"(PDF). Phoenix.com. 1996-01-11. Archived from the original(PDF) on 2011-07-15.
- "How BIOS Works". How Stuff Works. 2000-09-06.
- "Implementing a Plug and Play BIOS Using Intel's Boot Block Flash Memory"(PDF). Intel. February 1995. Archived from the original(PDF) on 2007-11-28. Retrieved 2007-11-28.
- "List of BIOS options". techarp.com. Archived from the original on 2014-01-27.
- "Persistent BIOS Infection". Phrack. No. 66. 2009-06-01. Archived from the original on 2011-04-30. Retrieved 2011-04-30.
- "Preventing BIOS Failures Using Intel Boot Block Flash Memory"(PDF). Intel. December 1998. Archived from the original(PDF) on 2007-03-29. Retrieved 2007-03-29.
- BIOS
- CP/M technology
- DOS technology
- Emulation terminology
- Windows technology
- American inventions