martes, 22 de abril de 2014

Los bios

Los bios
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 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

.File:Phoenix bios.jpg 

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 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 firmware 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 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 no exenta de riesgos, dado que un fallo 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 vídeo, 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 vídeo es visible como un integrado separado

Tarjetas de vídeo
A diferencia de otros componentes del sistema, la tarjeta de vídeo debe funcionar desde el arranque inicial, mucho antes de que cualquier sistema operativo esté siendo cargado en la memoria RAM: en los sistemas con vídeo integrado, la BIOS de la placa base contiene las rutinas necesarias para hacer funcionar el vídeo de la placa.

Los primeros ordenadores (que no poseían vídeo 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 vídeo 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 vídeo incluyen un firmware propio.
File:Trident TVGA9000.jpg 

El BIOS de estas adaptadoras provee herramientas básicas para manejar el hardware de vídeo 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 vídeo.

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.}



¿Qué es la bios y como resetear?



No hay comentarios:

Publicar un comentario