| Artículos | 01 OCT 2002

EFI (Extensible Firmware Specification)

Tags: Histórico
Eugenio Barahona.
Mientras que los sistemas compatibles x86 se basan en los servicios de la BIOS para la carga del sistema operativo, es preciso definir un mecanismo similar para la nueva arquitectura IA64 de Intel.

Desde que IBM lanzó el primer PC, se estableció en el mercado un mecanismo estándar mediante el que la BIOS del sistema es capaz de localizar, en un disquete o en un disco duro, el sector de arranque para proceder a su carga en memoria y posterior ejecución. El sector de arranque contiene a su vez código ejecutable que se ocupa de cargar en la memoria los ejecutables necesarios para completar la carga y ejecución del sistema operativo. El código del sector de arranque se apoya, por su parte, en servicios que proporciona la BIOS para acceder al soporte físico desde donde se va a cargar el sistema operativo.
Las nuevas arquitecturas de procesadores de 64 bits también necesitan disponer de un mecanismo que proporcione la interacción necesaria entre el programa de carga del sistema operativo y la plataforma hardware y el firmware de ésta. Precisamente la especificación EFI (Extensible Firmware Specification) define una interfaz entre el sistema operativo y el firmware que se encarga de inicializar el hardware, que además puede implementarse tanto sobre las actuales arquitecturas de 32 bits como, por ejemplo, sobre la IA64 de Intel. Dicha interfaz está diseñada en torno a una serie de tablas que contienen información relacionada con la plataforma hardware, y a una serie de llamadas a servicios, utilizables tanto desde el sistema operativo como desde el programa de carga de éste.
Una de las principales ventajas que proporciona la especificación EFI es un más que aceptable grado de abstracción respecto al hardware subyacente, lo que hace posible que los desarrolladores de programas de carga de sistemas operativos puedan olvidarse de crear software específico dependiendo del soporte desde el que se efectúe la carga del sistema. Esta abstracción se efectúa gracias a que EFI define una serie de interfaces abstractas que no están ligadas a ningún hardware concreto. Esto se diferencia claramente del panorama existente en el mundo de la compatibilidad AT, donde para acceder a servicios de lectura de sectores o pistas de un disquete o disco duro es preciso usar la INT 13H, mientras que para cargar un sistema desde un CD-ROM es preciso disponer de software compatible con la especificación El Torito.
Por otro lado, también se evita que muchos dispositivos físicos deban incorporar memorias flash que contienen pequeñas BIOS que se encargan de configurar el hardware que las incluye para hacerse visible al sistema operativo o para que éste los detecte correctamente. EFI dispone de los mecanismos necesarios para que el código que ahora reside en memorias flash lo haga en dispositivos de almacenamiento masivo, de manera que sea sencillo implementar código que soporte extensiones de la plataforma hardware.
También se ha tenido cuidado para que las implementaciones de la especificación EFI puedan basarse en reutilizar código escrito para las actuales BIOS, de manera que una implementación EFI para una plataforma actual de 32 bits no tenga que desarrollarse partiendo de cero. También se mantiene compatibilidad con las estructuras que definen particiones en los discos duros, de manera que sea posible que convivan en un mismo disco sistemas operativos compatibles EFI y otros que usan los servicios de la BIOS tradicional. Tampoco se han redefinido estructuras e interfaces cuando ya existían estándares que cubrían un determinado aspecto de la interacción con el hardware, como por ejemplo ha sucedido con el estándar ACPI.

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información