BIOS
BIOS
Fabricantes comunes:
American Megatrends
Phoenix Technologies
Otros
La BIOS (sigla en inglés de basic input/output system; en español «sistema
básico de entrada y salida») es un tipo de firmware que localiza y prepara los
componentes electrónicos o periféricos de una máquina, para comunicarlos con
algún sistema operativo que la gobernará. Para ello la máquina cargará ese
sencillo programa en la memoria RAM central del aparato. El programa está
instalado en un circuito integrado de la placa base y realizará el
control POST de la misma en el tiempo de arranque o encendido,
proporcionando funcionalidades básicas: chequeo de la memoria principal y
secundaria, comunicación con el usuario vía monitor o teclado y enlace
mediante los procesos de arranque o booting con elnúcleo del sistema
operativo que gobernará el sistema. Por lo general el término se usa de forma
ambivalente para referirse al software BIOS o a la memoria ROM donde residía
históricamente en los sistemas de computo basados en la arquitectura x86.
Historia
El acrónimo BIOS (Basic Input/Output System) fue inventado por Gary Kildall el
creador del sistema operativo CP/M en 1975, siendo el nombre de un archivo
del sistema. Las máquinas con CP/M usualmente tenían una ROM muy simple
que hacía que la unidad de diskette leyera datos desde su primera posición de
memoria donde se encontraba la primera instrucción del archivo BIOS que se
encargaba de configurar el sistema.
El diseño del IBM PC (1981) incluyó todas las funcionalidades básicas de
entrada y salida en memorias tipo ROM, uso que posteriormente se erigió
como el estándar de facto para la industria. El BIOS del 5150 fue el único
programa que la compañía IBM desarrollo para el equipo, siendo la única pieza
de código sobre la que se tenían derechos exclusivos. Basándose en procesos
de Ingeniería Inversa, se escribieron versiones que tenían idénticas
funcionalidades a la BIOS IBM pero además incluyeron nuevos dispositivos
como los discos duros y varias unidades de disquete manteniendo la
retrocompatibilidad hasta el día de hoy. Hasta 1990 el BIOS era almacenado en
memorias ROM o EPROM, después comenzó a utilizarse memorias flash que
pueden ser actualizadas por el usuario sin necesidad de destapar la caja.
En la última década se ha desarrollado el firmaware EFI como esquema de
ROM que reemplazará a la BIOS legada que está limitada a ejecutarse en 16
bits cuando la mayoría de procesadores son capaces de funcionar a 64 bits.
Funcionamiento
Después de un reset o del encendido, el procesador ejecuta la instrucción que
encuentra en el llamado vector de reset (16 bytes antes de la instrucción
máxima direccionable en el caso de los procesadores x86), allí se encuentra la
primera línea de código del BIOS: es una instrucción de salto incondicional, que
remite a una dirección más baja en la BIOS. En los PC más antiguos el
procesador continuaba leyendo directamente en la memoria ROM las
instrucciones (dado que esa memoria era de la misma velocidad de la RAM),
ejecutando las rutinas POST para verificar el funcionamiento del sistema y
posteriormente cargando un sistema operativo (de 16 bits) en la RAM, que
compartiría funcionalidades de la BIOS.
De acuerdo a cada fabricante del BIOS, realizará procedimientos diferentes,
pero en general se carga una copia del firmware hacia la memoria RAM, dado
que esta última es más rápida. Desde allí se realiza la detección y la
configuración de los diversos dispositivos que pueden contener un sistema
operativo. Mientras se realiza el proceso de búsqueda de un SO, el programa
del BIOS ofrece la opción de acceder a la RAM-CMOS del sistema donde el
usuario puede configurar varias características del sistema por ejemplo el reloj
de tiempo real. La información contenida en la RAM-CMOS es utilizada durante
la ejecución del BIOS para configurar dispositivos como ventiladores, buses y
controladores.
Los controladores de hardware del BIOS están escritos en 16 bits siendo
incompatibles con los SO de 32 y 64 bits, estos cargan sus propias versiones
durante su arranque que reemplazan a los utilizados en las primeras etapas.
Actualización
Para una referencia de tarjeta madre el fabricante puede publicar varias
revisiones del BIOS, en las cuales se solucionan problemas detectados en los
primeros lotes, se codifican mejores controladores o se da soporte a nuevos
procesadores. La actualización de este firmware puede ser realizado con algún
programa para quemar una nueva versión directamente desde el sistema
operativo, los programas son propietarios de cada compañía desarrolladora del
firmware y por lo general pueden conseguirse en internet junto al BIOS
propiamente dicho. La actualización del BIOS es percibida como riesgosa dado
que una falla en el procedimiento conduce a que la tarjeta madre no arranque.
Debido a ello algunos fabricantes usan sistemas como el bootblock que es una
porción de BIOS que está protegida y que no es actualizable como el resto del
firmware.
Firmware en tarjetas adaptadoras
Un sistema puede contener diversos chips con firmware BIOS además del que
existe en la placa base: tarjetas de video, de red y otras cargan trozos de
código en la memoria (con ayuda de la BIOS principal) que permite el
funcionamiento de esos dispositivos.
La BIOS de video es visible como un integrado separado
Tarjetas de video
A diferencia de otros componentes del sistema, la tarjeta de video debe
funcionar desde el arranque inicial, mucho antes de que cualquier sistema
operativo esté siendo cargado en la memoria RAM: en los sistemas con video
integrado, la BIOS de la tarjeta madre contiene las rutinas necesarias para
hacer funcionar el video de la placa.
Los primeros computadores (que no poseían video integrado) tenían BIOS
capaces de controlar cualquier tarjeta adaptadora MDA y CGA. En 1984
cuando aparecieron sistemas nuevos como el EGA fue necesario agregar una
BIOS de video para mantener la compatibilidad con esos sistemas que no
tenían las rutinas de manejo para el nuevo estándar; desde esa época las
tarjetas de video incluyen un firmware propio.
El BIOS de estas adaptadoras provee herramientas básicas para manejar el
hardware de video que ofrece la tarjeta. Cuando el computador inicia, algunas
de esas tarjetas muestran en pantalla la marca de la misma, el modelo y la
versión del firmware además del tamaño de la memoria de video.
El mercado de los BIOS
La gran mayoría de los proveedores de placas madre de arquitectura x86
delega a terceros la producción del BIOS. Los fabricantes suelen escribir y
publicar actualizaciones del firmware en las cuales se corrigen problemas o se
da compatibilidad a nuevos productos. Los principales proveedores de BIOS
son American Megatrends (AMI) y Phoenix Technologies (que compró Award
Software International en 1998). Existen proyectos de BIOS bajo el esquema
de software libre como Coreboot que ofrecen firmware alternativos para unas
pocas referencias de tarjetas madre.