1. BIOS 1
BIOS
BIOS BIOS:(Basic input/output system)
Fabricantes comunes:
• American Megatrends
• Phoenix Technologies
• Otros
La BIOS (sigla en inglés de basic input/output system)
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 o programa.
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), ahí 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 RAM 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
2. BIOS 2
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.
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 ordenadores (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 La BIOS de video es visible como un integrado separado
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.
3. BIOS 3
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.
Enlaces externos
• Ayuda para la configuración del BIOS [1]
• Como programar tu propio Boot loader [2]
Referencias
[1] http:/ / www. red-atlantic. com/ TXT/ ARTICULOS/ bios_19_11_2002. html
[2] http:/ / code. google. com/ p/ akernelloader