BIOS es la abreviatura de “Basic Input and Output System” (sistema básico para control de entradas y salidas de datos en un computador). Aunque el sistema operativo se considera que está grabado en un disco, la verdad es que una parte importante está grabada en una porción de la memoria ROM del computador. Se le denomina BIOS, y se dedica fundamentalmente al control básico o primordial de los periféricos de entrada/salida.
Entre
los servicios básicos del ROM BIOS está el control de todos los dispositivos
periféricos, como el monitor de video, el teclado y las unidades de disco, así
como el mantener actualizada la fecha y la hora del día. Sus programas
convierten un comando simple, tal como la orden para leer algo del disco, en una
secuencia de pasos necesarios para ejecutar dicha tarea, incluyendo la detección
y corrección de errores. El BIOS sirve de intermediario entre los programas que
se están ejecutando en la memoria RAM (incluyendo al DOS) y los elementos periféricos
(hardware).
Esto
significa que trabaja en las dos direcciones: Por un lado, recibe de los
programas de aplicación petición de sus instrucciones para el manejo estándar
de los dispositivos de entrada/salida de datos. El programa invoca estos
servicios del BIOS de la memoria ROM mediante la combinación de un número de
interrupción que indica el objeto solicitado, tal como los servicios de la
impresora) y un número de servicio (que indica cuál tarea se va a ejecutar).
Por el otro lado, el BIOS se comunica con los elementos del computador (pantalla, unidades de disco, etc.) mediante comandos detallados con códigos requeridos por cada dispositivo. Este lado del ROM BIOS también maneja cualquier interrupción de hardware que un dispositivo genere para solicitar atención. Por ejemplo, cada vez que el usuario pulsa una tecla, el teclado genera una señal de solicitud de interrupción que le permite al BIOS darse cuenta de ello.
En el manejo de los discos, por ejemplo, el control no es lo suficientemente sofisticado como para manejar información a nivel de archivos, pero puede hacer operaciones simples, tal como leer y escribir en sectores individuales.
Debido a que el número de lados de grabación,
cantidad de pistas y sectores varía según el diseño y capacidad de la unidad
de disco, el BIOS necesita conocer exactamente las características de las
unidades de disco puestas en el computador, esto es, necesita saber cuál es la
geometría del disco. Parte del BIOS se denomina fixed-disk BIOS (sistema básico
de entrada-salida para el disco fijo, o duro). Contiene una tabla que lista la
geometría de un cierto número de unidades de disco, usualmente los más
comunes, además algunos BIOS incluyen rutinas de autodetección de los parámetros
de los discos duros. Para hacer el formato de bajo nivel del disco duro se
precisa saber cuál numero le ha sido asignado en el BIOS a cada referencia, o
conocer el número de cilindros y de cabezas.
En algunos manuales del “system board” viene una
tabla con los números o tipos asignados a las referencias comerciales más
comunes, según el BIOS incluido en el sistema. Otras veces dicha tabla de
consulta viene grabada también en la memoria ROM, formando parte de unas
rutinas para hacer el SETUP (configuración) al computador. En cada nueva versión
de BIOS se incluyen más referencias de discos en la tabla (más geometrías).
Para informar al BIOS el tipo de disco puesto en el
computador, el tamaño de la memoria, la fecha actual y el tipo de monitor, es
necesario correr un programa denominado SETUP, el cual puede estar grabado en el
mismo integrado EPROM del BIOS, o ser parte de otras rutinas localizadas en un
disquete paro diagnóstico, usualmente suministrado por el vendedor del sistema
(esto era el caso de las XT).
Un computador del tipo XT tiene apenas un chip ROM
para las rutinas de arranque y para el BIOS del sistema, de 128 kilobits de
capacidad. Algunas computadoras AT tenían dos chips de 256 kilobits: Uno,
marcado H (high), con la mitad correspondiente a los bits de mayor prioridad de
las rutinas, y otro, L (low), para los de menor prioridad. Actualmente se
acostumbra utilizar un solo chip EEPROM o FlashROM de 512 kilobits o más para
almacenar el software del BIOS de forma que pueda ser actualizado si es
necesario con un software especial suministrado por el fabricante.
Como se mencionó, en la memoria ROM existen
programas hasta para cuatro funciones distintas en el computador, pero los del
BIOS son posiblemente la porción más importante. Se los denomina ROM BIOS, y
permanecen activos cuando el computador está trabajando.
1- Rutinas de arranque, que son los
programas encargados de poner en funcionamiento al computador (start-up routines
ó rutinas POST).
2- El ROM BIOS, que es un conjunto de
rutinas en lenguaje máquina para desempeñar funciones de acople entre los
programas del usuario (incluyendo al DOS) y los aparatos de Entrada/Salida de
datos, entre otras cosas.
3- El ROM BASIC, conjunto de
instrucciones del lenguaje BASIC para programación. Esta parte era opcional. En
los computadores compatibles IBM se requiere cargar el BASIC desde un disco.
(Actualmente en desuso).
4- Las extensiones de la ROM, que son
programas que se unen a los de la memoria ROM principal cuando se agrega al
computador cierto equipo opcional. Uno de estos es el archivo IBMBIO.COM o el
IO.SYS que forma parte del sistema operativo DOS en el disco, y otros pueden
estar en chips ROM opcionales, que se pueden enchufar en una o dos bases que
para ello tienen algunas tarjetas madres (ó mother board).
Firmware: Se refiere a las instrucciones o datos grabados de manera permanente en una memoria ROM. Muchos dispositivos y tarjetas de expansión incluyen chips ROM con las rutinas necesarias para el manejo interno de cualquier interrupción de hardware que este genere y establecer una comunicación más eficiente con el BIOS del sistema. Se acostumbra recientemente utilizar memoria EEPROM para poder actualizar el firmware y mejorar las características de los dispositivos.