El Sistema Básico de Entrada/Salida (Basic Input-Output System), conocido simplemente con el nombre de BIOS, es un programa informático inscrito en componentes electrónicos de memoria Flash existentes en la placa base. Este programa controla el funcionamiento de la placa base y de dichos componentes. Se encarga de realizar las funciones básicas de manejo y configuración del ordenador.
Historia del ROM BIOS
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 disquete 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 BIOS.
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 desarrolló 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 retro compatibilidad 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.
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.
IBM PC ROM BIOS
El IBM ROM BIOS, IBM BIOS o ROM BIOS era el BIOS del computador IBM PC. El BIOS residía en una memoria ROM de la tarjeta madre del IBM PC y ocupaba 8 KiB. El BIOS realizaba un Power On Self Test (POST)), donde se revisaban e inicializaban algunos componentes del computador, se inicializaba y ponía operativo al BIOS y al final se ejecutaba el Boot Strap Loader, el cual, cargaba en memoria RAM y ejecutaba el programa que residía en el primer sector del diskette, o en caso de no poder hacerlo, cargaba al IBM Cassette BASIC, la versión de BASIC que residía en la ROM de la tarjeta madre.
En el IBM PC Technical Reference Manual (Manual de Referencia Técnica del IBM PC), había un listado completo del código fuente en assembler del BIOS. Este listado del código fuente fue usado con ingeniería inversa y técnicas de cuarto limpio para realizar clones legales del BIOS. Con estos BIOS se hizo posible el surgimiento de la industria de los clones compatibles con el IBM PC que llega hasta nuestros días.
Funciones del BIOS
El BIOS tenía funciones básicas de entrada/salida para el teclado, el pantalla, la impresora, el puerto de comunicaciones RS-232, el manejo de las unidades de diskette y la interface para cassettes, entre otras. Adicionalmente había rutinas que respondían a interrupciones de dispositivos del hardware. Había también una función para llamar al BASIC en ROM.
Funciones
Las funciones del BIOS se accesaban invocando interrupciones por software para el CPU del IBM PC, el Intel 8088. Esto hacía que el CPU generara una interrupción y fuera llamada la función del BIOS a la que apuntaba el vector de interrupción correspondiente. Los parámetros a la función se pasan por medio los registros internos del CPU (AX, BX, CX, DX, etc), y en caso de que una función tuviera que retornar algún valor, también lo hacía mediante los registros del procesador.
La siguiente es una lista de las funciones del BIOS. (Los números de las funciones están en hexadecimal, y representan el número de interrupción que se necesita llamar por software desde un programa):
05 - Imprime el contenido de la pantalla (Print Screen)
10 - I/O para el video
11 - Determinación del hardware opcional instalado
12 - Determinación de la cantidad de memoria RAM
13 - I/O para la unidad de diskette
14 - I/O para el puerto serial RS-232
15 - I/O para la unidad de cassette
16 - I/O para el teclado
17 - I/O para la impresora
18 - Ejecuta al IBM PC ROM BASIC
19 - Boot Strap Loader
1A - Retorna o ajusta la hora
No hay comentarios.:
Publicar un comentario