stringtranslate.com

BIOS

En informática , BIOS ( / ˈ b ɒ s , - s / , BY -oss, -⁠ohss ; Sistema básico de entrada/salida , también conocido como System BIOS , ROM BIOS , BIOS ROM o PC BIOS ) es el 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 (arranque de encendido). [1] El firmware del BIOS viene preinstalado en una PC IBM o en la placa del sistema compatible con una PC IBM y existe en algunos sistemas basados ​​en UEFI para mantener la compatibilidad con sistemas operativos que no admiten el funcionamiento nativo de UEFI. [2] [3] El nombre proviene del sistema básico de entrada/salida utilizado en el sistema operativo CP/M en 1975. [4] [5] El BIOS originalmente propietario de la PC IBM ha sido sometido a ingeniería inversa por algunas empresas (como como Phoenix Technologies ) buscando crear sistemas compatibles. La interfaz de ese sistema original sirve como estándar de facto .

El BIOS en las PC modernas inicializa y prueba los componentes de hardware del sistema ( autoprueba de encendido ) y carga un cargador de arranque desde un dispositivo de almacenamiento masivo que luego inicializa un kernel . En la era de DOS , el BIOS proporcionaba llamadas de interrupción del BIOS para el teclado, la pantalla, el almacenamiento y otros dispositivos de entrada/salida (E/S) que estandarizaban 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. [6]

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 , mediante la interfaz con varios dispositivos, especialmente el chipset del sistema . Originalmente, el firmware del BIOS se almacenaba en un chip ROM en la placa base de la PC. En sistemas informáticos posteriores, el contenido del 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 del BIOS para que se puedan agregar nuevas funciones o corregir errores, pero también crea la posibilidad de que la computadora se infecte con rootkits del BIOS . Además, una actualización del BIOS que falle podría bloquear la placa base. La última versión de Microsoft Windows que admite oficialmente la ejecución en PC que utilizan firmware BIOS heredado es Windows 10 , ya que Windows 11 requiere un sistema compatible con UEFI.

La Interfaz de firmware extensible unificada (UEFI) es una sucesora del BIOS de PC heredado y tiene como objetivo abordar sus limitaciones técnicas. [7]

Historia

/* CP/MBASICI/OSISTEMA (BIOS) DERECHOS DE AUTOR (C) GARY A. KILDALL JUNIO DE 1975 */[…]/* SISTEMA DE OPERACIÓN 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) [4]

El término BIOS (Sistema básico de entrada/salida) fue creado por Gary Kildall [8] [9] y apareció por primera vez en el sistema operativo CP/M en 1975, [4] [5] [9] [10] [11] [ 12] que describe la parte específica de la máquina de CP/M cargada durante el tiempo de arranque que interactúa directamente con el hardware . [5] (Una máquina CP/M normalmente tiene sólo un cargador de arranque simple en su ROM).

Las versiones de MS-DOS , PC DOS o DR-DOS contienen un archivo llamado " IO.SYS ", " IBMBIO.COM ", "IBMBIO.SYS" o "DRBIOS.SYS"; este archivo se conoce como "BIOS de DOS" (también conocido como "Sistema de E/S de DOS") y contiene la parte específica del hardware de nivel inferior del sistema operativo. Junto con el "System BIOS" subyacente, específico del hardware pero independiente del sistema operativo, que se encuentra en la ROM , representa el análogo del " CP/M BIOS ".

El BIOS originalmente propiedad de la PC IBM ha sido sometido a 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 del modo real estaba destinada a proporcionar compatibilidad con sistemas operativos existentes como DOS y, por lo tanto, se denominó "CBIOS" (por "Compatibilidad BIOS"), mientras que "ABIOS" (por "Advanced BIOS") proporcionó nuevas interfaces específicamente. Adecuado para sistemas operativos multitarea como OS/2 . [13]

Interfaz de usuario

El BIOS de la IBM PC y XT originales no tenía una interfaz de usuario interactiva. Se mostraban códigos o mensajes de error en la pantalla, o se generaban series codificadas de sonidos para señalar errores cuando la autoprueba de encendido (POST) no había llegado al punto de inicializar exitosamente un adaptador de pantalla de video. Las opciones en 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 [14] ) o una "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 establecer 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. Mientras tanto, las PC compatibles con IBM, incluida la IBM AT , mantuvieron los ajustes de configuración en una RAM respaldada por batería y utilizaron 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, la configuración del sistema no se podía cambiar. Lo mismo se aplicaba en general a los ordenadores con bus EISA , cuyo programa de configuración se denominaba Utilidad de configuración EISA (ECU).

Una computadora moderna compatible con Wintel proporciona una rutina de configuración esencialmente sin cambios con respecto a las utilidades de configuración del BIOS residente en ROM de finales de la década de 1990; el usuario puede configurar las opciones de hardware usando el teclado y la pantalla de video. La máquina Wintel moderna puede almacenar los ajustes de configuración del BIOS en una ROM flash, quizás la misma ROM flash que contiene el BIOS.

Operación

Inicio del sistema

Los primeros procesadores Intel comenzaban en la dirección física 000FFFF0h. Los sistemas con procesadores posteriores proporcionan lógica para comenzar a ejecutar el BIOS desde la ROM del sistema .[15]

Si el sistema acaba de encenderse o se presionó el botón de reinicio (" arranque en frío "), se ejecuta la autoprueba de encendido completo (POST). Si se presionó Ctrl+Alt+Delete (" arranque en caliente "), un valor de indicador especial almacenado en la memoria no volátil del BIOS (" CMOS ") probado por el BIOS permite evitar la POST prolongada 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 PC de IBM tenían una rutina en POST que descargaba un programa en la RAM a través del puerto del teclado y lo ejecutaba. [16] [17] Esta función fue diseñada para fines de prueba o diagnóstico de fábrica.

Proceso de arranque

Proceso de arranque

Una vez que se completa la exploración de ROM de opción y se han llamado todos los módulos ROM detectados con sumas de verificación válidas , o inmediatamente después de la POST en una versión de BIOS que no busca ROM de opción, el BIOS llama a INT 19h para iniciar el procesamiento de arranque. Después del arranque, los programas cargados también pueden llamar a INT 19h para reiniciar el sistema, pero deben tener cuidado de desactivar las interrupciones y otros procesos de hardware asíncronos que puedan interferir con el proceso de reinicio del BIOS, o de lo contrario el sistema podría bloquearse o fallar mientras se reinicia. .

Cuando se llama a INT 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, dándole el control de la PC. [18]

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 verifica cada dispositivo para ver si se puede iniciar intentando cargar el primer sector ( sector de inicio ). Si no se puede leer el sector, el BIOS pasa 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 512 bytes de longitud), antes de aceptar un sector de arranque y considerar el dispositivo como de arranque. [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 excepto para posiblemente verificar la firma del sector de arranque en los últimos dos bytes. La interpretación de estructuras de datos como tablas de particiones y bloques de parámetros del BIOS la realiza el programa de inicio en el propio sector de inicio o mediante otros programas cargados a través del proceso de inicio.

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. Como tal, 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 de El Torito , la unidad óptica en realidad emula 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 simplemente definida. como si estuviera en un disquete o en un disco duro. Además, la complejidad del medio hace difícil escribir 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. formato.

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 se puede iniciar, pero a veces hay una unidad de medio extraíble que tiene mayor prioridad de inicio, por lo que el usuario puede hacer que se inicie un disco extraíble.

En la mayoría de los BIOS modernos, el usuario puede configurar el orden de prioridad de arranque. En BIOS más antiguos, se pueden seleccionar opciones de prioridad de arranque limitadas; en las primeras BIOS, se implementó un esquema de prioridad fija, con las unidades de disquete primero, los discos fijos (es decir, discos duros) en segundo lugar y, por lo general, no se admitía ningún otro dispositivo de arranque, sujeto a la modificación de estas reglas mediante las ROM opcionales instaladas. El BIOS en una de las primeras PC generalmente solo arrancaba desde la primera unidad de disquete o desde la primera unidad de disco duro, incluso si hubiera dos unidades instaladas.

Error de inicio

En la PC IBM y XT originales, si no se encontraba ningún disco de arranque, se iniciaba ROM BASIC llamando a INT 18h. Dado que pocos programas usaban BASIC en ROM, los fabricantes de PC clonadas lo omitieron; entonces, una computadora que no pudo arrancar desde un disco mostraría "No ROM BASIC" y se detendría (en respuesta a INT 18h).

Las computadoras posteriores mostrarían un mensaje como "No se encontró ningún disco de arranque"; algunos solicitarían que se inserte un disco y que se presione una tecla para volver a intentar el proceso de arranque. Es posible que un BIOS moderno no muestre nada o ingrese automáticamente a la utilidad de configuración del BIOS cuando falla el proceso de inicio.

Entorno de arranque

El entorno para el programa de arranque es muy simple: la CPU está en modo real y los registros de segmento y de propósito general no están definidos, excepto SS, SP, CS y DL. CS:IP siempre apunta a una dirección física 0x07C00. Los valores que realmente tienen CS e IP no están bien definidos. Algunas BIOS usan una CS:IP de 0x0000:0x7C00mientras que otras pueden usar 0x07C0:0x0000. [19] Debido a que los programas de inicio siempre se cargan en esta dirección fija, no es necesario que un programa de inicio sea reubicable. DL puede contener el número de unidad, como se usa con INT 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. (Ya debe haber una pila configurada para que se puedan atender las interrupciones, y las interrupciones deben estar habilitadas para que la interrupción del cronómetro del sistema, que el BIOS siempre usa al menos para mantener el conteo de la hora del día y que inicializa durante la POST, para que esté activo 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). crear su propia pila, porque se desconoce el tamaño de la pila configurada por 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 breve simplemente configurar incondicionalmente una nueva pila. [20]

En el momento del arranque, todos los servicios del BIOS están disponibles y la memoria debajo de la dirección 0x00400contiene la tabla de vectores de interrupción . BIOS POST ha inicializado los temporizadores del sistema, los controladores de interrupción, los controladores DMA y otro hardware de placa base/chipset según sea necesario para que todos los servicios del BIOS estén listos. Se ha configurado y se está ejecutando la actualización de DRAM para toda la DRAM del sistema en la memoria convencional y en la memoria extendida, pero no necesariamente en la memoria expandida. Los vectores de interrupción correspondientes a las interrupciones del BIOS se han configurado para que apunten a los puntos de entrada apropiados en el BIOS, los vectores de interrupción de hardware para 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 el BIOS genera para que los programas se enganchen, se han configurado en 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. 0x00500El programa de arranque puede utilizar toda la memoria en la dirección o superior ; incluso puede sobrescribirse a sí mismo. [21] [22]

Extensiones (ROM opcionales)

Las tarjetas periféricas, como los adaptadores de bus host de unidades de disco duro y las tarjetas de video , tienen su propio firmware, y la opción ROM de extensión del BIOS puede ser parte del firmware de la tarjeta de expansión, lo que proporciona funcionalidad adicional al BIOS. El código en las ROM opcionales se ejecuta antes de que el BIOS inicie el sistema operativo desde el almacenamiento masivo . Estas ROM normalmente prueban e inicializan hardware, agregan nuevos servicios de BIOS o reemplazan 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. En principio, una ROM de extensión podría contener un sistema operativo o podría implementar un proceso de arranque completamente diferente, como el arranque en red . El funcionamiento de un sistema informático compatible con IBM se puede cambiar completamente quitando o insertando una tarjeta adaptadora (o un chip ROM) que contiene una ROM de extensión del BIOS.

El BIOS de la placa base normalmente contiene código para inicializar y arrancar la pantalla integrada y el almacenamiento integrado. 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, Video BIOS ), complementando o reemplazando 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 complementaria requiere una ROM opcional si la tarjeta no es compatible con el BIOS de la placa base y es necesario inicializarla o hacerla 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 (en particular, incluido el IBM PCjr) era que la ROM era más rápida que la RAM del sistema principal. (En los sistemas modernos, el caso es todo lo contrario, y el código ROM del BIOS generalmente se copia ("sombreado") en la RAM para que se ejecute más rápido).

Procedimiento de arranque

Si una ROM de expansión desea cambiar la forma en que arranca el sistema (como desde un dispositivo de red o un adaptador SCSI) de forma cooperativa, puede utilizar la API de especificación de arranque del BIOS (BBS) para registrar su capacidad para hacerlo. Una vez que las ROM de expansión se hayan registrado utilizando las API de BBS, el usuario puede seleccionar entre las opciones de inicio disponibles desde la interfaz de usuario del BIOS. Esta es la razón por la que la mayoría de las implementaciones de BIOS de PC compatibles con BBS no permitirán al usuario ingresar a la interfaz de usuario del BIOS hasta que las ROM de expansión hayan terminado de ejecutarse y registrarse en la API de BBS. [ cita necesaria ]

Además, si una ROM de expansión desea cambiar la forma en que el sistema arranca unilateralmente, puede simplemente conectar INT 19h u otras interrupciones normalmente llamadas desde la interrupción 19h, como INT 13h, el servicio de disco del BIOS, para interceptar el proceso de arranque del BIOS. Luego puede reemplazar el proceso de arranque del BIOS con uno propio, o simplemente puede modificar la secuencia de arranque insertando sus propias acciones de arranque en ella, evitando que el BIOS detecte ciertos dispositivos como arrancables, o ambas cosas. Antes de que se promulgara la especificación de arranque del BIOS, esta era la única forma en que las ROM de expansión implementaban la capacidad de arranque para dispositivos que no eran compatibles con el arranque del BIOS nativo de la placa base. [ cita necesaria ]

Inicialización

Una vez que el BIOS de la placa base completa su POST, la mayoría de las versiones del BIOS buscan módulos ROM de opción, también llamados ROM de extensión del BIOS, y los ejecutan. El BIOS de la placa base busca ROM de extensión en una parte del " área de memoria superior " (la parte del espacio de direcciones en modo real x86 en la dirección 0xA0000 y por encima) y ejecuta cada ROM encontrada, en orden. Para descubrir ROM de opciones asignadas en memoria, una implementación de BIOS escanea el espacio de direcciones en modo real desde 0x0C0000lí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 el número 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 de BIOS normal debería ser el comienzo de la rutina de inicialización de la extensión.

En este punto, el código ROM de extensión toma el control, normalmente probando e inicializando el hardware que controla y registrando vectores de interrupción para su uso por aplicaciones posteriores al arranque. Puede utilizar servicios de BIOS (incluidos los proporcionados por ROM opcionales previamente inicializadas) para proporcionar una interfaz de configuración de usuario, mostrar información de diagnóstico o hacer cualquier otra cosa que requiera. Es posible que una ROM opcional no regrese al BIOS, adelantándose por completo a la secuencia de inicio del BIOS.

Una ROM opcional normalmente debería regresar al BIOS después de completar su proceso de inicialización. Una vez que (y si) regresa una ROM de opción, el BIOS continúa buscando más ROM de opción, llamando a cada una a medida que las encuentra, hasta que se haya escaneado toda el área de ROM de opción en el espacio de memoria.

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, la PC original, y quizás también la PC XT, tienen un zócalo ROM de repuesto 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 pueden También se pueden eliminar y reemplazar con ROM personalizadas que pueden ser ROM opcionales. El IBM PCjr es único entre los PC porque tiene dos ranuras para cartuchos ROM en la parte frontal. Los cartuchos en estas ranuras se asignan a la misma región del área de memoria superior utilizada para las 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 BÁSICOS, 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.

Servicios del sistema operativo

La BIOS ROM está personalizada para el hardware del fabricante en particular, lo que permite que servicios de bajo nivel (como leer una pulsación de tecla o escribir un sector de datos en un disquete) se proporcionen de forma estandarizada a los programas, incluidos los sistemas operativos. Por ejemplo, una PC IBM puede tener un adaptador de pantalla monocromático o en color (que utiliza diferentes direcciones de memoria de pantalla y hardware), pero se puede invocar una única llamada estándar al sistema BIOS para mostrar un carácter en una posición específica de la pantalla en Modo texto o 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.). Cuando se usa 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 INT 13h para acceder a las funciones del disco, o ejecutando una de varias otras llamadas de interrupción del BIOS documentadas para acceder al video. pantalla , teclado , casete y otras funciones del dispositivo.

Los sistemas operativos y el software ejecutivo que están diseñados para reemplazar esta funcionalidad básica de 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 la pantalla, muchos programas omitieron el BIOS y programaron el hardware de visualización de video directamente. Otros programadores de gráficos, particularmente pero no exclusivamente en la escena de demostración , observaron que había capacidades técnicas de los adaptadores de pantalla de PC que no eran compatibles con el BIOS de IBM y que no podían aprovecharse sin eludirlo. Dado que el BIOS compatible con AT se ejecutaba en modo real 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 del BIOS.

En las PC modernas que ejecutan sistemas operativos modernos (como Windows y Linux ), las llamadas de interrupción del 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 normalmente se manejan a través del BIOS. Un menú de inicio, como el menú textual de Windows, que permite a los usuarios elegir un sistema operativo para iniciar, iniciar en modo seguro o usar la última configuración buena conocida, se muestra a través del BIOS y recibe la entrada del teclado a través del BIOS. [6]

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 compatible con CSM.

Actualizaciones del microcódigo del procesador

Los procesadores Intel tienen microcódigo reprogramable desde la microarquitectura P6 . [23] [24] [25] Los procesadores AMD tienen microcódigo reprogramable desde la microarquitectura K7 . El 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 un microcódigo reprogramable, sería necesario un costoso cambio de procesador; [26] por ejemplo, el error Pentium FDIV se convirtió en un costoso fiasco para Intel, ya que requirió el 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 . [27] [28]

Identificación

Algunos BIOS contienen una tabla de descripción de licencias de software (SLIC), una firma digital colocada dentro del BIOS por el fabricante del equipo original (OEM), por ejemplo Dell . El SLIC se inserta en la tabla de datos ACPI y no contiene ningún código activo. [29] [30]

Los fabricantes de computadoras que distribuyen versiones OEM de Microsoft Windows y software de aplicaciones de Microsoft pueden usar el SLIC para autenticar la licencia en el disco de instalación de Windows OEM y en 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 con el SLIC en el BIOS como medio de autoactivación (consulte Preinstalación del sistema bloqueado , SLP). Si un usuario realiza una instalación nueva de Windows, deberá poseer la clave OEM (ya sea SLP o COA) y el certificado digital de su SLIC para poder evitar la activación. [29] Esto se puede lograr si el usuario realiza una restauración utilizando una imagen prepersonalizada proporcionada por el OEM. Los usuarios avanzados pueden copiar los archivos de certificado necesarios de la imagen OEM, decodificar la clave del producto SLP y luego realizar la activación SLP manualmente.

overclocking

Algunas implementaciones de BIOS permiten overclocking , una acción en la que la CPU se ajusta a una frecuencia de reloj más alta que la clasificación del fabricante para garantizar la capacidad. Sin embargo, el overclocking puede comprometer seriamente la confiabilidad del sistema en computadoras con refrigeración insuficiente y, en general, acortar la vida útil de los componentes. El overclocking, cuando se realiza incorrectamente, también puede provocar que los componentes se sobrecalienten tan rápidamente que se destruyan mecánicamente. [31]

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. [32]

Llamar directamente a los servicios del BIOS en modo real es ineficaz 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, 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 Especificación multiprocesador (MPS). A partir del año 2000, la mayoría de las BIOS proporcionan interfaces ACPI , SMBIOS , VBE y e820 para los sistemas operativos modernos. [33] [34] [35] [36] [37]

Después de cargar los sistemas operativos , el código del modo de administración del sistema todavía se ejecuta en SMRAM. Desde 2010, la tecnología BIOS se encuentra en un proceso de transición hacia UEFI . [7]

Configuración

Utilidad de configuración

Históricamente, el BIOS de IBM PC y XT no tenía una interfaz de usuario incorporada. Las versiones de BIOS en PC anteriores (clase XT) no eran configurables por software; en cambio, los usuarios configuran las opciones mediante interruptores DIP en la placa base. Las computadoras posteriores, incluidas todas las compatibles con IBM con CPU 80286, tenían una memoria BIOS no volátil respaldada por batería (chip RAM CMOS) que contenía la configuración del BIOS. [38] Estas configuraciones, como el tipo de adaptador de video, el tamaño de la memoria y los parámetros del disco duro, solo se pueden configurar ejecutando un programa de configuración desde un disco, no integrado en la ROM. Se insertó un "disquete de referencia" especial en un IBM AT para configurar ajustes como el tamaño de la memoria.

Las primeras versiones de BIOS no tenían contraseñas ni opciones de selección de dispositivo de arranque. El BIOS estaba codificado para arrancar desde la primera unidad de disquete o, si eso 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 de la computadora). Cualquiera que pudiera encender la computadora podría iniciarla. [ cita necesaria ]

Más tarde, las computadoras de 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 inician en la utilidad de configuración del BIOS si se presiona una determinada tecla o combinación de teclas; de lo contrario, se ejecutan la POST del BIOS y el proceso de inicio.

Utilidad de configuración de BIOS 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 gráfica de usuario (GUI) a la que se accede presionando una determinada tecla en el teclado cuando se inicia la PC. Por lo general, la clave se anuncia por un breve período de tiempo durante el inicio temprano, por ejemplo, "Presione DEL para ingresar a la configuración". La clave real depende del hardware específico. Las características presentes en la utilidad de configuración del BIOS normalmente incluyen:

Monitoreo de hardware

Una pantalla de configuración de BIOS moderna a menudo presenta una pestaña de Estado de salud de la PC o Monitoreo de hardware , que interactúa directamente con un chip de Monitor de hardware de la placa base. [39] Esto permite monitorear la temperatura de la CPU y del chasis , el voltaje proporcionado por la 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, el monitoreo del hardware y el control del ventilador de la computadora normalmente se realizan directamente mediante el chip Hardware Monitor, que puede ser un chip separado, conectado a través de I 2 C o SMBus , o venir como parte de una solución Super I/O. , interconectado a través de la Arquitectura estándar de la industria (ISA) o Low Pin Count (LPC). [40] 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 información subyacente sobre la supervisión del hardware a través de ACPI , en cuyo caso, el sistema operativo puede estar utilizando ACPI para realizar la supervisión del hardware. [41] [42]

Reprogramación

Kit de reemplazo de BIOS para una Dell 310 de finales de los años 1980. Se incluyen dos chips, un soporte de plástico para los chips y un extractor de circuitos integrados .

En las PC modernas, la BIOS se almacena en una memoria flash EEPROM o NOR regrabable , lo que permite reemplazar y modificar el contenido. Esta reescritura de los contenidos a veces se denomina flasheo . Se puede hacer mediante un programa especial, generalmente proporcionado por el fabricante del sistema, o en POST , con una imagen del BIOS en un disco duro o unidad flash USB. Un archivo que contiene dicho contenido a veces se denomina "imagen de BIOS". Es posible que se actualice un BIOS para actualizarlo a una versión más nueva para corregir errores, proporcionar un rendimiento mejorado o admitir hardware más nuevo.

Hardware

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

El BIOS de la PC IBM original (y el casete BASIC) se almacenaban en chips de memoria de solo lectura (ROM) programados con máscara en zócalos de la placa base. Los usuarios pueden reemplazar las ROM, pero no modificarlas. Para permitir las actualizaciones, muchas computadoras compatibles usaban dispositivos de memoria BIOS reprogramables como EPROM , EEPROM y dispositivos de memoria flash posteriores (generalmente NOR flash ). 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 su reprogramación. [43] Las versiones de BIOS se actualizan para aprovechar las versiones más nuevas de hardware y corregir errores en revisiones anteriores de BIOS. [44]

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

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

El tamaño del BIOS y la capacidad de la ROM, EEPROM u otros medios en los que pueda almacenarse han aumentado con el tiempo a medida que se han agregado nuevas funciones al código; Ahora existen versiones de BIOS con tamaños de hasta 32 megabytes. Por el contrario, el BIOS de la PC IBM original estaba contenido 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 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. [47] Sin embargo, la idea de incluir un sistema operativo junto con 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 .

Se encontró otro tipo de chip de firmware en IBM PC AT y en los primeros compatibles. En el AT, la interfaz del teclado estaba controlada por un microcontrolador con su propia memoria programable. En IBM AT, era un dispositivo con conector de 40 pines, mientras que algunos fabricantes usaban 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 puerta A20 para administrar 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 necesaria ]

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, SPD y la inicialización de tiempos de memoria ). [48] ​​: 8  [49]

El BIOS moderno [50] incluye firmware Intel Management Engine o AMD Platform Security Processor .

Proveedores y productos

IBM publicó los listados completos del 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 PC de IBM para cada tipo de máquina. El efecto de la publicación de los listados de BIOS es que cualquiera puede ver exactamente qué hace un BIOS definitivo y cómo lo hace.

BIOS 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 en el BIOS de la PC IBM, como lo había hecho Compaq con la portátil , lo que ayudó a impulsar el crecimiento de la PC- BIOS. industria compatible y ventas de versiones de DOS que no sean IBM. [53] Y el primer BIOS American Megatrends (AMI) se lanzó en 1986.

Los nuevos estándares insertados en el BIOS generalmente no cuentan con documentación pública completa ni listados de BIOS. Como resultado, no es tan fácil conocer los detalles íntimos sobre las muchas adiciones al BIOS que no son de IBM como sobre los servicios principales del BIOS.

Muchos proveedores de placas base para PC obtuvieron la licencia del "núcleo" del BIOS y el kit de herramientas de un tercero comercial, conocido como "proveedor de BIOS independiente" o IBV. Luego, el fabricante de la placa base personalizó este BIOS para adaptarlo 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; Posteriormente, Phoenix eliminó gradualmente la marca Award. General Software , que también fue adquirida por Phoenix en 2007, vendía BIOS para sistemas integrados basados ​​en procesadores Intel.

Firmware de BIOS de código abierto

La comunidad de código abierto incrementó sus esfuerzos para desarrollar un reemplazo para los BIOS propietarios y sus futuras encarnaciones con contrapartes de código abierto. Open Firmware fue uno de los primeros intentos de crear un estándar de código abierto para el firmware de arranque. Inicialmente fue respaldado por IEEE en su estándar IEEE 1275-1994 , pero fue retirado en 2005. [54] [55] Los ejemplos posteriores incluyen los proyectos libreboot , coreboot y OpenBIOS / Open Firmware . AMD proporcionó especificaciones de producto para algunos conjuntos de chips y Google patrocina el proyecto. El fabricante de placas base Tyan ofrece coreboot junto al BIOS estándar con su línea de placas base Opteron .

Seguridad

Gigabyte DualBIOS PLCC 32
Un chip BIOS separado

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 actualizar sus productos, mejorar la compatibilidad y eliminar errores . Sin embargo, esta ventaja tenía el riesgo de que una actualización del BIOS ejecutada incorrectamente o cancelada pudiera inutilizar la computadora o el dispositivo. Para evitar estas situaciones, las BIOS más recientes utilizan un "bloque de arranque"; una parte del BIOS que se ejecuta primero y debe actualizarse por separado. Este código verifica si el resto del 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 el BIOS principal, normalmente advertirá al usuario que se debe iniciar un proceso de recuperación arrancando desde un medio extraíble (disquete, CD o unidad flash USB) para que el usuario pueda intentar actualizar el BIOS nuevamente. Algunas placas base tienen un BIOS de respaldo (a veces denominado placas DualBIOS) para recuperarse de daños en el BIOS.

Hay al menos cinco virus conocidos que atacan el BIOS. Dos de los cuales tenían fines de demostración. El primero que se encontró en estado salvaje fue Mebromi , dirigido a usuarios chinos.

El primer virus de la BIOS fue BIOS Meningitis, que en lugar de borrar los chips de la BIOS los infectaba. BIOS Meningitis era relativamente inofensiva, en comparación con un virus como CIH .

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

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

Como resultado, a partir de 2008, CIH se ha vuelto esencialmente inofensivo y, en el peor de los casos, causa molestias al infectar archivos ejecutables y activar software antivirus. Sin embargo, otros virus del BIOS siguen siendo posibles; [57] 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 tipo CIH aún podría, en principio, obtener acceso al hardware sin utilizar primero un exploit. [ cita necesaria ] El sistema operativo OpenBSD impide que todos los usuarios tengan este acceso y el parche grsecurity para el kernel de Linux también evita 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 necesaria ]

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. [58]

El cuarto virus del BIOS fue una técnica llamada "infección persistente del 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 [59] y Alfredo Ortega, de Core Security Technologies, demostraron cómo insertar código malicioso en las rutinas de descompresión del BIOS, permitiendo un control casi total de la PC en el inicio, incluso antes de que se inicie el sistema operativo. La prueba de concepto no explota una falla en la implementación del BIOS, sino que solo involucra los procedimientos normales de actualización del 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 completamente funcional . Incluso tenemos un pequeño código que puede eliminar o desactivar el antivirus". [60]

Mebromi es un troyano que ataca a ordenadores con AwardBIOS , Microsoft Windows y software antivirus de dos empresas chinas: Rising Antivirus y Jiangmin KV Antivirus. [61] [62] [63] 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 Garantía de Información de la Agencia de Seguridad Nacional de EE. UU ., afirmó que la NSA había descubierto y frustrado un posible ataque al BIOS por parte de un Estado nación extranjero, dirigido al sistema financiero estadounidense. [64] El programa citó fuentes anónimas que alegaban que se trataba de un complot chino. [64] Sin embargo, artículos de seguimiento en The Guardian , [65] The Atlantic , [66] Wired [67] y The Register [68] refutaron las afirmaciones de la NSA.

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

Alternativas y sucesores

La interfaz de firmware extensible unificada (UEFI) complementa el BIOS en muchas máquinas nuevas. Inicialmente escrito 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 EFI , un grupo de interés especial de la industria . El arranque EFI solo ha sido compatible con las versiones de Microsoft Windows que admiten GPT , [69] el kernel de Linux 2.6.1 y posteriores, y macOS en Mac con procesador Intel . [70] A partir de 2014 , el nuevo hardware de PC se envía predominantemente con firmware UEFI. La arquitectura de protección de rootkit también puede impedir que el sistema ejecute los cambios de software propios del usuario, lo que hace que UEFI sea controvertido como reemplazo del BIOS heredado en la comunidad de hardware abierto . Además, Windows 11 requiere UEFI para arrancar. [71]

Otras alternativas a la funcionalidad del "BIOS heredado" en el mundo x86 incluyen coreboot y libreboot .

Algunos servidores y estaciones de trabajo utilizan un Open Firmware independiente de la plataforma (IEEE-1275) basado en el lenguaje de programación Forth ; se incluye con las computadoras 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 .

Al menos desde 2015, Apple eliminó la compatibilidad con BIOS heredados de las computadoras MacBook Pro . Como tal, la utilidad BIOS ya no admite la opción heredada e imprime "El modo heredado no es compatible con este sistema". En 2017, Intel anunció que eliminaría la compatibilidad con BIOS heredados para 2020. Desde 2019, las nuevas PC OEM con plataforma Intel ya no admiten la opción heredada.

Ver 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 computadora personal IBM original .
  2. ^ La firma en el desplazamiento +0x1FEen 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 máquinas compatibles con IBM PC , esto se puede escribir como palabra de 16 bits 0xAA55en programas para procesadores x86 (tenga en cuenta el orden intercambiado), mientras que tendría que escribirse como 0x55AAen programas para otros 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 de bytes basada en desplazamiento para evitar cualquier posible mala interpretación.

Referencias

  1. ^ "Referencia: BIOS del sistema". Guía de PC . Archivado desde el original el 21 de diciembre de 2014 . Consultado el 6 de diciembre de 2014 .
  2. ^ "Interfaz de firmware extensible unificada". Intel .
  3. ^ "UEFI". OSDev.org .
  4. ^ abc Kildall, Gary Arlen (junio de 1975), CP/M 1.1 o 1.2 BIOS y BDOS para Lawrence Livermore Laboratories
  5. ^ a b C 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.). Revista del Dr. Dobb sobre calistenia y ortodoncia informática. págs. 6–7. Archivado desde el original el 24 de noviembre de 2016 . Consultado el 3 de junio de 2013 .
  6. ^ ab "Arranque · Linux interno". 0xax.gitbooks.io . Consultado el 10 de noviembre de 2020 .
  7. ^ ab Bradley, Tony. "RIP BIOS: introducción a UEFI". Mundo PC . Archivado desde el original el 27 de enero de 2014 . Consultado el 27 de enero de 2014 .
  8. ^ Swaine, Michael (1 de abril de 1997). "Gary Kildall y el espíritu empresarial colegiado". Diario del Dr. Dobb . Archivado desde el original el 24 de enero de 2007 . Consultado el 20 de noviembre de 2006 .
  9. ^ ab "IEEE Milestone in Ingeniería Eléctrica y Computación - CP/M - Sistema operativo de microcomputadora, 1974" (PDF) . Museo de Historia de la Computación . 2014-04-25. Archivado (PDF) desde el original el 3 de abril de 2019 . Consultado el 3 de abril de 2019 .
  10. ^ Shustek, Len (2 de agosto de 2016). "En sus propias palabras: Gary Kildall". Gente notable . Museo de Historia de la Computación . Archivado desde el original el 17 de diciembre de 2016.
  11. ^ Killian, A. José "Joe" (2001). "CP/M de Gary Kildall: algo de la historia temprana de 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 .
  12. ^ 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, CHM Número de referencia: 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 .
  13. ^ Vidrio, Brett (1989). "La BIOS de la PC de IBM". Bytes : 303–310 . Consultado el 31 de diciembre de 2021 .
  14. ^ "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 .
  15. ^ Consulte el Manual del desarrollador de software de arquitecturas Intel 64 e IA-32 Archivado el 26 de enero de 2012 en Wayback Machine , volumen 3, sección 9.1.2
  16. ^ página 5-27 Referencia técnica de la biblioteca de referencia de hardware de computadoras personales de IBM , 1984, número de publicación 6361459
  17. ^ "Manual de referencia técnica de IBM 5162 PC XT286 TechRef 68X2537" (PDF) . Agosto de 1986. p. 35 (BIOS del sistema A-5). Archivado (PDF) desde el original el 11 de diciembre de 2014 . Consultado el 11 de diciembre de 2014 .
  18. ^ Cómo funcionan las cosas: qué hace el BIOS Archivado el 7 de febrero de 2008 en Wayback Machine .
  19. ^ Akeljic, Bekir (1 de enero de 2017). «FUNCIONES Y MODIFICACIONES DE LA BIOS DEL SISTEMA BÁSICO DE ENTRADAS/SALIDAS DEL BIOS» . BIOS : 12. Archivado desde el original el 2022-08-08 . Recuperado 2022-08-08 - vía UNIVERSIDAD INTERNACIONAL TRAVNIKFACULIDAD DE TECNOLOGÍA DE LA INFORMACIÓN PROGRAMACIÓN TRAVNIKSOFTWARE.
  20. ^ "BIOS - CodeDocs". codedocs.org . Consultado el 8 de agosto de 2022 .
  21. ^ "Diseño de memoria y mapa de memoria". flint.cs.yale.edu . Consultado el 8 de agosto de 2022 .
  22. ^ "Tabla ACPI de datos del BIOS (BDAT)" (PDF) . Especificación de interfaz . 4 (5): 67. 2020. Archivado (PDF) desde el original el 3 de julio de 2021 . Consultado el 8 de agosto de 2022 .
  23. ^ 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 .
  24. ^ Mueller, Scott (8 de junio de 2001). Función de actualización del procesador | Tipos y especificaciones de microprocesadores. Informar a TI. Archivado desde el original el 16 de abril de 2014 . Consultado el 15 de abril de 2014 .
  25. ^ "Archivo de datos de microcódigo del procesador Linux *". Centro de descargas . Centro de descargas.intel.com. 2009-09-23. Archivado desde el original el 16 de abril de 2014 . Consultado el 15 de abril de 2014 .
  26. ^ Scott Mueller, Actualización y reparación de PC, 15.ª edición , Que Publishing, 2003 ISBN 0-7897-2974-1 , páginas 109-110 
  27. ^ "KB4100347: actualizaciones del microcódigo Intel". soporte.microsoft.com . Consultado el 20 de septiembre de 2020 .
  28. ^ "Microcódigo - Wiki Debian". wiki.debian.org . Consultado el 19 de septiembre de 2020 .
  29. ^ ab "Cómo funcionan SLP y SLIC". Guytechie.com . 25 de febrero de 2010. Archivado desde el original el 3 de febrero de 2015 . Consultado el 3 de febrero de 2015 .
  30. ^ "Cree y agregue un módulo de tabla OEM ACPI SLIC a un BIOS congatec" (PDF) . congatec.com . 2011-06-16. Archivado (PDF) desde el original el 2 de agosto de 2014 . Consultado el 3 de febrero de 2015 .
  31. ^ Whitson Gordon (13 de enero de 2014). "Una introducción para principiantes al overclocking de su procesador Intel". Hacker de vida . Medios curiosos. Archivado desde el original el 7 de diciembre de 2014 . Consultado el 6 de diciembre de 2014 .
  32. ^ Artículo sobre Smart Computing: ¿Qué es el BIOS? Archivado el 10 de marzo de 2012 en Wayback Machine - Conceptos básicos de informática, julio de 1994 • Vol.5 Número 7
  33. ^ "¿Qué es ACPI (interfaz de alimentación y configuración avanzada)? - Definición de WhatIs.com". BuscarWindowsServer . Consultado el 18 de septiembre de 2020 .
  34. ^ "Cambiar la capa de abstracción de hardware en Windows 2000/XP - Smallvoid.com". 2001-01-15 . Consultado el 18 de septiembre de 2020 .
  35. ^ "¿Qué es ACPI?". www.spo-comm.de . Consultado el 18 de septiembre de 2020 .
  36. ^ lorihollasch. "Soporte para sistemas sin cabeza: controladores de Windows". docs.microsoft.com . Consultado el 5 de diciembre de 2020 .
  37. ^ "Mapa de memoria (x86) - OSDev Wiki". wiki.osdev.org . Consultado el 11 de diciembre de 2020 .
  38. ^ Torres, Gabriel (24 de noviembre de 2004). "Introducción y Batería de Litio". Reemplazo de la batería de la placa base . hardwaresecrets.com. Archivado desde el original el 24 de diciembre de 2013 . Consultado el 20 de junio de 2013 .
  39. ^ Constantino A. Murenin (21 de mayo de 2010). "11.1. Interfaz desde BIOS". Sensores de hardware OpenBSD: monitoreo ambiental y control de ventiladores ( tesis de maestría en matemáticas ). Universidad de Waterloo : UWSpace. hdl :10012/5234. ID del documento: ab71498b6b1a60ff817b29d56997a418.
  40. ^ Constantino 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 a 17 de abril de 2007. Londres, Reino Unido: IEEE . págs. 901–906. doi :10.1109/ICNSC.2007.372901. ISBN 978-1-4244-1076-7. IEEE ICNSC 2007, págs. 901—906.
  41. ^ "aibs - Sensor de ventilador, temperatura y voltaje ACPI ATK0110 ASUSTeK AI Booster". OpenBSD , DragonFly BSD , NetBSD y FreeBSD . 2010.
  42. ^ "acpi_thermal(4)". www.freebsd.org . Consultado el 24 de febrero de 2021 .
  43. ^ "Decodificación de RAM y ROM Archivado el 6 de abril de 2012 en Wayback Machine ". Computación inteligente . Junio ​​de 1997. Volumen 8, Número 6.
  44. ^ "Actualización de su BIOS Flash para Plug And Play Archivado el 6 de abril de 2012 en Wayback Machine ". Computación inteligente . Marzo de 1996. Volumen 7, Número 3.
  45. ^ "Es hora de comprobar el BIOS Archivado el 16 de julio de 2011 en Wayback Machine ". Computación inteligente . Abril de 1999. Volumen 7, Número 4.
  46. ^ "Copia archivada". Archivado desde el original el 18 de agosto de 2021 . Consultado el 1 de abril de 2021 .{{cite web}}: CS1 maint: archived copy as title (link)
  47. ^ "Escritorio Linux instantáneo de SplashTop | Geek.com". Archivado desde el original el 7 de septiembre de 2008.
  48. ^ Publicado por Alex Watson, posiblemente vuelto a publicar desde el contenido original en custompc.com [poco claro]. "La vida y la época de la placa base moderna". 2007-11-27 . Archivado desde el original el 24 de julio de 2012 . Consultado el 2 de febrero de 2013 .
  49. ^ David Hilber Jr. (agosto de 2009). "Consideraciones para diseñar un sistema de arquitectura Intel integrado 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 .
  50. ^ "Tipos de BIOS". romppacks.com . Consultado el 20 de septiembre de 2021 .
  51. ^ Más quieto, Andreas (2001). "Parches de procesador". c't (en alemán). Heise (5): 240. Archivado desde el original el 22 de noviembre de 2015 . Consultado el 21 de noviembre de 2015 .
  52. ^ "Premio al logotipo de BIOS". 2015-06-15. Archivado desde el original el 21 de diciembre de 2015 . Consultado el 6 de diciembre de 2015 .
  53. ^ Phoenix esperando ansiosamente clonar BIOS de IBM de próxima generación. Archivado el 22 de enero de 2014 en Wayback Machine , InfoWorld , 9 de marzo de 1987.
  54. ^ Estándar IEEE para firmware de arranque (configuración de inicialización): requisitos y prácticas principales. 1994-10-28. págs. 1–262. doi :10.1109/IEEESTD.1994.89427. ISBN 978-0-7381-1194-0. {{cite book}}: |journal=ignorado ( ayuda )
  55. ^ "Asociación de Estándares IEEE". Asociación de Estándares IEEE . Consultado el 26 de abril de 2023 .
  56. ^ "Definición de capa de abstracción de hardware". PCMAG . Consultado el 11 de julio de 2022 .
  57. ^ El nuevo virus del BIOS resiste la limpieza del disco duro, 27 de marzo de 2009. Marcus Yam. Hardware de Tom EE. UU.
  58. ^ "Black Hat 2006 Multimedia - Archivos de presentación, audio y vídeo". www.blackhat.com . Consultado el 21 de abril de 2019 .
  59. ^ Sacco, Aníbal; Alfredo Ortega (23-03-2009). "Infección persistente del BIOS". Explotar cosas . Archivado desde el original el 4 de agosto de 2009 . Consultado el 6 de febrero de 2010 .
  60. ^ Pescador, Dennis. "Los investigadores revelan métodos de ataque persistentes al BIOS". Publicación de amenaza . Archivado desde el original el 30 de enero de 2010 . Consultado el 6 de febrero de 2010 .
  61. ^ Giuliani, Marco (13 de septiembre de 2011). "Mebromi: el primer rootkit de BIOS disponible". Blog . Archivado desde el original el 23 de septiembre de 2011 . Consultado el 19 de septiembre de 2011 .
  62. ^ "360发布"BMW病毒"技术分析报告". Blog . Archivado desde el original el 25 de septiembre de 2011 . Consultado el 19 de septiembre de 2011 .
  63. ^ Yuan, Liang. "Troyano.Mebromi". Respuesta a amenazas . Archivado desde el original el 23 de septiembre de 2011 . Consultado el 19 de septiembre de 2011 .
  64. ^ ab "¿Cómo consiguió 60 Minutes introducir cámaras en una agencia de espionaje?". Noticias CBS . 2013-12-15. Archivado desde el original el 22 de abril de 2014 . Consultado el 15 de abril de 2014 .
  65. ^ Spencer Ackerman en Washington (16 de diciembre de 2013). "La NSA continúa 60 minutos: 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 .
  66. ^ Friedersdorf, Conor (16 de diciembre de 2013). "Una pregunta para 60 minutos: ¿Por qué China querría destruir la economía global?". El Atlántico . Consultado el 26 de marzo de 2019 .
  67. ^ Poulsen, Kevin (16 de diciembre de 2013). "60 Minutes Puff Piece afirma que la NSA nos salvó del ciberterrorismo". Cableado . ISSN  1059-1028 . Consultado el 26 de marzo de 2019 a través de www.wired.com.
  68. ^ Sharwood, Simon (16 de diciembre de 2013). "La NSA alega un complot del BIOS para destruir PC'". El registro . Consultado el 26 de marzo de 2019 .
  69. ^ "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 .
  70. ^ "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 .
  71. ^ "Especificaciones del sistema y requisitos del sistema de Windows 11 | Microsoft". Microsoft . Consultado el 14 de octubre de 2021 .

Otras lecturas

enlaces externos