Posteado por: wozgeass | agosto 1, 2009

BIOS(Basic input output sytem).


Cuando encendemos la computadora, el sistema operativo se encuentra en el disco duro o alguna particion del mismo; sin embargo, si se supone que es el sistema operativo el que debe de dar soporte para cargar estos dispositivos. ¿Como demonios podria hacerlo si aun no se carga en memoria?.

Lo que es mas: ¿Como sabe el ordenador que tenemos uno o mas disco duros? ¿ Y la unidad CD.ROM etc..? ¿Como y donde guarda esos datos, junto con el tipo de memoria  y cache o algo tan sencillo pero importante como la fecha  y la hora? para todos estos se creo la BIOS.

Y se preguntaran ¿y que hay con los ordenadores de apple? estos utilizan  UEFI (Unified Extensible Firmware Interface) Desarrollada por intel, intenta reemplazar al BIOS, Ahora ¿que difrencia existe entre el BIOS y UEFI? el lenguaje en que estan programadas.

BIOS = Ensamblador                                           UEFI= lenguaje C

Como funciona UEFI

Como funciona UEFI

Los BIOS actuales emplean una tecnologia de memoria denominada FLASH. Y ¿que quiero decir con memoria flash? Pues una memoria no volatil que  puede  leerse o escribirse electricamente. Por lo tanto, es posible reprogramarla facilmente  sin sacarla del PC.

Pero mas a fondo el BIOS proporciona las siguientes  funcionalidad:

  1. Un conjunto de rutinas E/S, que son llamadas para acceder al hardware.
  2. Un programa de configuracion del BIOS, que sirve para modificar informacion de configuracion del mismo que se almacena en otro chip de la placa base con memoria RAM basada en la tecnologia CMOS. Este chip se suele denominar RTC/NVRAM por que ademas de la memoria CMOS incluye un relog de tiempo real (Real Time Clock, RTC) y por que la CMOS alimentada con una pequeña pila puede mantener la informacion durante mucho tiempo, por lo que se le llama RAM(Non Volatile RAM, NVRAM).
  3. Deteccion, comprovacion y configuracion de todos los dispositivos hardware necesarios para poder ejecutar un sistema operativo. El conjunto de rutinas que llevan acabo estas operaciones constituyen lo que se denomina POST (Powe On Self Test). El POST se ejecuta justo nada mas arrancar el PC y finaliza cuando comienza la carga del sistema operativo. Durante la ejecucion del POST, pulsando una determinada tecla (tipicamente F2, F8 o SUPRIMIR) Pasa a ejecutarce la utilidad del setup.

Secuencia de arranque del ordenador.

  • Se pulsa el boton de encendido  del gabinete lo que activa una señal PS_ON# que llega a la fuente de alimentacion y provoca su encendido. Mientras se lleva a cabo este encendido la señal de reset de la cpu esta activa, por lo que no se pueden ejecutar instrucciones. Al cabo de un breve periodo de tiempo la fuente de alimentacion genera correctamente todas las tencion de alimentacion y activa la señal PWR_OK que llega a la placa base. Una vez la placa base observa la señal PWR_OK activada desactiva la señal de reset y la CPU comienza la ejecucion.
  • La CPU comienza a ejecutar en modo real (las direcciones son de 20 bist y no esta activa ni la segmentacion ni la paginacion). La primera instruccion que se ejecuta es la que se encuentra en la direccion FFFFOh. Esta instuccion esta incluida entre el rango del ROM BIOS de la placa base. Es un salto a la primera instruccion del POST.
  • Durante el POST se ejecutan una serie de rutinas de deteccion, comprobacion y configuracion basica de los dispositivos claves del computador. Algunas rutinas muestran informacion de dispositivos por pantalla otras incluso solicitan opciones al usuario, como la seleccion del dispositivo de arranque.
  • Casi al final del POST se buscan ROM BIOS adicionales presentes en tarjetas de expansion. Si se encuentra alguna de ellas y es valida se le cede el control. Pasando a ejecutarce el POST particular de la tarjeta. Durante el POST de la tarjeta se ejecutan rutinas de deteccion, comprobacion y configuracion de dispositivos ubicados en la tarjeta o conectados a la misma.
  • Una vez que el POST de las tarjetas con ROM BIOS adicionales devuelven el control, o si no existen estas ROM BIOS adicionales, la ROM BIOS del sistema comprueba tipicamente la pulsacion de la tecla que inicia la ejecucion de la utilidad de setup del sistema. Esta utilidad muestra los parametros actuales del sistema, almacenados en el chip RTC/NVRAM. Estos parametros,almenos una modificacion vuelven a almacenarce en el chip RTC/NVRAM.
  • Entre todos los dispositivos con capasidad de proporcionar el codigo de un  sistema operativo (unidades de disco flexible, disco duro, unidades opticas, interfaces de red etc.), se busca el primero de ellos de una lista que contiene un registro de arranque maestro valido, denominado Master Boot Record(MBR).
  • Si se encuentra un MBR valido, se carga en memoria el sector de arranque del sistema operativo, especificado por el MBR, y se le cede el contro de la maquina.
  • El sector de arranque del sistema operativo carga en memoria y ejecuta el cargador del sistema operativo. Por ejemplo, en el caso de Windows, el cargador tipico es el programa NTLDR, pero con la llegada de Windows Vista fue remplazado por winload.exe y Windows Boot Manager. Y que hay de Linux? Pues tiene varias opciones algunas de ellas son:
  1. lilo(Linux Loader).
  2. grub(Grand Unified Bootloader).
  3. silo(SPARC Improved Boot Loader) para ordenadores SPARC(32 bits) o UltraSparc(64 bits).
  4. syslinux.
  • El cargador del sistema operativo carga en memoria y ejecuta el sistema operativo. Cuando el sistema arranca de nuevo tras una operacion de reinicio, buena parte de las comprobaciones del POST no se llevan a cabo, acelerando el proceso de arranque.

Y te preguntaras ¿Existiran errores a la hora de las comprobaciones POST?

Durante la ejeucion del POST se ejecutan un  conjunto de rutinas algunas de las cuales llevan acabo comprobaciones sobre el hardware y pueden detectar dos tipos de problemas:

    • Recuperables: Se trata de errores que no impiden el arranque del sistema, pero que deben ser tenidos en cuenta por el usuario. Por ejemplo, cuando el POST localiza una ROM BIOS en una tarjeta de expansion y esta no es correcta (El  checksum no es valido) genera mensajes de error que informan al usuario.
    • alto!! ¿pero que  significa checksum? Pues, es una medida muy simple para proteger la integridad de datos, verificando que no hayan sido corruptos. ¿Pero que es lo que hace realmente? El proceso consiste  en sumar cada uno de los componentes basicos de un sistema (cada byte) y almacena el valor del resultado. Posteriormente se realiza el mismo procedimiento y se compara el resultado con el valor almacenado. Si ambas sumas concuerdan se asume que los datos probablemente no han sido corrompidos.
    • Terminales: Se trata de errores graves que provocan el apagado del sistema. Antes de esto, el gestor de errores terminales del BIOS genera los siguientes codigos:
      1. Una secuencia de pitidos a traves del altavoz de la caja que identifica el punto de comprobacion.
      2. Un numero que identifica el punto de comprobacion se escribe en el puerto de E/S.
      3. Se intenta inicializar el video y se escribe en la esquina superior izquierda de la pantall el punto de comprobacion.

¿Se puede actualizar el BIOS?

Las memorias BIOS modernas pueden ser actualizadas. Las razones para actualizar las memorias BIOS pueden ser:

  • Añadir soporte para dispositivos nuevos. Por ejemplo, para poder acceder a un nuevo dispositivo de almacenamiento optico.
  • Añadir soporte para una nueva tecnologia. Por ejemplo, para poder arrancar desde dispositivos USB
  • Corregir errores en el codigo del BIOS. Nuevas versiones del BIOS pueden corregir problemas de versiones antiguas.

Para conseguir una actualizacion del BIOS hay que acudir al fabricante de la placa base  y no al fabricante del BIOS. Esto es asi porque las memorias BIOS son adaptadas a las Tarjetas Madre. Se puede saber a traves del identificador de BIOS si el BIOS es AMI o Award. Este identificador aparece en la esquina inferior izquierda de la pantalla durante la comprobacion de la memoria. En internet se encuentran varias paginas con esta informacion.

wozgeass: push eax, 1

int 80h

EOF!!!

hasta el proximo post…

Anuncios

Responses

  1. […] Cuando encendemos la computadora, lo que primero entra en funcion es algo llamado bios(basic input output system) pero ya no explicare el proceso de arranque del BIOS, dudas chequen esto (BIOS). […]


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: