BIOS

Firmware para inicialización de hardware y servicios de tiempo de ejecución del sistema operativo

Un par de chips BIOS AMD para una computadora Dell 310 de la década de 1980. El de abajo muestra la ventana distintiva de un chip EPROM .
Año iniciado1981 [a]
OrganizaciónOriginalmente, IBM lo utilizaba como software propietario y, más tarde, se convirtió en un estándar de facto para toda la industria . En 1996, Compaq , Phoenix Technologies e Intel escribieron la especificación de arranque del BIOS .
SucesorUEFI

En informática , BIOS ( / ˈb· · ɒ ·s , -oʊ · s / , BY -oss, -⁠ohss ; Sistema básico de entrada/salida , también conocido como BIOS del sistema , ROM BIOS , BIOS ROM o PC BIOS ) es un firmware utilizado 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 (inicio de encendido). [1] 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 propiedad de IBM PC ; fue diseñado a la inversa por algunas compañías (como Phoenix Technologies ) que buscaban crear sistemas compatibles. La interfaz de ese sistema original sirve como un estándar de facto .

El BIOS en las PC más antiguas inicializa y prueba los componentes de hardware del sistema ( prueba automática de encendido o POST para abreviar) y carga un cargador de arranque desde un dispositivo de almacenamiento masivo que luego inicializa un núcleo . En la era de DOS , el BIOS proporcionó llamadas de interrupción del BIOS para el teclado, la pantalla, el almacenamiento y otros dispositivos de entrada/salida (E/S) que estandarizaron una interfaz para los programas de aplicación y el sistema operativo. Los sistemas operativos más recientes no utilizan las llamadas de interrupción del BIOS después del inicio. [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 , al interactuar con varios dispositivos, especialmente el chipset del sistema . Originalmente, el firmware de BIOS se almacenaba en un chip ROM en la placa base de la PC. En los sistemas informáticos posteriores, el contenido de la BIOS se almacena en la memoria flash para que pueda reescribirse sin quitar el chip de la placa base. Esto permite que el usuario final actualice fácilmente el firmware de la BIOS para que se puedan agregar nuevas funciones o se puedan 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 que falla podría bloquear la placa base.

La Interfaz de Firmware Extensible Unificada (UEFI) es un sucesor del BIOS de PC heredado, con el objetivo de abordar sus limitaciones técnicas. [5] El firmware UEFI puede incluir compatibilidad con BIOS heredado para mantener la compatibilidad con sistemas operativos y tarjetas opcionales que no admiten el funcionamiento nativo de UEFI. [6] [7] [8] Desde 2020, todas las PC para plataformas Intel ya no son compatibles con BIOS heredado. [9] La última versión de Microsoft Windows que admite oficialmente la ejecución en PC que usan firmware BIOS heredado es Windows 10, ya que Windows 11 requiere un sistema compatible con UEFI (excepto las ediciones IoT Enterprise de Windows 11 desde la versión 24H2 [10] ).

Historia

/* CP / MBASICI / SISTEMA OS (BIOS) DERECHOS DE AUTOR (C) GARY A. KILDALL JUNIO DE 1975 */[…]/* SISTEMA OPERATIVO DE DISCO BÁSICO (BDOS) DERECHOS DE AUTOR (C) 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 (Basic Input/Output System) 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 cargada durante el tiempo de arranque 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 denominado de diversas formas: " IO.SYS ", " IBMBIO.COM ", "IBMBIO.SYS" o "DRBIOS.SYS"; este archivo se conoce como "DOS BIOS" (también conocido como "DOS I/O System") y contiene la parte de nivel inferior específica del hardware del sistema operativo. Junto con el "System BIOS" subyacente específico del hardware pero independiente del sistema operativo, que reside en la ROM , representa el análogo del " CP/M BIOS ".

El BIOS originalmente propiedad del IBM PC ha sido modificado mediante ingeniería inversa por algunas empresas (como Phoenix Technologies ) 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 modo protegido. La parte de modo real tenía como objetivo proporcionar compatibilidad con sistemas operativos existentes como DOS, y por lo tanto se denominó "CBIOS" (por "BIOS de compatibilidad"), mientras que "ABIOS" (por "BIOS avanzado") proporcionaba nuevas interfaces específicamente adaptadas a sistemas operativos multitarea como OS/2 . [16]

Interfaz de usuario

El 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 prueba automática de encendido (POST) no había avanzado hasta el punto de inicializar con éxito un adaptador de pantalla de video. Las opciones en los IBM PC y XT se configuraban mediante interruptores y puentes en la placa principal y en las tarjetas de expansión . A partir de mediados de la década de 1990, se volvió típico que la ROM del BIOS incluyera una "utilidad de configuración del BIOS" (BCU [17] ) o "utilidad de configuración del BIOS", a la que se accedía al encender el sistema mediante una secuencia de teclas particular. 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ú interactivo controlado a través del teclado. En el período intermedio, las PC compatibles con IBM (incluida la IBM AT ) guardaban los valores de configuración en una memoria RAM respaldada por batería y utilizaban un programa de configuración de arranque en un disquete, no en la ROM, para establecer las opciones de configuración contenidas en esta memoria. El disquete se suministraba con la computadora y, si se perdía, no era posible cambiar los valores del sistema. Lo mismo se aplicaba en general a las computadoras con un bus EISA , para las cuales el programa de configuración se denominaba Utilidad de configuración EISA (ECU).

Una computadora moderna compatible con Wintel ofrece una rutina de configuración que no ha cambiado mucho con respecto a las utilidades de configuración de BIOS residentes en la ROM de fines de los años 90; el usuario puede configurar las opciones de hardware mediante el teclado y la pantalla de video. La máquina Wintel moderna puede almacenar los ajustes de configuración de BIOS en una ROM flash, tal vez la misma ROM flash que contiene la BIOS misma.

Extensiones (ROM opcionales)

Las tarjetas periféricas, como los adaptadores de bus de host de unidad de disco duro y las tarjetas de vídeo, tienen su propio firmware, y el código de ROM opcional de extensión de BIOS puede ser parte del firmware de la tarjeta de expansión; ese código proporciona capacidades adicionales en el BIOS. El código en las ROM opcionales se ejecuta antes de que el BIOS arranque el sistema operativo desde el almacenamiento masivo . Estas ROM normalmente prueban e inicializan el hardware, añaden nuevos servicios de BIOS o sustituyen los servicios de BIOS existentes por sus propios servicios. Por ejemplo, un controlador SCSI suele tener una ROM de extensión de BIOS que añade compatibilidad con discos duros conectados a través de ese controlador. Una ROM de extensión podría, en principio, contener el sistema operativo, o podría implementar un proceso de arranque totalmente diferente, como el arranque en red . El funcionamiento de un sistema informático compatible con IBM se puede cambiar por completo quitando o insertando una tarjeta adaptadora (o un chip de ROM) que contenga una ROM de extensión de BIOS.

El 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, configurar punteros , establecer tablas de vectores de interrupción, [18] seleccionar modos de paginación que son formas de organizar registros disponibles en dispositivos, configurar valores predeterminados para acceder a rutinas de software relacionadas con interrupciones , [19] y configurar la configuración del dispositivo utilizando 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 propio BIOS (por ejemplo, BIOS de video ), que complementa o reemplaza el código BIOS del sistema para el componente dado. Incluso los dispositivos integrados en la placa base pueden comportarse de esta manera; sus ROM opcionales pueden ser parte del BIOS de la placa base.

Una tarjeta adicional requiere una ROM opcional si la tarjeta no es compatible con el BIOS de la placa base y la tarjeta necesita ser inicializada o hecha accesible a través de los servicios del BIOS antes de que se pueda cargar el sistema operativo (normalmente esto significa que es necesaria en el proceso de arranque). Una ventaja adicional de la ROM en algunos de los primeros sistemas de PC (entre ellos, el IBM PCjr, en particular) era que la ROM era más rápida que la RAM del sistema principal. (En los sistemas modernos, el caso es muy inverso y el código de la ROM del BIOS normalmente se copia ("se copia") en la RAM para que se ejecute más rápido).

Colocación física

Chips BIOS en una Dell 310 que se actualizaron reemplazando los chips

Las ROM opcionales normalmente residen en tarjetas adaptadoras. Sin embargo, el PC original, y quizás también el PC XT, tienen un zócalo de ROM adicional en la placa base (la "placa del sistema" en términos de IBM) en el que se puede insertar una ROM opcional, y las cuatro ROM que contienen el intérprete BASIC también se pueden quitar y reemplazar con ROM personalizadas que pueden ser ROM opcionales. El IBM PCjr es único entre los PC al tener dos ranuras para cartuchos ROM en el frente. Los cartuchos en estas ranuras se asignan a la misma región del área de memoria superior utilizada para ROM opcionales, y los cartuchos pueden contener módulos ROM opcionales que el 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 PCjr puede contener varios módulos ROM de diferentes tipos, posiblemente almacenados juntos en un chip ROM.

Operación

Inicio del sistema

Los procesadores 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 80386 y x86 posteriores comienzan en la dirección física FFFFFFF0h. [23] [24] [25] Cuando se inicializa el sistema, la primera instrucción del BIOS aparece en esa dirección.

Si el sistema acaba de encenderse o se presionó el botón de reinicio (" arranque en frío "), se ejecuta la prueba automática de encendido (POST) completa. Si se presionó Ctrl+Alt+Supr (" arranque en caliente "), un valor de indicador especial almacenado en la memoria no volátil del BIOS (" CMOS ") probado por el BIOS permite omitir la prolongada prueba automática de encendido (POST) y la detección de memoria.

El POST identifica, prueba e inicializa dispositivos del sistema como la CPU , el chipset , la RAM , la placa base , la tarjeta de video , el teclado , el mouse , la unidad de disco duro , la unidad de disco óptico y otro hardware , incluidos los periféricos integrados .

Las primeras IBM PC 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 pensada para pruebas de fábrica o fines de diagnóstico.

Una vez que el BIOS de la placa base completa su POST, la mayoría de las versiones del BIOS buscan módulos de ROM opcionales, también llamados ROM de extensión del BIOS, y los ejecutan. El BIOS de la placa base escanea en busca de ROM de extensión en una parte del " área de memoria superior " (la parte del espacio de direcciones de modo real x86 en la dirección 0xA0000 y superior) y ejecuta cada ROM que encuentra, en orden. Para descubrir ROM de opción asignadas a memoria, una implementación del BIOS escanea el espacio de direcciones de modo real desde 0x0C0000hasta los límites 0x0F0000de 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 la cantidad de bloques de 512 bytes que ocupa la ROM de expansión 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 comprobación válida, el BIOS transfiere el control a la dirección de entrada, que en una ROM de extensión del 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 que los usen las aplicaciones posteriores al arranque. Puede usar servicios del BIOS (incluidos los que brindan las ROM de opción inicializadas previamente) para proporcionar una interfaz de configuración de usuario, mostrar información de diagnóstico o hacer cualquier otra cosa que necesite.

Una ROM opcional normalmente debería regresar al BIOS después de completar su proceso de inicialización. Una vez que una ROM opcional regresa (y si lo hace), el BIOS continúa buscando más ROM opcionales, invocando cada una a medida que las encuentra, hasta que se haya escaneado toda el área de ROM opcional en el espacio de memoria. Es posible que una ROM opcional no regrese al BIOS, lo que evitaría por completo la secuencia de arranque del BIOS.

Proceso de arranque

Proceso de arranque

Una vez finalizada la POST y, en un BIOS que admita ROM opcionales, una vez finalizado el escaneo de ROM opcionales y se hayan llamado todos los módulos de ROM detectados con sumas de comprobación válidas , el BIOS llama a la interrupción 19h para iniciar el procesamiento de arranque. Después del 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 asincrónicos que puedan interferir con el proceso de reinicio del BIOS, o de lo contrario el sistema puede bloquearse o bloquearse mientras se reinicia.

Cuando se llama a la interrupción 19h, el 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 otorga el control de la PC. [28]

El BIOS utiliza los dispositivos de arranque configurados en la memoria no volátil del BIOS ( CMOS ) o, en las primeras PC, interruptores DIP . El BIOS comprueba cada dispositivo para ver si es arrancable intentando cargar el primer sector ( sector de arranque ). Si no se puede leer el sector, el BIOS procede al siguiente dispositivo. Si el sector se lee correctamente, algunos BIOS también comprobarán 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. [b]

Cuando se encuentra un dispositivo de arranque, el BIOS transfiere el control al sector cargado. El BIOS no interpreta el contenido del sector de arranque, salvo para comprobar la firma del sector de arranque en los dos últimos bytes. La interpretación de las estructuras de datos, como las tablas de particiones y los bloques de parámetros del BIOS, la realiza el programa de arranque en el propio sector de arranque o mediante otros programas cargados a través del proceso de arranque.

Un dispositivo que no es un disco, como un adaptador de red, intenta arrancar mediante un procedimiento definido por su ROM opcional o el equivalente integrado en la ROM BIOS de la placa base. Por lo tanto, las ROM opcionales 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 en realidad un disquete de alta densidad de 3,5" en el BIOS para fines de arranque. Leer el "primer sector" de un CD-ROM o DVD-ROM no es una operación definida de manera sencilla como lo es en un disquete o un disco duro. Además, la complejidad del medio dificulta la escritura de un programa de arranque útil en un sector. El disquete virtual de arranque puede contener software que proporcione acceso al medio óptico en su formato nativo.

Si una ROM de expansión desea cambiar la forma en que arranca el 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 del BIOS (BBS) para registrar su capacidad para hacerlo. Una vez que las ROM de expansión se han registrado utilizando las API de BBS, el usuario puede seleccionar entre las opciones de arranque disponibles desde la interfaz de usuario del BIOS. Por este motivo, la mayoría de las implementaciones de BIOS para PC compatibles con BBS no permiten al usuario entrar en la interfaz de usuario del BIOS hasta que las ROM de expansión hayan terminado de ejecutarse y registrarse con la API de BBS. [ cita requerida ]

Además, si una ROM de expansión desea cambiar la forma en que el sistema arranca unilateralmente, puede simplemente enganchar la interrupción 19h u otras interrupciones normalmente llamadas 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 puede modificar la secuencia de arranque insertando sus propias acciones de arranque en ella, evitando 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 por la BIOS nativa de la placa base. [ cita requerida ]

Prioridad de arranque

El usuario puede seleccionar la prioridad de arranque implementada por el BIOS. Por ejemplo, la mayoría de las computadoras tienen un disco duro que es arrancable, pero a veces hay una unidad de medios extraíbles que tiene una prioridad de arranque más alta, por lo que el usuario puede hacer que se arranque un disco extraíble.

En la mayoría de los BIOS modernos, el usuario puede configurar el orden de prioridad de arranque. En los BIOS más antiguos, se pueden seleccionar opciones de prioridad de arranque limitadas; en los primeros BIOS, se implementó un esquema de prioridad fijo, con las unidades de disquete primero, los discos fijos (es decir, los discos duros) en segundo lugar y, por lo general, no se admitían otros dispositivos de arranque, sujetos a la modificación de estas reglas por parte de las ROM opcionales instaladas. El BIOS de una PC antigua también solía arrancar solo desde la primera unidad de disquete o la primera unidad de disco duro, incluso si había dos unidades instaladas.

Fallo de arranque

En la IBM PC y la XT originales, si no se encontraba ningún disco de arranque, la BIOS intentaba iniciar ROM BASIC con la llamada de interrupción a la interrupción 18h . Como pocos programas usaban BASIC en ROM, los fabricantes de PC clónicos lo omitieron; entonces, una computadora que no pudiera arrancar desde un disco mostraría "No ROM BASIC" y se detendría (en respuesta a la interrupción 18h).

Las computadoras posteriores mostraban un mensaje como "No se encontró ningún disco de arranque"; algunas solicitaban que se insertara un disco y se presionara una tecla para volver a intentar el proceso de arranque. Un BIOS moderno puede no mostrar nada o puede ingresar automáticamente a la utilidad de configuración del BIOS cuando falla el proceso de 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 tienen realmente no están bien definidos. Algunas BIOS utilizan una CS:IP de 0x0000:0x7C00mientras que otras pueden utilizar 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 soportar interrupciones de hardware, pero de lo contrario SS y SP no están definidos. (Una pila debe estar ya configurada para que se puedan atender las interrupciones, y las interrupciones deben estar habilitadas para que la interrupción del temporizador del sistema, que el BIOS siempre utiliza al menos para mantener el recuento de la hora del día y que inicializa durante la POST, esté activa y para que el teclado funcione. El teclado funciona incluso si no se llama al servicio de teclado del BIOS; las pulsaciones de teclas se reciben y se colocan en el búfer de escritura anticipada de 15 caracteres mantenido por el BIOS). El programa de arranque debe configurar su propia pila, porque el tamaño de la pila configurada por el BIOS es desconocido 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 más corto simplemente configurar incondicionalmente una nueva pila. [30]

En el momento del arranque, todos los servicios del BIOS están disponibles y la memoria que se encuentra debajo de la dirección 0x00400contiene la tabla de vectores de interrupción . La POST del BIOS ha inicializado los temporizadores del sistema, los controladores de interrupción, los controladores 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 la memoria convencional y la memoria extendida, pero no necesariamente en la 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 que apunten a los puntos de entrada adecuados en el BIOS, los vectores de interrupción de hardware para los dispositivos inicializados por el BIOS se han configurado para que apunten a los ISR proporcionados por el BIOS y algunas otras interrupciones, incluidas las que genera el BIOS para que los programas las conecten, se han configurado para un ISR ficticio predeterminado que regresa inmediatamente. El BIOS mantiene un bloque reservado de RAM del sistema en direcciones 0x00400–0x004FFcon varios parámetros inicializados durante la POST. El programa de arranque puede utilizar toda la memoria en la dirección y por encima de ella 0x00500; incluso puede sobrescribirse a sí mismo. [31] [32]

Servicios del sistema operativo

La ROM del BIOS está personalizada para el hardware del fabricante en particular, lo que permite que se proporcionen servicios de bajo nivel (como leer una pulsación de tecla o escribir un sector de datos en un disquete) de manera estandarizada a los programas, incluidos los sistemas operativos. Por ejemplo, una IBM PC 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 estándar del sistema BIOS para mostrar un carácter en una posición específica de la pantalla en modo de texto o en modo gráfico .

El 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 utilizar MS-DOS, se puede acceder a los servicios del BIOS mediante un programa de aplicación (o mediante MS-DOS) ejecutando una instrucción de interrupción 13h para acceder a las funciones del disco, o ejecutando una de varias otras llamadas de interrupción del BIOS documentadas para acceder a la pantalla de video , el teclado , el casete y otras funciones del dispositivo.

Los sistemas operativos y el software ejecutivo que están 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 proporcionarse estos servicios a sí mismas. Esto comenzó incluso en la década de 1980 bajo MS-DOS , cuando los programadores observaron que el uso de los servicios de video del BIOS para la visualización de gráficos era muy lento. Para aumentar la velocidad de salida de pantalla, muchos programas pasaron por alto el BIOS y programaron el hardware de visualización de video directamente. Otros programadores gráficos, particularmente pero no exclusivamente en la escena de demostración , observaron que existían capacidades técnicas de los adaptadores de pantalla de PC que no eran compatibles con el BIOS de IBM y que no se podían aprovechar sin eludirlo. Dado que el 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 la operación en modo protegido para reemplazar los servicios del BIOS.

En las PC modernas que ejecutan sistemas operativos modernos (como Windows y Linux ), las llamadas de interrupción de la BIOS se utilizan solo durante el arranque y la carga inicial de los sistemas operativos. Antes de que se muestre la primera pantalla gráfica del sistema operativo, la entrada y la salida se manejan normalmente a través de la BIOS. Un menú de arranque como el menú textual de Windows, que permite a los usuarios elegir un sistema operativo para arrancar, arrancar en modo seguro o usar la última configuración buena conocida, se muestra a través de la BIOS y recibe la entrada del teclado a través de la BIOS. [4]

Muchas PC modernas aún pueden arrancar y ejecutar sistemas operativos heredados como MS-DOS o DR-DOS que dependen en gran medida del BIOS para su consola y E/S de disco, siempre que el sistema tenga un BIOS o un firmware UEFI con capacidad para CSM.

Actualizaciones del microcódigo del procesador

Los procesadores Intel tienen microcódigo reprogramable desde la microarquitectura P6 . [33] [34] [35] 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 del procesador; el microcódigo se carga en la SRAM del procesador , por lo que la reprogramación no es persistente, por lo que la carga de actualizaciones del microcódigo se realiza cada vez que se enciende el sistema. Sin microcódigo reprogramable, se requeriría un costoso cambio de procesador; [36] por ejemplo, el error FDIV del Pentium se convirtió en un fiasco costoso para Intel, ya que requirió un retiro del producto porque el microcódigo defectuoso del procesador Pentium original no podía reprogramarse. Los sistemas operativos también pueden actualizar el microcódigo del procesador principal . [37] [38]

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 del equipo original (OEM), por ejemplo Dell . La SLIC se inserta en la tabla de datos ACPI y no contiene código activo. [39] [40]

Los fabricantes de computadoras que distribuyen versiones OEM de Microsoft Windows y software de aplicación de Microsoft pueden usar el SLIC para autenticar la licencia en el disco de instalación OEM de Windows y el disco de recuperación del sistema que contiene el software de Windows. Los sistemas con un SLIC se pueden preactivar con una clave de producto OEM y verifican un certificado OEM con formato XML contra el SLIC en el BIOS como un medio de autoactivación (consulte Preinstalación bloqueada del sistema , SLP). Si un usuario realiza una nueva instalación de Windows, necesitará tener posesión tanto de la clave OEM (ya sea SLP o COA) como del certificado digital para su SLIC para evitar la activación. [39] Esto se puede lograr si el usuario realiza una restauración utilizando una imagen personalizada previamente 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 más alta que la especificada por el fabricante para garantizar la capacidad. Sin embargo, el overclocking puede comprometer seriamente la confiabilidad del sistema en computadoras con una refrigeración insuficiente y, en general, acortar la vida útil de los componentes. El overclocking, cuando se realiza incorrectamente, también puede hacer que los componentes se sobrecalienten tan rápido que se destruyan mecánicamente. [41]

Uso moderno

Algunos sistemas operativos más antiguos , por ejemplo MS-DOS , dependen del BIOS para realizar la mayoría de las tareas de entrada/salida dentro de la PC. [42]

Llamar directamente a los servicios del BIOS en modo real es ineficiente para los sistemas operativos en modo protegido (y modo largo ). Los sistemas operativos multitarea modernos no utilizan las llamadas de interrupción del BIOS después de la carga inicial.

En la década de 1990, la BIOS proporcionó algunas interfaces de modo protegido para Microsoft Windows y sistemas operativos similares a 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. [43] [44] [45] [46] [47]

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 una interfaz de usuario integrada. Las versiones de BIOS de los PC anteriores (clase XT) no se podían configurar mediante software; en su lugar, los usuarios configuraban las opciones mediante interruptores DIP en la placa base. Las computadoras posteriores, incluidas todas las IBM compatibles con CPU 80286, tenían una memoria BIOS no volátil respaldada por batería (chip CMOS RAM) que contenía las configuraciones de BIOS. [48] Estas configuraciones, como el tipo de adaptador de video, el tamaño de la memoria y los parámetros del disco duro, solo se podían configurar 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 configuraciones como el tamaño de la memoria. [49]

Las primeras versiones del BIOS no tenían contraseñas ni opciones de selección de dispositivos de arranque. El BIOS estaba programado 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 anular si se podía abrir la carcasa del ordenador). Cualquiera que pudiera encender el ordenador podía arrancarlo. [ cita requerida ]

Más tarde, las computadoras de la clase 386 comenzaron a integrar la utilidad de configuración del BIOS en la propia ROM, junto con el código del BIOS; estas computadoras generalmente arrancan en la utilidad de configuración del BIOS si se presiona una determinada tecla o combinación de teclas, de lo contrario se ejecutan el POST del BIOS y el proceso de arranque.

Utilidad de configuración del BIOS de Award en una PC estándar

Una utilidad de configuración de BIOS moderna tiene una interfaz de usuario de texto (TUI) o una interfaz de usuario gráfica (GUI) a la que se accede presionando una tecla determinada en el teclado cuando se inicia la PC. Por lo general, la tecla se anuncia durante un breve período durante el inicio inicial, por ejemplo, "Presione DEL para ingresar a la configuración".

La tecla real depende del hardware específico. La tecla de configuración más común es 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 ). [50]

Las características presentes en la utilidad de configuración del BIOS generalmente incluyen:

  • Configurar, habilitar y deshabilitar los componentes de hardware
  • Configuración de la hora del sistema
  • Establecer 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 inicien el sistema desde dispositivos de almacenamiento portátiles no autorizados, o una contraseña para iniciar el sistema

Monitoreo de hardware

Una pantalla de configuración del BIOS moderna a menudo presenta un Estado de salud de la PC o una pestaña de Monitoreo de hardware , que interactúa directamente con un chip de Monitoreo de hardware de la placa base. [51] Esto hace posible monitorear la temperatura de la CPU y el chasis , el voltaje proporcionado por la unidad de fuente de alimentación , así como monitorear y controlar la velocidad de los ventiladores conectados a la placa base.

Una vez que se inicia el sistema, la monitorización del hardware y el control del ventilador de la computadora normalmente se realizan directamente por el propio chip de monitorización de hardware, que puede ser un chip separado, interconectado a través de I²C o SMBus , o venir como parte de una solución Super I/O , interconectada a través de la Arquitectura estándar de la industria (ISA) o Low Pin Count (LPC). [52] 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, el 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 usando ACPI para realizar la monitorización del hardware. [53] [54]

Reprogramación

Kit de reemplazo de BIOS para una Dell 310 de finales de la década de 1980. Se incluyen dos chips, un soporte de plástico para los chips y un extractor de IC .

En los ordenadores modernos, la BIOS se almacena en una memoria EEPROM regrabable [55] o en una memoria flash NOR [56] , lo que permite reemplazar y modificar el contenido. Esta reescritura del contenido a veces se denomina flasheo. Puede realizarse mediante un programa especial, normalmente proporcionado por el fabricante del sistema, o en POST , con una imagen de la BIOS en un disco duro o una unidad flash USB. Un archivo que contiene dicho contenido a veces se denomina "imagen de la BIOS". Una BIOS puede ser flasheada para actualizarla a una versión más nueva para corregir errores o proporcionar un rendimiento mejorado o para admitir hardware más nuevo. Algunas computadoras también admiten la actualización de la BIOS a través de un disquete de actualización o una partición especial en el disco duro. [57]

Hardware

BIOS 686 de American Megatrends . Este chip BIOS está alojado en un paquete PLCC en un zócalo.

El BIOS original de IBM PC (y el BASIC en cassette) se almacenaba en chips de memoria de solo lectura (ROM) programados con máscara en zócalos de la placa base. Los usuarios podían reemplazar las ROM, [58] pero no alterarlas. Para permitir actualizaciones, muchas computadoras compatibles usaban dispositivos de memoria BIOS reprogramables como EPROM , EEPROM y dispositivos de memoria flash posteriores (generalmente flash NOR ). Según Robert Braver, presidente del fabricante de BIOS Micro Firmware, los chips Flash BIOS se volvieron comunes alrededor de 1995 porque los chips PROM borrables eléctricamente (EEPROM) son más baratos y más fáciles de programar que los chips PROM borrables ultravioleta ( EPROM ) estándar. Los chips Flash se programan (y reprograman) en el circuito, mientras que los chips EPROM deben retirarse de la placa base para reprogramarlos. [59] Las versiones de BIOS se actualizan para aprovechar las versiones más nuevas de hardware y corregir errores en revisiones anteriores de BIOS. [60]

A partir del IBM AT, las PC admitían un reloj de hardware configurable a través del BIOS. Tenía un bit de siglo que permitía cambiar manualmente el siglo cuando llegaba el año 2000. La mayoría de las revisiones del BIOS creadas en 1995 y casi todas las revisiones del BIOS en 1997 admitían el año 2000 configurando el bit del siglo automáticamente cuando el reloj pasaba de la medianoche del 31 de diciembre de 1999. [61]

Los primeros chips flash se conectaron al bus ISA . A partir de 1998, la memoria flash de la BIOS se trasladó al bus LPC , siguiendo una nueva implementación estándar conocida como "firmware hub" (FWH). En 2005, la memoria flash de la BIOS se trasladó al bus SPI . [62]

El tamaño de la BIOS y la capacidad de la ROM, EEPROM u otros medios en los que se puede almacenar ha aumentado con el tiempo a medida que se han añadido nuevas características al código; ahora existen versiones de la BIOS con tamaños de hasta 32 megabytes. En contraste, 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 a bordo que son capaces de almacenar sistemas operativos compactos completos, como algunas distribuciones de Linux . Por ejemplo, algunas portátiles ASUS incluían Splashtop OS integrado en sus circuitos integrados de memoria flash NAND. [63] Sin embargo, la idea de incluir un sistema operativo junto con la BIOS en la ROM de una 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 .

En el IBM PC AT y en los primeros compatibles se encontró otro tipo de chip de firmware. 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 que se parecía a una EPROM. A este controlador también se le asignó la función de compuerta A20 para gestionar la memoria por encima del rango de un megabyte; ocasionalmente era necesaria una actualización de este "BIOS del teclado" para aprovechar el software que podía utilizar la memoria superior. [ cita requerida ]

El 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, inicialización de SPD y tiempos de memoria ). [64] : 8  [65]

El BIOS moderno [66] incluye el firmware del procesador Intel Management Engine o AMD Platform Security .

Proveedores y productos

Comparación de diferentes implementaciones de BIOS
CompañíaPremioBIOSAMIBIOSDentroSeaBIOS
LicenciaPropiedadPropiedadPropiedadLicencia LGPL versión 3
Mantenido / desarrolladoFinalizadoFinalizadoFinalizado
Llamadas de BIOS PCI de 32 bits
AHCI
APM(1.2)(1.2)
BBS
Menú de arranque
Compresión( LHA [67] )(LHA)(RLE)(LZMA)
CMOS
Fecha límite de entrega del día
ESCD?No
Flash desde ROM??No
IdiomaAsambleaAsambleaAsambleado
Asociación de Abogados Locales(48)(48)(48)
Especificación de multiprocesador
ROM opcional
ContraseñaNo
PMM??
Pantalla de configuraciónNo
Sistema de archivos SMBIOS
Pantalla de bienvenida(EPA) [68]( PCX )(BMP, JPG)
TPMDesconocidoDesconocidoDesconocidoAlguno
Arranque USB
Concentrador USB???
Teclado USB
Ratón USB

IBM publicó las listas completas de BIOS para su PC original, 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. El efecto de la publicación de las listas de BIOS es que cualquiera puede ver exactamente qué hace un BIOS definitivo y cómo lo hace.

BIOS de la computadora portátil Compaq 386

En mayo de 1984, Phoenix Software Associates lanzó su primer ROM-BIOS, que permitió a los OEM construir clones esencialmente totalmente compatibles sin tener que realizar ingeniería inversa del BIOS del IBM PC, como lo había hecho Compaq para el Portable , lo que ayudó a impulsar el crecimiento de la industria de los PC compatibles y las ventas de versiones de DOS que no eran de IBM. [69] El primer BIOS American Megatrends (AMI) se lanzó en 1986.

Los nuevos estándares que se incorporan al BIOS normalmente no cuentan con documentación pública completa ni con listados del BIOS. Como resultado, no es tan fácil conocer los detalles íntimos de las numerosas incorporaciones al BIOS que no son de IBM como los de los servicios básicos del BIOS.

Muchos proveedores de placas base para PC obtuvieron la licencia del "núcleo" y el kit de herramientas de la BIOS de un tercero comercial, conocido como "proveedor independiente de BIOS" o IBV. Luego, el fabricante de la placa base personalizó esta BIOS para que se adaptara a su propio hardware. Por este motivo, las BIOS actualizadas normalmente se obtienen directamente del fabricante de la placa base. Los principales IBV incluyeron American Megatrends (AMI), Insyde Software , Phoenix Technologies y Byosoft. Microid Research y Award Software fueron adquiridos por Phoenix Technologies en 1998; Phoenix luego eliminó gradualmente la marca Award (aunque Award Software aún se acredita en las versiones más nuevas de AwardBIOS y en los firmwares UEFI). [ ¿cuándo? ] General Software , que también fue adquirida por Phoenix en 2007, vendió BIOS para sistemas integrados basados ​​en procesadores Intel.

SeaBIOS es una implementación de BIOS de código abierto.

Reemplazos 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 encarnaciones con contrapartes de código abierto. Open Firmware fue un intento temprano de hacer 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. [70] [71] 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 con su línea de placas base Opteron .

Seguridad

Gigabyte DualBIOS PLCC32
Un chip BIOS desprendido

Los chips de memoria flash y EEPROM son ventajosos porque pueden ser actualizados fácilmente por el usuario; es habitual que los fabricantes de hardware publiquen actualizaciones de BIOS para actualizar sus productos, mejorar la compatibilidad y eliminar errores . Sin embargo, esta ventaja tenía el riesgo de que una actualización de BIOS ejecutada incorrectamente o abortada pudiera dejar inutilizable la computadora o el dispositivo. 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 (usando sumas de comprobación hash u otros métodos) antes de transferirle el control. Si el bloque de arranque detecta alguna corrupción en la BIOS principal, generalmente advertirá al usuario que se debe iniciar un proceso de recuperación iniciando desde un medio extraíble (disquete, CD o unidad flash USB) para que el usuario pueda intentar actualizar la BIOS nuevamente. Algunas placas base tienen una BIOS de respaldo (a veces denominadas placas DualBIOS) para recuperarse de las corrupciones de la BIOS.

Existen al menos cinco virus conocidos que atacan la BIOS. Dos de ellos tenían fines demostrativos. El primero que se encontró en circulación fue Mebromi , que atacaba a los usuarios chinos.

El primer virus de la BIOS fue el BIOS Meningitis, que en lugar de borrar los chips de la BIOS, los infectaba. El BIOS Meningitis era relativamente inofensivo, comparado con un virus como el CIH .

El segundo virus de la BIOS fue el CIH , también conocido como el "virus Chernobyl", que era capaz de borrar el contenido de la BIOS de la ROM flash en chipsets compatibles. El CIH apareció a mediados de 1998 y se activó en abril de 1999. A menudo, los ordenadores infectados ya no podían arrancar y la gente tenía que quitar el IC de la ROM flash de la placa base y reprogramarlo. El CIH tenía como objetivo el chipset de la placa base Intel i430TX, muy extendido en aquel momento, y se aprovechó del hecho de que los sistemas operativos Windows 9x , también muy extendidos en aquella época, permitían el acceso directo del hardware a todos los programas.

Los sistemas modernos no son vulnerables a CIH debido a una variedad de conjuntos de chips que se utilizan que son incompatibles con el conjunto de chips Intel i430TX y también otros tipos de IC de ROM flash. También hay protección adicional contra reescrituras accidentales de BIOS en forma de bloques de arranque que están protegidos contra sobrescrituras accidentales o sistemas equipados con BIOS dual y cuádruple que pueden, en caso de falla, usar un BIOS de respaldo. Además, todos los sistemas operativos modernos como FreeBSD , Linux , macOS , Windows NT -based Windows OS como Windows 2000 , Windows XP y más nuevos, no permiten que los programas en modo usuario tengan acceso directo al hardware usando una capa de abstracción de hardware . [72]

Como resultado, a partir de 2008, CIH se ha vuelto esencialmente inofensivo, en el peor de los casos causando molestias al infectar archivos ejecutables y activar el software antivirus. Sin embargo, otros virus de BIOS siguen siendo posibles; [73] 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 administrativos, un virus moderno similar a CIH podría, en principio, obtener acceso al hardware sin usar primero un exploit. [ cita requerida ] 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 es que un atacante requiere un exploit a nivel de kernel mucho más difícil o reiniciar la máquina. [ cita requerida ]

El tercer virus de la 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 los privilegios y leer la memoria física, utilizando procedimientos maliciosos que reemplazaban las funciones ACPI normales almacenadas en la memoria flash. [74]

El cuarto virus de la BIOS fue una técnica llamada "infección persistente de la BIOS". Apareció en 2009 en la Conferencia de Seguridad CanSecWest en Vancouver y en la Conferencia de Seguridad SyScan en Singapur. Los investigadores Anibal Sacco [75] 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 permite un control casi total del PC al inicio, incluso antes de que se inicie el sistema operativo. La prueba de concepto no explota un fallo en la implementación de la BIOS, sino que solo implica 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 eliminar un rootkit que funcione completamente . Incluso tenemos un pequeño código que puede eliminar o desactivar el antivirus". [76]

Mebromi es un troyano que ataca a computadoras con AwardBIOS , Microsoft Windows y software antivirus de dos compañías chinas: Rising Antivirus y Jiangmin KV Antivirus. [77] [78] [79] 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 Estados Unidos , afirmó que la NSA había descubierto y frustrado un posible ataque BIOS por parte de un estado nacional extranjero, dirigido al sistema financiero estadounidense. [80] El programa citó fuentes anónimas que alegaron que era un complot chino. [80] Sin embargo, artículos de seguimiento en The Guardian , [81] The Atlantic , [82] Wired [83] y The Register [84] refutaron las afirmaciones de la NSA.

Las plataformas Intel más nuevas tienen habilitada la tecnología Intel Boot Guard (IBG), que verifica la firma digital del BIOS al iniciarse y la clave pública de IBG se fusiona con el PCH . Los usuarios finales no pueden deshabilitar esta función.

Alternativas y sucesores

La Interfaz de Firmware Extensible Unificada (UEFI) complementa el BIOS en muchas máquinas nuevas. Inicialmente escrita para la arquitectura Intel Itanium , la UEFI ahora está disponible para plataformas x86 y Arm ; el desarrollo de la especificación está impulsado por el Foro Unificado EFI , un grupo de interés especial de la industria . El arranque EFI ha sido compatible solo con las versiones de Microsoft Windows que admiten GPT , [85] el kernel de Linux 2.6.1 y posteriores, y macOS en Mac basados ​​en Intel . [86] A partir de 2014 [actualizar], el nuevo hardware de PC se entrega predominantemente con firmware UEFI. La arquitectura de la protección de rootkit también puede evitar que el sistema ejecute los cambios de software propios del usuario, lo que hace que la UEFI sea controvertida como reemplazo del BIOS heredado en la comunidad de hardware abierto . Además, Windows 11 requiere UEFI para arrancar, [87] con la excepción de las ediciones IoT Enterprise de Windows 11. [10] La UEFI es necesaria para los dispositivos que se envían con Windows 8 [88] [89] y superiores.

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 en las computadoras SPARC de Sun, la línea RS/6000 de IBM y otros sistemas PowerPC como las placas base CHRP , junto con la OLPC XO-1 basada en x86 .

Al menos desde 2015, Apple ha eliminado la compatibilidad con BIOS heredada del monitor UEFI en Macs basados ​​en Intel . Por ello, la utilidad BIOS ya no admite la opción heredada e imprime el mensaje "Modo heredado no compatible con este sistema".

En 2017, Intel anunció que eliminaría la compatibilidad con BIOS heredados para 2020. Desde 2019, las nuevas PC OEM de la plataforma Intel ya no admiten la opción heredada. [90]

Véase también

Notas

  1. ^ Aunque 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 .
  2. ^ La firma en el desplazamiento +0x1FEde los sectores de arranque es 0x55 0xAA, es decir, 0x55en el desplazamiento +0x1FEy 0xAAen el desplazamiento +0x1FF. Dado que se debe asumir la representación little-endian en el contexto de la compatibilidad con IBM PC , esto se puede escribir como una palabra de 16 bits 0xAA55en programas para procesadores x86 (observe el orden intercambiado), mientras que tendría que escribirse como 0x55AAen 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.

Referencias

  1. ^ "Ref — BIOS del sistema". PCGuide . Archivado desde el original el 21 de diciembre de 2014 . Consultado el 6 de diciembre de 2014 .
  2. ^ abc Kildall, Gary Arlen (junio de 1975), BIOS y BDOS CP/M 1.1 o 1.2 para Lawrence Livermore Laboratories
  3. ^ abc 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, No. 1, Número 41 ed.). Dr. Dobb's Journal of Computer Calisthenics & Orthodontia. págs. 6-7. Archivado desde el original el 24 de noviembre de 2016. Consultado el 3 de junio de 2013 .
  4. ^ ab "Arrancando · Linux Inside". 0xax.gitbooks.io . Consultado el 10 de noviembre de 2020 .
  5. ^ ab Bradley, Tony. "RIP BIOS: A UEFI Primer". PCWorld . Archivado desde el original el 2014-01-27 . Consultado el 2014-01-27 .
  6. ^ "Interfaz de firmware extensible unificada". Intel .
  7. ^ "UEFI". OSDev.org .
  8. ^ "Especificación del módulo de soporte de compatibilidad con EFI para el marco de innovación de la plataforma Intel® (revisión 0.97)" (PDF) . Intel. 4 de septiembre de 2007. Consultado el 6 de octubre de 2013 .
  9. ^ "Aviso técnico sobre la eliminación de la compatibilidad con arranque heredado para plataformas Intel" . Consultado el 25 de julio de 2024 .
  10. ^ ab "Requisitos mínimos del sistema para Windows IoT Enterprise". Microsoft Learn . 2024-05-22 . Consultado el 2024-06-07 .
  11. ^ Swaine, Michael (1 de abril de 1997). "Gary Kildall y el espíritu emprendedor colegial". Diario del Dr. Dobb . Archivado desde el original el 24 de enero de 2007. Consultado el 20 de noviembre de 2006 .
  12. ^ ab "IEEE Milestone in Electrical Engineering and Computing - CP/M - Microcomputer Operating System, 1974" (PDF) . Museo de Historia de la Computación . 2014-04-25. Archivado (PDF) desde el original el 2019-04-03 . Consultado el 2019-04-03 .
  13. ^ Shustek, Len (2 de agosto de 2016). "En sus propias palabras: Gary Kildall". Personas notables . Museo de Historia de la Computación . Archivado desde el original el 17 de diciembre de 2016.
  14. ^ Killian, A. Joseph "Joe" (2001). "CP/M de Gary Kildall: algunos antecedentes del CP/M - 1976-1977". Thomas "Todd" Fischer , IMSAI . Archivado desde el original el 29 de diciembre de 2012. Consultado el 3 de junio de 2013 .
  15. ^ 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 desde el original (PDF) el 14 de julio de 2014. Consultado el 3 de junio de 2013 .
  16. ^ Glass, Brett (1989). "El BIOS de IBM PC". Byte : 303–310 . Consultado el 31 de diciembre de 2021 .
  17. ^ "Utilidad de configuración del BIOS de HP". Hewlett-Packard . 2013. Archivado desde el original el 12 de enero de 2015 . Consultado el 12 de enero de 2015 .
  18. ^ Phoenix Technologies, Ltd. (junio de 1991). BIOS del sistema para IBM PC, compatibles y computadoras EISA: la guía completa para el software del sistema basado en ROM . Phoenix Technical Reference Series (segunda edición). Ámsterdam: Addison Wesley Publishing Company, Inc. ISBN  0-201-57760-7.
  19. ^ Phoenix Technologies, Ltd. (1989) [1987]. BIOS del sistema para computadoras IBM PC/XT/AT y compatibles: la guía completa para el software del sistema basado en ROM. Serie de referencia técnica de Phoenix (1.ª ed.). Addison Wesley Publishing Company, Inc. ISBN  0-201-51806-6.
  20. ^ 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.
  21. ^ "iAPX 86,88 User's Manual" (PDF) . Intel . 1981. System Reset, p. 2-29, tabla 2-4 . Consultado el 15 de abril de 2018 .
  22. ^ "Hoja de datos del procesador AMD 80286" (PDF) . AMD . 1985. p. 13. El 286 comienza la ejecución en modo real con la instrucción en la ubicación física FFFFF0H.
  23. ^ "80386 Programmer's Reference Manual" (PDF) . Intel. 1990. Sección 10.1 Estado del procesador después del reinicio, páginas 10-1 - 10.3.
  24. ^ "80386 Programmer's Reference Manual" (PDF) . Intel. 1990. Sección 10.2.3 Primera instrucción, pág. 10-4 . Consultado el 3 de noviembre de 2013 . La ejecución comienza con la instrucción a la que se dirige el contenido inicial 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.
  25. ^ "Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32" (PDF) . Intel. Mayo de 2012. Sección 9.1.4 Primera instrucción ejecutada, pág. 2611. Archivado desde el original (PDF) el 8 de agosto de 2012. Consultado 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 superior del procesador. La EPROM que contiene el código de inicialización del software debe estar ubicada en esta dirección.
  26. ^ página 5-27 IBM Personal Computer Hardware Reference Library Technical Reference , 1984, número de publicación 6361459
  27. ^ "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) desde el original el 2014-12-11 . Consultado el 2014-12-11 .
  28. ^ Cómo funciona StuffWorks: qué hace el BIOS Archivado el 7 de febrero de 2008 en Wayback Machine .
  29. ^ Akeljic, Bekir (1 de enero de 2017). "BIOS BASIC INPUT/ OUTPUT SYSTEM BIOS FUNCTIONS AND MODIFICATIONS" (Funciones y modificaciones básicas del BIOS del sistema de entrada y salida) . BIOS : 12. Archivado desde el original el 8 de agosto de 2022. Consultado el 8 de agosto de 2022 a través de INTERNATIONAL UNIVERSITY TRAVNIKFACULITY OF INFORMATION TECHNOLOGY TRAVNIKSOFTWARE PROGRAMMING (Universidad Internacional de Travnik, facultad de tecnología de la información, Travnik).
  30. ^ "BIOS - CodeDocs". codedocs.org . Consultado el 8 de agosto de 2022 .
  31. ^ "Diseño de la memoria y mapa de la memoria". flint.cs.yale.edu . Consultado el 8 de agosto de 2022 .
  32. ^ "BIOS Data ACPI Table (BDAT)" (PDF) . Especificación de interfaz . 4 (5): 67. 2020. Archivado (PDF) desde el original el 2021-07-03 . Consultado el 2022-08-08 .
  33. ^ 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 .
  34. ^ Mueller, Scott (8 de junio de 2001). Actualización de procesadores | Tipos y especificaciones de microprocesadores. InformIT. Archivado desde el original el 16 de abril de 2014. Consultado el 15 de abril de 2014 .
  35. ^ "Archivo de datos del microcódigo del procesador Linux*". Centro de descargas . Downloadcenter.intel.com. 23 de septiembre de 2009. Archivado desde el original el 16 de abril de 2014. Consultado el 15 de abril de 2014 .
  36. ^ Scott Mueller, Actualización y reparación de PC, 15.ª edición , Que Publishing, 2003 ISBN 0-7897-2974-1 , páginas 109-110 
  37. ^ "KB4100347: actualizaciones del microcódigo de Intel". support.microsoft.com . Consultado el 20 de septiembre de 2020 .
  38. ^ "Microcódigo - Wiki de Debian". wiki.debian.org . Consultado el 19 de septiembre de 2020 .
  39. ^ ab "Cómo funcionan SLP y SLIC". guytechie.com . 2010-02-25. Archivado desde el original el 2015-02-03 . Consultado el 2015-02-03 .
  40. ^ "Crear y agregar un módulo de tabla OEM ACPI SLIC a un BIOS congatec" (PDF) . congatec.com . 2011-06-16. Archivado (PDF) desde el original el 2014-08-02 . Consultado el 2015-02-03 .
  41. ^ Whitson Gordon (13 de enero de 2014). "Introducción para principiantes al overclocking de procesadores Intel". Lifehacker . Gawker Media. Archivado desde el original el 7 de diciembre de 2014 . Consultado el 6 de diciembre de 2014 .
  42. ^ Artículo sobre computación inteligente: ¿Qué es la BIOS? Archivado el 10 de marzo de 2012 en Wayback Machine - Conceptos básicos de computación, julio de 1994 • Vol. 5, número 7
  43. ^ "¿Qué es ACPI (Interfaz avanzada de configuración y energía)? - Definición de WhatIs.com". SearchWindowsServer . Consultado el 18 de septiembre de 2020 .
  44. ^ "Cambiar 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 .
  45. ^ "¿Qué es ACPI?". www.spo-comm.de . Consultado el 18 de septiembre de 2020 .
  46. ^ lorihollasch. "Compatibilidad con sistemas sin interfaz gráfica: controladores de Windows". docs.microsoft.com . Consultado el 5 de diciembre de 2020 .
  47. ^ "Mapa de memoria (x86) - Wiki de OSDev". wiki.osdev.org . Consultado el 11 de diciembre de 2020 .
  48. ^ Torres, Gabriel (2004-11-24). "Introducción y batería de litio". Reemplazo de la batería de la placa base . hardwaresecrets.com. Archivado desde el original el 2013-12-24 . Consultado el 2013-06-20 .
  49. ^ Beales, RP (11 de agosto de 2006). Sistemas de PC, instalación y mantenimiento. Routledge. ISBN 978-1-136-37441-8.
  50. ^ "Cómo ingresar a la BIOS en cualquier PC: Teclas de acceso por fabricante". Tom's Hardware . 2022-02-04.
  51. ^ Constantine A. Murenin (21 de mayo de 2010). "11.1. Interconexión desde la BIOS". Sensores de hardware OpenBSD: monitoreo ambiental y control de ventiladores ( tesis de maestría ). Universidad de Waterloo : UWSpace. hdl :10012/5234. ID del documento: ab71498b6b1a60ff817b29d56997a418.
  52. ^ Constantine A. Murenin (17 de abril de 2007). "2. Revisión del 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 . pp. 901-906. doi :10.1109/ICNSC.2007.372901. ISBN . 978-1-4244-1076-7. IEEE ICNSC 2007, págs. 901—906.
  53. ^ "aibs – ASUSTeK AI Booster ACPI ATK0110 sensor de voltaje, temperatura y ventilador". OpenBSD , DragonFly BSD , NetBSD y FreeBSD . 2010.
  54. ^ "acpi_thermal(4)". www.freebsd.org . Consultado el 24 de febrero de 2021 .
  55. ^ Clarke, Glen E.; Tetz, Edward (30 de enero de 2007). Certificación CompTIA A+: guía de referencia integral para principiantes. John Wiley & Sons. ISBN 978-0-471-74811-3.
  56. ^ Micheloni, Rino; Crippa, Luca; Marelli, Alessia (27 de julio de 2010). Dentro de las Memorias Flash NAND. Saltador. ISBN 978-90-481-9431-5.
  57. ^ Mueller, Scott (2004). Actualización y reparación de PCS. Que. ISBN 978-0-7897-2974-3.
  58. ^ Clarke, Glen E.; Tetz, Edward (30 de enero de 2007). Certificación CompTIA A+: guía de referencia integral para principiantes. John Wiley & Sons. ISBN 978-0-471-74811-3.
  59. ^ "Decodificación de RAM y ROM Archivado el 6 de abril de 2012 en Wayback Machine ". Smart Computing . Junio ​​de 1997. Volumen 8, número 6.
  60. ^ "Actualización de su BIOS Flash para Plug and Play Archivado el 6 de abril de 2012 en Wayback Machine ". Smart Computing . Marzo de 1996. Volumen 7, número 3.
  61. ^ "Es hora de comprobar la BIOS Archivado el 16 de julio de 2011 en Wayback Machine ." Smart Computing . Abril de 1999. Volumen 7, número 4.
  62. ^ "Copia archivada". Archivado desde el original el 18 de agosto de 2021. Consultado el 1 de abril de 2021 .{{cite web}}: CS1 maint: copia archivada como título ( enlace )
  63. ^ "Escritorio Linux instantáneo de SplashTop | Geek.com". Archivado desde el original el 7 de septiembre de 2008.
  64. ^ Publicado por Alex Watson, posiblemente reenvío del contenido original en custompc.com [poco claro]. "La vida y los tiempos de la placa base moderna". 2007-11-27 . Archivado desde el original el 2012-07-24 . Consultado el 2013-02-02 .
  65. ^ David Hilber Jr. (agosto de 2009). "Consideraciones para el diseño de un sistema con arquitectura Intel integrada con memoria del sistema inactiva" (PDF) . Intel . Archivado (PDF) desde el original el 18 de octubre de 2012 . Consultado el 2 de febrero de 2013 .
  66. ^ "Tipos de BIOS". rompacks.com . Consultado el 20 de septiembre de 2021 .
  67. ^ Stiller, Andreas (2001). "Prozessor-Patches". c't (en alemán) (5). Heise : 240. Archivado desde el original el 2015-11-22 . Consultado el 2015-11-21 .
  68. ^ "Logotipo del premio BIOS". 15 de junio de 2015. Archivado desde el original el 21 de diciembre de 2015. Consultado el 6 de diciembre de 2015 .
  69. ^ Phoenix espera ansiosamente clonar la BIOS de IBM de próxima generación. Archivado el 22 de enero de 2014 en Wayback Machine , InfoWorld , 9 de marzo de 1987.
  70. ^ Estándar IEEE para firmware de arranque (configuración de inicialización): requisitos y prácticas básicos. 28 de octubre de 1994. págs. 1–262. doi :10.1109/IEEESTD.1994.89427. ISBN 978-0-7381-1194-0. Norma IEEE 1275-1994.
  71. ^ "IEEE Standards Association". Asociación de Normas IEEE . Consultado el 26 de abril de 2023 .
  72. ^ "Definición de la capa de abstracción de hardware". PCMAG . Consultado el 11 de julio de 2022 .
  73. ^ Nuevo virus de BIOS resiste borrados de HDD, 27 de marzo de 2009. Marcus Yam. Tom's Hardware US
  74. ^ "Black Hat 2006 Multimedia - Archivos de presentaciones, audio y video". www.blackhat.com . Consultado el 21 de abril de 2019 .
  75. ^ Sacco, Anibal; Alfredo Ortéga (23 de marzo de 2009). "Infección persistente del BIOS". Exploiting Stuff . Archivado desde el original el 4 de agosto de 2009. Consultado el 6 de febrero de 2010 .
  76. ^ Fisher, Dennis. "Investigadores revelan métodos de ataque persistentes a BIOS". Threat Post . Archivado desde el original el 2010-01-30 . Consultado el 2010-02-06 .
  77. ^ Giuliani, Marco (13 de septiembre de 2011). "Mebromi: el primer rootkit de BIOS en circulación". blog . Archivado desde el original el 23 de septiembre de 2011 . Consultado el 19 de septiembre de 2011 .
  78. ^ "360发布"BMW病毒"技术分析报告". blog . Archivado desde el original el 25 de septiembre de 2011 . Consultado el 19 de septiembre de 2011 .
  79. ^ Yuan, Liang. "Trojan.Mebromi". Respuesta a amenazas . Archivado desde el original el 23 de septiembre de 2011. Consultado el 19 de septiembre de 2011 .
  80. ^ ab "¿Cómo logró 60 Minutes introducir cámaras en una agencia de espionaje?". CBS News . 15 de diciembre de 2013. Archivado desde el original el 22 de abril de 2014. Consultado el 15 de abril de 2014 .
  81. ^ Spencer Ackerman en Washington (16 de diciembre de 2013). "NSA aparece en 60 Minutes: los hechos definitivos detrás del informe defectuoso de CBS". theguardian.com . Archivado desde el original el 25 de enero de 2014. Consultado el 27 de enero de 2014 .
  82. ^ Friedersdorf, Conor (16 de diciembre de 2013). "Una pregunta para 60 minutos: ¿Por qué China querría destruir la economía global?". The Atlantic . Consultado el 26 de marzo de 2019 .
  83. ^ Poulsen, Kevin (16 de diciembre de 2013). «Un artículo de 60 Minutes afirma que la NSA salvó a Estados Unidos del ciberterrorismo». Wired . ISSN  1059-1028 . Consultado el 26 de marzo de 2019 en www.wired.com.
  84. ^ Sharwood, Simon (16 de diciembre de 2013). "NSA alega 'complot de BIOS para destruir PC'". The Register . Consultado el 26 de marzo de 2019 .
  85. ^ "Preguntas frecuentes sobre Windows y GPT". microsoft.com . Microsoft. Archivado desde el original el 19 de febrero de 2011 . Consultado el 6 de diciembre de 2014 .
  86. ^ "Interfaz de firmware extensible (EFI) y EFI unificada (UEFI)". Intel . Archivado desde el original el 5 de enero de 2010 . Consultado el 6 de diciembre de 2014 .
  87. ^ "Especificaciones y requisitos del sistema de Windows 11 | Microsoft". Microsoft . Consultado el 14 de octubre de 2021 .
  88. ^ "La especificación de arranque de próxima generación podría excluir a Linux para siempre de los PC con Windows 8".
  89. ^ "El arranque seguro de Windows 8 podría complicar las instalaciones de Linux". 21 de septiembre de 2011.
  90. ^ Tung, Liam (20 de noviembre de 2017). "Intel: vamos a dejar de ofrecer compatibilidad con BIOS heredados en 2020". ZDNET .

Lectura adicional

  • "BIOS Boot Specification 1.01" (PDF) . Phoenix.com . 11 de enero de 1996. Archivado desde el original (PDF) el 15 de julio de 2011.
  • "Cómo funciona el BIOS". Cómo funcionan las cosas . 6 de septiembre de 2000.
  • "Implementación de una BIOS Plug and Play utilizando la memoria flash del bloque de arranque de Intel" (PDF) . Intel . Febrero de 1995. Archivado desde el original (PDF) el 28 de noviembre de 2007 . Consultado el 28 de noviembre de 2007 .
  • "Lista de opciones de BIOS". techarp.com . Archivado desde el original el 27 de enero de 2014.
  • "Infección persistente del BIOS". Phrack . N.º 66. 1 de junio de 2009. Archivado desde el original el 30 de abril de 2011. Consultado el 30 de abril de 2011 .
  • "Prevención de fallos del BIOS mediante la memoria flash del bloque de arranque de Intel" (PDF) . Intel . Diciembre de 1998. Archivado desde el original (PDF) el 2007-03-29 . Consultado el 2007-03-29 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=BIOS&oldid=1250210783"