BASIC INPUT-OUTPUT SYSTEM BIOS OMAR ACOSTA PADRÓN INDICE ¿Qué es la BIOS? Fabricantes Aspecto hardware Aspecto software Interrupciones Seguridad Plug and Play BIOS Actualizarla Resumen, arranque de un ordenador Visión de futuro ¿Qué es la BIOS? La BIOS es un conjunto de herramientas software y hardware que controlan todos los recursos hardware del sistema todo momento. Evita al sistema operativo conocer el funcionamiento interno de cada dispositivo estableciendo una interface entre el SO y el hardware. También es la BIOS la encargada del correcto arranque del ordenador. Fabricantes Como podemos observar en el enlace siguiente, en el mercado de la BIOS existen muchos fabricantes. http://support.microsoft.com/kb/24390 9/es En el plano de los ordenadores los principales son: Phoenix American Megatrends (AMI BIOS) Award BIOS Microid Research Existen otras muchas empresas fabricantes de dispositivos como pueden ser móviles que fabrican para sus productos su propia BIOS sin necesidad de contratar a una empresa. Diversos fabricantes hacen BIOS con diferentes configuraciones y prestaciones pero con el mismo objetivos principales. Aspecto hardware La BIOS esta implementada principalmente en la placa base del ordenador donde residen la ROM BIOS y el CMOS CHIP. Otros dispositivos como tarjetas de video poseen un chip donde almacenan su propia información, la cual en el arranque del ordenador se añade a la ROM BIOS. ROM BIOS Dibujo 1: BIOS PHOENIX Dibujo 2: AMI BIOS En la ROM BIOS se está la parte software principal de la BIOS. POST, SETUP, BOOTSTRAP LOADER y los DRIVERS. Read Only Memory (ROM) es el tipo de memoria utilizada para la BIOS por que tiene la característica de no ser volátil, por lo cual la información que posee no se pierde una ves apagado el ordenador. En la actualidad se usa una EEPROM Flash ROM la cual pueden ser modificada por el usuario mediante un programa y no como hace unos años cuando se utilizaba EEPROM, la cual tenia que ser retirada de la placa base para ser modificada. CMOS CHIP Dibujo 3: CMOS CHIP En la CMOS CHIP, la BIOS guarda la fecha y hora del sistema ademas de las configuraciones que el usuario ha hechos sobre esta. Complementary Metal-Oxide Semiconductor es la tecnología que usan los CMOS CHIP. Estos están mal considerados como no volátiles pero si que consumen energía pero muy poca, tanto que solo precisa de 1 micro amperio para arrancar. Esta alimentada gracias a una pila, la cual si es quitada o si se gastara perderíamos los datos. Es tan escaso el consumo del chip que la pila dura bastantes años. Aspecto software La parte software de la BIOS está compuesta por tres programas y el sistema de controladores o drivers del sistema. POST, Power On Self Test Se ejecuta una vez se pone en marcha el ordenado y está encargado de testar todos los elementos del sistema por si hay errores con algún dispositivo o si algún dispositivo necesario para el arranque del PC no está conectado. Si el POSt encuentra algún error avisa al usuario mediante un código sonoro, el cual no está estandarizado. Ejemplo. Dibujo 4: Ejemplo: códigos sonoros del POST SETUP Es un programa que puede ejecutar el usuario mientras se ejecuta el POST pulsando una tecla o combinación de teclas, las cuales varían dependiendo del fabricante, por ejemplo: AMI BIOS, presionar suprimir. Phoenix BIOS, presionar F2. Award BIOS. Delete o control Ctrl+Alt+Esc. Microid Research, presionar Esc. Dibujo 5: Ejemplos de SETUP Dependiendo de los fabricantes de BIOS podemos encontrarnos una gran variedad de SETUP ofreciendo más o menos configuraciones, pero hay algunas que siembre podremos encontrar pues son imprescindibles. Main: es un menú donde podremos encontrar la información relevante al sistema. Versión de la BIOS, velocidad de microprocesador, tamaño de cache, hora y fecha, y otros. BOOT: nos permite decirle al sistema desde donde queremos hacer el boot al sistema, ya se desde un CD, un disco duro, un pendrive entre otros. Advanced: este menú varia bastante en posibilidad de configurar con otras BIOS, aquí podemos modificar el tipo de disco, ya sea SATA o IDE, aumentar la velocidad del micro entre otras. Security: permite proteger las configuraciones del SETUP con una contraseña, ademas algunas BIOS permiten proteger un disco duro también con contraseña. BOOTSTRAP LOADER Este programa se encarga de cargar el sistema operativo en la memoria RAM y cederle el control. Para ello utiliza una rutina como la que aparece en el siguiente enlace: http://www.omninerd.c om/articles/PC_Bootst rap_Loader_Program ming_Tutorial_in_ASM DRIVERS o CONTROLADORES También conocidos como Firmware son el código fuente de más bajo nivel. Se encarga de manejar el funcionamiento interno de los dispositivos estableciendo una interface con el SO y permitiendo el manejo del dispositivo sin necesidad de conocer su estructura interna. Son creados por el fabricante del dispositivo, por lo cual existen tantos tipos de controladores como tipos de dispositivos. Dibujo 6: Interface con la BIOS Para dispositivos de fácil manejo como puede ser el teclado, el SO y las aplicaciones no necesitan valerse de ningún tipo de información para manejarlo pues su funcionamiento está estandarizado, por lo cual no demandan información a la BIOS sino que usan comandos del DOS, no así para los dispositivos con una estructura interna difícil de comprender y utilizar, por lo cual para un programador que solicite algún recurso de uno de estos dispositivos le es siempre menos costoso valerse de las rutinas que ofrecen los controladores. Interrupciones La demanda tanto de un usuario como del sistema operativo y aplicaciones de algún recurso hardware es hecha a través de la BIOS, la cual controla todo el sistema hardware. Para gestionar la interrupciones la BIOS utiliza una tabla de vectores de interrupción (IDT) y unos programas que atienden a las interrupciones (ISR´s). Son cuatro los servicios de la BIOS: Servicios a periféricos. Servicios de estado del equipo. Servicios de hora. Servicios adicionales. Cada cual atiende a un tipo de interrupciones., por ejemplo. Una interrupción que imprima por pantalla una ristra de caracteres. Esta interrupción es atendida por la rutina de servicios a periféricos, la cual identifica el tipo de recurso que demanda, en este caso una pantalla y en con ayuda de la interface que ofrecen los controladores muestra en la pantalla los pixeles adecuados. Nótese que el usuario no es el encargado de dar color al pixel directamente, sino que este ejecuta un instrucción para que sea pintado, quien realmente le da el color físicamente es el controlador del dispositivo hardware, siendo el único capás de manejar los elementos físicos. Seguridad En relación a la seguridad de la BIOS, existen medidas preventivas para proteger la BIOS en el caso de ser dañada, y maneras de recuperarla si esta está dañada. Si se daña el CMOS CHIP, no físicamente, por ejemplo por algún conflicto entre dispositivos, podemos optar por borrar lo contenido en el chip, de esta manera restableceríamos las configuraciones predeterminadas. Existen dos maneras de hacerlo: Quitar y poner la pila, con lo cual dejamos al chip sin alimentación y por ser una memoria volátil, los datos se borran. Otra manera es utilizando los pines, los cuales nos permiten borrar la memoria sin tener que quitar la pila, evitándonos los problemas que ello conlleva. Dibujo 8: Estado inicial Dibujo 7: Estado inicial Quitar la pieza amarilla, la cual hace cortocircuito entre el pin de la izquierda y Dibujo 9: Quitar pin derecha. Dibujo 10: Cambiar de posición para borrar Cambiar de posición para borrar el chip, y al terminar dejar como estaba. Si se daña la CMOS RAM, por ejemplo con una actualización mal hecha podemos intentar recuperarla sin tener que cambiar la placa base del ordenador. Si tenemos una copia de la ROM BIOS, backup, y no ha quedado dañada toda la comunicación con el PC podemos intentar rescatarla, reescribiendo la memoria de la BIOS. Si tenemos una placa con varias BIOS existen métodos efectivos para recuperarla ya que esta segunda BIOS esta desarrollada para ese fin. Dibujo 11: Placa base con dos BIOS Plug and Play BIOS Inventado por Intel-Microsoft el 28 de Mayo de 1993. Se unieron varias empresas para obtener un estándar y en 1 de noviembre de 1993 sale la primera versión. La idea principal de plug-and-play (PnP) es que el sistema se haga responsable de la configuración del hardware y software, que se está agregando. Su objetivo, crear PC´s sin jumpers. Con lo cual permite la expansión del ordenador y solucionar los posibles problemas de configuración de los dispositivos. El sistema chequea los recursos que cada dispositivo de expansión necesita, coordina las asignaciones para evitar conflictos y le dice al sistema y software las elecciones que ha hecho. Actualizarla Existen muchas razones por la que actualizar la BIOS, por ejemplo: Añadir soporte para nuevos y más rápidos procesadores. Soportar boot para USB, DVD, ZIP,... Mejoras del POST (tiempo). Soporte para Serial ATA, Ultra DMA. Corrección de calendario. Existen muchas más razones por la cuales ha sido necesario en su momento actualizar la BIOS, muchas ellas relacionadas con las nuevas prestaciones que se han ido incluyendo al ordenador, muchas otras con las mejoras hechas sobre las rutinas y programas que componen la BIOS. Por lo cual la actualización de la BIOS no es solo necesaria si queremos añadir nuevos soportes, sino también si queremos mejorar el funcionamiento de los que tenemos. Antes de actualizar es conveniente estar seguros de la marca y modelo de la BIOS que queremos actualizar ademas de la versión, y disponer de ella con antelación. Es aconsejado hacer una copia respaldo de la BIOS antes de actualizar. Los datos en la ROM BIOS son guardados en dos segmentos de 64KB. La copia respaldo consiste en copiar los datos de la posición C0000Cffff y D0000DFFFF. Para ello usamos la el comando DEBUG en el DOS. Dibujo 12: Rutina para hacer copia de la ROM BIOS Existen tres maneras de hacer una copia respaldo del CMOS CHIP. Recordamos que en el CMOS CHIP está la fecha y hora ademas de las configuraciones personales de nuestra BIOS. Guardar una copia del CMOS CHIP consiste en saber que configuraciones predeterminadas hemos modificado en el SETUP, por ello, haciendo uso de papel y lápiz podemos conservar esa información. Otra manera es imprimiendo la pantalla que observamos en el SETUP con la tecla PrtScr, o también guardando en la memoria del PC esa información haciendo copia del CMOS CHIP, de manera similar a la ROM BIOS. Una ves tomadas la medidas oportunas recordar que un fallo durante el proceso de actualización puede dañar la BIOS. Por ello es aconsejado hacerlo sobe un SO estable y en su caso con la batería cargada. Existen varias manera de actualizar la BIOS, todas ellas se fundamentan en lo mismo, reemplazar en la memoria ROM de la BIOS los datos por otros que consideramos más novedosos. Para ello no servimos en el caso de Windows de un comando del DOS, DEBUG, el cual no permite acceder al la memoria de la BIOS, y con los parámetros adecuados reemplazar los datos. Otra manera adoptada es crear un .bat que ejecute automáticamente las instrucciones. También y más novedoso es utilizar un .exe proporcionado por el fabricante que permite ademas de actualizar, poder hacer copia respaldo entre otras opciones. Resumen, arranque de un ordenador. - Alimentación del sistema. - Se busca el programa de arranque en la posición FFFF0h de la ROM BIOS. - Ejecución del POST. - Búsqueda de la tarjeta de video y luego de otros dispositivos (discos duros,...). - Mostrar por pantalla el arranque. - La BIOS realiza test adicionales del sistema, incluido el conteo de memoria. - Se realiza un inventario del PC determinando el tipo de hardware y etiquetar los dispositivos lógicos(COM y LTP). - Se ejecuta el PnP mostrando todos los dispositivos en pantalla. - Se lanza el BOOTSTRAP LOADER. - El SO se esta arrancando. Visión de futuro Desde hace más de veinte años los la BIOS posee una aspecto y funciones similares a la actualidad, razón por la que existen actualmente varios proyectos para mejorar las prestaciones de la BIOS. EFI (Extensible Firmware Interface) es un proyecto de Intel cuya intención es crear un mini sistema operativo en cual posea un entorno gráfico y entre otras una mayor seguridad, flexibilidad y rapidez. El proyecto LinuxBIOS y lleva en marcha desde el 99. Pretende reemplazar las BIOS comerciales tal como las conocemos hoy por una básica y libre con las rutinas mínimas para iniciar el hardware y cargar un sistema operativo.