Interfaz Extensible del Firmware
|
Extensible Firmware Interface (EFI) o Interfaz Extensible del Firmware luego renombrada a Unified Extensible Firmware Interface (UEFI) es una especificación desarrollada por Intel dirigida a reemplazar la antigua interfaz del estándar IBM PC BIOS, interactúa como puente entre el sistema operativo y el firmware base.
Sumario
Historia
Durante las primeras fases de desarrollo del microprocesador Intel Itanium de HP a mediados de los años 90. Debido al avance tecnológico de estos procesadores, las especificaciones de la BIOS resultaban muy limitadas, por esta razón Intel desarrolló inicialmente en 1998 lo que sería la IBI, del acrónimo inglés Intel Boot Iniciative, que posteriormente fue renombrado a EFI. La primera versión definitiva, la 1.02, se presentó a finales de 2000 y ha ido evolucionando posteriormente. Ahora el desarrollo de la especificación lo lleva el UEFI Forum, una organización formada por diversas empresas como Intel, Microsoft, AMD,... que fue creada el 25 de Julio de 2005. UEFI (Unified Extensible Firmware Interface) cuya labor consiste en desarrollar y promocionar la plataforma EFI. A principios de 2007, la versión 2.1 de la especificación UEFI vio la luz y meses después trajo consigo mejoras como cifrado, autenticación de red y la destacable Interfaz de usuario humana.
Características
Contenidos
La interfaz UEFI incluye bases de datos con información de la plataforma, inicio y tiempo de ejecución de los servicios disponibles listos para cargar el sistema operativo. UEFI destaca principalmente por:
- Compatibilidad y emulación de BIOS para los sistemas operativos sólo compatibles con ésta última.
- Capacidad de arranque desde unidades de almacenamiento grandes, dado que no sufren de las limitaciones del MBR
- Arquitectura y controladores de la CPU independientes
- Entorno amigable y flexible Pre-Sistema
- Diseño modular
La EFI hereda las nuevas características avanzadas de la BIOS como ACPI(Interfaz Avanzada de Control de Energía) y el SMBIOS (Sistema de Gestión de BIOS), y se le pueden añadir muchas otras, ya que el entorno se ejecuta en 64 bits, al contrario de su predecesora, en 16 bits.
Soporte de dispositivos de almacenamiento sólido y discos
La EFI comunica el arranque con el MBR y con el sistema GPT que solventa las limitaciones técnicas del MBR:
- MBR soporta hasta 4 particiones por unidad física con un límite máximo de 2,2 TB.
- GPT soporta teóricamente hasta 9,4 ZB y no exige un sistema de archivos concreto para funcionar.
Microsoft Windows soporta GPT a partir de las versiones de 64 bits de Windows Vista y posteriores. Algunos sistemas basados en Unix utilizan un híbrido entre MBR y GPT para arrancar.
32 y 64 bits
Las BIOS hacen uso de modos de 16 bits para funcionar, diseño heredado del Intel 8088, sin embargo, la EFI funciona directamente con modos de 32 y 64 bits lo que posibilita que las aplicaciones de la EFI tengan acceso completo al direccionamiento de 64 bits.
Servicios
La EFI emplea 2 tipos de servicios, servicio de arranque y servicio de ejecución
- El servicio de arranque incluye texto e interfaz gráfica orientado a una consola que soporta y gestiona dispositivos, bloques, buses y servicios de archivo.
- Los servicios de ejecución son los que controlan la fecha, la hora o el NVRAM
Protocolos
La EFI define un conjunto de protocolos de interfaz de software utilizados para la comunicación entre dos módulos binarios. Todos los controladores de la EFI deben proveer servicios a los demás a través de dichos protocolos.
Controladores/Drivers
Las especificaciones de la EFI permiten ofrecer un controlador de dispositivo independiente del procesador denominado (EBC) EFI Byte Code. Lo que permite soporte para la carga de gráficos, red, sonido y opciones avanzadas del sistema, sin necesidad de precargar un sistema operativo. Esto era imposible en la BIOS, ya que cargaba funciones muy limitadas y necesarias como el soporte de periféricos como teclado y ratón y poco más.
Gestor de arranque
EFI incorpora su propio gestor de arranque permitiendo la selección y carga directa de los sistemas operativos, lo que elimina la necesidad de disponer de un gestor cargado posteriormente, como puede ser LILO o el que utiliza Windows.
Interfaz
La EFI incluye una interfaz interactiva muy cómoda, que además permite ejecutar aplicaciones externas a la propia EFI, siempre que sean compatibles con la especificación.
Extensiones
Toda extensión de la EFI puede cargarse desde cualquier dispositivo no volátil que esté enchufado al ordenador. Un fabricante OEM puede distribuir su sistema con una partición EFI instalada en un disco duro o una Unidad de estado sólido
Intel EFI
El Framework de Intel recibe el nombre de Tiano. Tiano se ejecuta en procesadores XScale, Itanium e IA32 bajo licencia propietaria, aunque parte del código ha sido liberado bajo licencia BSD recibiendo el nombre de Proyecto TianoCore. Phoenix Tecnologies comercializa actualmente BIOS "Phoenix SecureCore Tiano" y "Phoenix MicroCore" compatibles con la interfaz UEFI Plataformas que utilizan UEFI El primer procesador Itanium dirigido a estaciones de trabajo y lanzado en el año 2000, ya soportaba la especificación EFI 1.02. En el 2002, el Itanium 2 ya soportaba EFI 1.10 capaz de arrancar Microsoft Windows, GNU/Linux, FreeBSD, HP-UX y OpenVMS En 2006 Apple montó sus ordenadores basados en la arquitectura x86 de Intel, y por ello, comenzaron a utilizar sistemas EFI en lugar de Open Firmware como se llevaba utilizando en los anteriores sistemas basados en PowerPC, posteriormente Apple lanzó Bootcamp, que permite un particionado no destructivo y soporte de drivers para la instalación de sistemas operativos Microsoft sin necesidad de reinstalar Mac OS X. Se añadió compatibilidad de BIOS a la EFI.
GNU/Linux ha sido capaz de utilizar EFI en el arranque desde principios de 2000, mediante el gestor de arranque LiLo o, las más recientes versiones de GRUB.
Desde el 2005, se ha tratado de implementar EFI en arquitecturas extrapolables a las de PC, como las basadas en XScale o sistemas embebidos
Fuentes
Extensible Firmware Interface a Fondo
Extensible Firmware Interface (EFI) and Unified EFI (UEFI)