Trabajo 3.8 de PEI

Anuncio
II–PEI 09/10
______________________________________________________________________
BIOS
3.8 – BIOS
Borja Brisson Vega, Jonán Cruz Martín
En este trabajo exploraremos qué es la BIOS de un computador
y qué funciones realiza. Veremos cuál es el papel de la BIOS en
el arranque del sistema y el manejo del hardware. También
estudiaremos las tecnologías de implementación de la BIOS, su
configuración, y los errores que pueden producirse en el
sistema.
1. Introducción
La BIOS es una parte básica de un computador compuesta por un chip que
almacena configuración esencial del computador y software para manejar el hardware
del computador. La BIOS es la encargada de arrancar y comprobar el sistema, así como
de mantener la configuración esencial del hardware para el correcto funcionamiento y
uso del sistema.
Una vez realizada la comprobación y configuración del hardware, la BIOS
también se ocupa de buscar el cargador de arranque en un disco de arranque, que es
lo que permite cargar el sistema operativo. La configuración de la BIOS es de vital
importancia, y alberga información sobre los discos de arranque, entre otras cosas.
2. Conceptos básicos sobre la BIOS
La BIOS (Basic Input/Output System) consiste en un conjunto de instrucciones
software de bajo nivel responsables del funcionamiento de los periféricos de un
sistema informático. Estas rutinas también reciben el nombre de drivers.
Cuando nació la BIOS, todos los drivers del sistema se encontraban en una ROM
(memoria no volátil de sólo lectura) situada en la placa base y que era capaz de
albergar en 128KB, además de todos los drivers, las rutinas del POST y el cargador del
bootstrap. El POST (Power-on Self-test) se trata de un programa responsable de
comprobar los dispositivos en el arranque de la máquina. El cargador del bootstrap
está diseñado para cargar el sistema operativo desde disco. Este programa se busca y
carga desde el primer sector de cada disco de arranque.
El propósito principal de la BIOS es servir de interfaz entre el sistema operativo
y el hardware del sistema. Para ello, la BIOS proporciona una interfaz estándar para el
uso de los dispositivos. La BIOS permite una abstracción del sistema operativo
respecto a la máquina donde se ejecuta, permitiendo así una generalización del
software sin independencia del hardware. Esto es debido al diseño de software en
capas, en el que una capa inferior suministra servicios a la capa superior sin conocer
ésta los detalles de la capa inferior. Para ello, el sistema operativo dispone de un
sistema de interrupciones software que permite conectar las peticiones de uso de
periféricos con las rutinas de servicio que proporciona la BIOS. Este sistema no es más
que un vector de interrupciones donde cada entrada contiene el comienzo de su rutina
correspondiente.
Para poder efectuar este papel la BIOS ha de cargar en memoria (RAM) todas
las rutinas precargadas en la ROM junto con el sistema operativo, haciendo uso para
ello del cargador del bootstrap. Esta carga en memoria RAM se hace, entre otras cosas,
por su mayor capacidad y velocidad de acceso.
II–PEI 09/10
______________________________________________________________________
BIOS
En la evolución de la informática se vio reflejada la escasez de memoria de la
ROM, ya que el número de dispositivos aumentaba y comenzaba la tendencia de
sustitución de módulos, por lo que llevó a la necesidad de permitir a la BIOS agregar
nuevos drivers y actualizar los ya existentes. Para ello se introdujo la carga de drivers
mediante adaptadores de tarjeta (slots) y mediante disco. En este nuevo diseño hay
que diferenciar los drivers según su importancia, es decir, normalmente los drivers que
no sean estrictamente necesarios durante el arranque serán cargados desde disco. Por
ejemplo, el driver del disco debe de estar contenida en la ROM de la placa para poder
continuar con el arranque (con el arranque del SO, entre otras cosas).
Aunque ahora la BIOS se divida en tres fuentes, continúa teniendo su
significado como entidad. La porción de BIOS contenida en ROM (placa base y slots) se
conoce como firmware.
Otras de las tendencias dentro de la BIOS ha sido el sustituir todos los drivers
de 16 bits del inicio por drivers de 32 ó 64 bits procedentes de disco cargado a través
del sistema operativo (los de 16 bits permanecen en la ROM y son sustituidos por el
sistema operativo).
3. Arranque de la máquina
Al iniciar el proceso de arranque el chipset inicia la BIOS la cual ejecuta el POST
analizando todos los dispositivos del sistema. Una vez analizados la BIOS escanea los
dispositivos en la búsqueda de adaptadores de tarjetas contenedoras de sus propios
drivers, una vez localizadas son cargadas en memoria. Tras la detección de los drivers
externos la BIOS carga sus rutinas precargadas y se dispone a cargar el sistema
operativo mediante el bootstrap. Una vez cargado el sistema operativo por completo
este realizará las operaciones que crea conveniente, como puede ser la carga de
drivers específicos, o la sustitución de la rutinas de 16-bit iniciales por otras de 32 o 64bits.
4. Implementación y carga de la BIOS
1. Tecnología de la BIOS
A lo largo de la historia se ha utilizado diferentes tecnologías en el
almacenamiento de la BIOS, todas relacionadas con la arquitectura ROM.
• ROM: Derivado de la arquitectura RAM con las peculiaridades de no
ser volátil y que los datos almacenados no se puede modificar, al
menos no de manera rápida o fácil.
• PROM: Memoria programable mediante el quemado de sus fusibles,
siendo esta irreversible.
• EPROM: Memoria programable mediante voltajes altos respecto a
los utilizados. Tiene la propiedad de ser borrado mediante la
exposición a luz ultravioleta
• EEPROM: Es un tipo de memoria ROM que puede ser programado,
borrado y reprogramado eléctricamente, a diferencia de la EPROM.
2. Métodos de carga de la BIOS
La BIOS puede cargarse a través de tres fuentes:
1. ROM de la placa base: Se encarga de cargar los drivers
fundamentales para el arranque del sistema. Un ejemplo de estos es
II–PEI 09/10
______________________________________________________________________
BIOS
el driver de disco, ya que sin él no puede acceder al bootstrap del
sistema operativo, entre otras cosas.
2. Slots: Durante el inicio del arranque la BIOS escanea todos los slots
buscando aquellos que contengan una ROM en su placa, donde
almacenan su driver, y una vez localizados esta los carga en
memoria. Estos drivers se consideran importantes para el arranque
del sistema con los contenidos en la ROM de la placa madre, un
posible caso es el driver gráfico.
3. Disco: Carga en memoria todos los drivers restantes tras la carga del
sistema operativo. Este método contiene todos los drivers no
estrictamente necesarios para el arranque del sistema, como puede
ser los drivers de la tarjeta de sonido o de la tarjeta network.
5. Actualización de la BIOS
Existen diferentes métodos para actualizar la BIOS
• Sustituir completamente el dispositivo de almacenamiento de la BIOS, por una
nueva BIOS almacenada en una nueva memoria ROM. Éste es el caso de las
memorias ROM y PROM.
• En el caso de las memorias EPROM, se reprograma el contenido de la memoria tras
borrarlo con luz ultravioleta. Para esto es necesario extraer el chip.
• Para la actualización de la BIOS de una memoria EEPROM no es absolutamente
necesaria la extracción de ésta, ya que se puede actualizar con la simple ejecución
del programa de actualización que podemos bajarnos de la página del distribuidor,
por ejemplo. La seguridad de la escritura suele estar formado actualmente por un
encriptado específico para cada BIOS y/o un interruptor físico que controla la
escritura en la BIOS. Aunque esto es lo que habitual actualmente, hace algún
tiempo, la actualización de estas memorias se realizaba mediante un disquete que
contenía la actualización. Para esta actualización se solía conectar el disquete o Cd
a la Flash ROM.
6. Configuración de la BIOS
La BIOS necesita guardar cierta información sobre el hardware del sistema y
cómo manejar dicho hardware, así como información sobre cómo arrancar el sistema e
información de seguridad.
La configuración de la BIOS contiene particularmente información sobre el
hardware, tal como los tipos de dispositivos, su frecuencia o velocidad de operación,
su capacidad de almacenamiento, etc.; y permite modificar estos valores.
Para permitir la modificación de la configuración de la BIOS, existe un programa
de configuración (BIOS setup program) que se puede iniciar presionando una tecla
durante el POST.
Dado que existe una gran variedad de opciones de configuración, éstas están
organizadas en el programa de configuración mediante menús y submenús que
agrupan opciones de características similares.
Todas las BIOS presentan secciones comunes en su programa de configuración.
Sin embargo, existen algunas opciones que son específicas de cada sistema, y que
varían fundamentalmente en función del chipset.
II–PEI 09/10
______________________________________________________________________
BIOS
Veamos ahora los menús y opciones más relevantes y que son comunes a todos los
sistemas:
• Maintenance: Permite borrar la configuración de la BIOS y muestra información
de la CPU.
• Main: Muestra información del sistema (versión de la BIOS, tipo y velocidad de
CPU, cantidad de memoria). Permite configurar el Hyper-Threading y la
corrección de errores de memoria, junto con el idioma del programa de
configuración y la fecha y hora del sistema.
• Advanced: Establece opciones avanzadas específicas del chipset. Permite
configurar prioridades de interrupción y velocidades de operación para los
buses. Configura las señales y frecuencias de la memoria. Ofrece funciones de
overclocking y burn-in test. Configura los puertos de E/S y la comunicación ATA
y USB.
• Security: Establece contraseñas y qué tipo de acceso a la BIOS tiene un usuario.
• Power: Configura la gestión de la energía y la suspensión del sistema, y eventos
para despertar de suspensión.
• Boot: Configura los dispositivos y el orden de arranque para arrancar un
sistema operativo.
• Exit: Permite salir del programa de configuración y guardar los cambios hechos.
Permite guardar la configuración como “default” y restaurar la configuración
por defecto.
7. BIOS Plug and Play
En el pasado, instalar y configurar dispositivos en un PC requería configurar la
tarjeta de expansión para seleccionar una línea de interrupción, un puerto de
entrada/salida y un canal de DMA. Esto solía hacerse moviendo jumpers en la tarjeta
de expansión, y para ello había que conocer los recursos libres en el sistema. Si se
seleccionaba un recurso que ya estuviera en uso, había un conflicto y el sistema no
arrancaba.
La tecnología Plug and Play (PnP) está diseñada para evitar estas
complicaciones y los posibles errores de conflicto debidos a una configuración
incorrecta. La tecnología PnP tiene tres componentes principales:
1. BIOS con soporte PnP (Plug and Play BIOS)
2. Información de configuración del sistema (Extended System Configuration Data,
ESCD)
3. Sistema operativo con soporte PnP
La BIOS PnP inicia la configuración de las tarjetas PnP cuando se arranca el
sistema. Para evitar repetir este proceso de detección y configuración con cada
arranque, la BIOS guarda la información de configuración de las tarjetas en el área de
ESCD (área de la memoria CMOS de la BIOS).
La próxima vez que se arranque el sistema, si el hardware no ha cambiado, se usará la
información del ESCD para configurar el sistema, en lugar de esta reasignando los
recursos nuevamente.
II–PEI 09/10
______________________________________________________________________
BIOS
Para más información sobre ESCD, consúltese [2].
Si en el siguiente arranque el hardware ha cambiado, la BIOS consultará el área
de ESCD en busca de la configuración adecuada para las nuevas tarjetas, pero no la
encontrará. La BIOS consultará qué recursos están libres y qué recursos son necesarios
para la nueva tarjeta, y realizará la configuración pertinente.
Si la BIOS es incapaz de localizar suficientes recursos disponibles, las rutinas de PnP del
sistema operativo completan la tarea.
Para más información sobre BIOS PnP y dispositivos PnP, consúltese [1].
8. Mensajes de error de la BIOS
Al encender la máquina, la BIOS lleva a cabo un proceso de comprobación del
hardware (POST) y también se encarga de arrancar el sistema, dando paso a la carga
del sistema operativo. Durante este proceso, pueden ocurrir diversidad de errores que
habrán de ser notificados. Por ello, se han identificado los posibles errores y se les ha
asignado un código de error a cada uno.
La BIOS puede notificar un error de diferentes maneras. Usualmente lo más
cómodo será mostrar un mensaje por pantalla. Sin embargo, si el error se ha
producido antes de poder inicializar la tarjeta de vídeo, la BIOS tendrá que informar de
dicho error de alguna otra manera.
Cuando no se puede mostrar un mensaje por pantalla, la BIOS opta por
reproducir un código sonoro que identifica el tipo de error. Este código sonoro
consiste en una serie de pitidos de diferente duración y con un intervalo de separación
temporal entre cada pitido.
La otra forma que tiene la BIOS de notificar un error es almacenando el código
de error en el puerto de entrada/salida que se encuentra en la dirección 80h. Este
código de error se puede leer con unas tarjetas especiales (POST cards) que leen el
código de error del puerto 80h y muestran dicho código en un display. Estas tarjetas se
conectan a algún slot de un bus.
Este tipo de comprobaciones a veces también se llaman manufacturing tests, porque
este método fue pensado originalmente para detectar errores en la fabricación
durante el proceso de ensamblado del sistema, donde no se dispone de una pantalla
para visualizar errores.
9. Conclusiones
Las ideas básicas sobre las que ha de prestar mayor atención es la compresión
de la BIOS como entidad, no como un dispositivo físico, si no como todas aquellas
partes, físicas o lógicas , las cuales permitan la función de esta. Además es muy
importante entender la importancia de la BIOS respecto a la generalización del sistema
mediante la abstracción del hardware. También es de destacar el funcionamiento y
características del Plug&Play como la detección de periféricos y la posterior
configuración de la BIOS.
Bibliografía
[1] Scott Mueller. Upgrading and Repairing PCs. Que Publishing, 2007.
[2] Charles M. Kozierok. Extended System Configuration Data (ESCD). The PC Guide, 17 de
abril de 2001. http://www.pcguide.com/ref/mbsys/res/pnpESCD-c.html
Descargar