La Interfaz Extensible del Firmware, Extensible
Firmware Interface (EFI), 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.
El firmware es un bloque de instrucciones de máquina
para propósitos específicos, grabado en una memoria, normalmente de lectura /
escritura (ROM, EEPROM, flash, etc), que establece la lógica de más
bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier
tipo.
UEFI superará las limitaciones de BIOS, el programa tipo firmware que reside en un chip de memoria EPROM pinchado en las placas base y que se ejecuta en el arranque proporcionando la comunicación de bajo nivel, el funcionamiento y la configuración básica del hardware del sistema. A pesar de su importancia BIOS prácticamente no ha evolucionado en 25 años.
Sí lo hará UEFI una extensión del proyecto EFI de Intel (usado en equipos Mac) escrito en lenguaje C, que proporcionará mayor flexibilidad, potencia y facilidad de uso mediante una interfaz de usuario gráfica. Esta interfaz permitirá arrancar el equipo mucho más rápido iniciando componentes en paralelo y no de forma secuencial, posibilitando arranque en sistemas de 32 bits para discos mayores de 2 Tbytes o incluyendo sistemas de seguridad avanzados.
Historia
La primera
iniciativa se produjo durante las primeras fases de desarrollo del Intel Itanium de HP a mediados de los años
90. Debido a que estos procesadores apuntaban alto, las especificaciones de la
BIOS resultaban muy limitadas, por ello Intel
desarrolló inicialmente lo que sería la IBI, del acrónimo inglés Intel Boot
Iniciative, que posteriormente fue renombrado a EFI.
El 25 de
Julio de 2005 se creó la fundación UEFI (Unified
Extensible Firmware Interface) cuya labor consistía 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.
Soporte de dispositivos de almacenamiento sólido y
discos
La EFI
comunica el arranque además de con el ya clásico MBR(master
boot record “sector 0 “), con el sistema GPT(GUID
Partition Table) que
solventa las limitaciones técnicas del MBR:
- MBR soporta hasta 4 particiones
por unidad física con un límite de 2,2 TB, es decir, un disco duro u otro
dispositivo de almacenamiento de 10 TB o más no se podría aprovechar su
capacidad al 100%.
32 y 64 bits
Los BIOS
hacen uso de modos de 16 bits para funcionar, diseño heredado del Intel 8088, pero a diferencia de esto, la
EFI funciona directamente con modos de 32 bits y 64 bits permitiendo que las
aplicaciones de la EFI tengan acceso completo al direccionamiento de 64 bits
Servicios
La EFi
emplea 2 tipos de servicios, denominados servicio de arranque y servicio
de ejecución
- El servicio de arranque incluye
texto e interfaz gráfica orientado a una consola que se encarga de
soportar y gestionar dispositivos, buses, bloques y servicios de archivo.
- Los servicios de ejecución son
los que controlan la fecha, la hora o el NVRAM
Controladores/Drivers
Las
especificaciones de la EFI permiten ofrecer un controlador de dispositivo
independiente del procesador denominado EFI Byte Code o
simplemente EBC. Gracias a esto, se permite soporte para la carga de
gráficos, red, sonido y opciones avanzadas del sistema, sin haber precargado el
sistema operativo en cuestión. Esto era totalmente imposible en el BIOS, ya que
cargaba funciones muy limitadas y necesarias como el soporte de periféricos
como teclado y ratón.
Gestor de arranque
Un gestor de
arranque propio de la EFI permite también la selección y carga directa de los
sistemas operativos, eliminando la necesidad de recurrir a gestores de arranque
Interfaz
La EFI trae
consigo una interfaz interactiva y muy amigable, que además permite ejecutar
otras aplicaciones externas a la propia EFI, siempre y cuando sean compatibles
con la especificación.
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.
Desde el
2005, se ha tratado de implementar EFI en arquitecturas extrapolables a las de
PC, como las basadas en XScale
o sistemas embebidos
En el 2008,
bastantes sistemas basados en 64 bits han adoptado la EFI, si bien muchos de
estos sistemas sólo soportan el arranque mediante BIOS, gracias al Módulo de
soporte de compatibilidad, muchos otros, en cambio comienzan a arrancar en
sistemas UEFI, por ejemplo servidores IBM, ciertas placas base MSI de soporte
ClickBIOS, portátiles HP Elitebook y algunas Tablet PC HP.
En 2009
sistemas x de IBM (x3550 M2, x3650 M2, iDataPlex dx360 M2) y Bladecenter HS22.
Dell PowerEdge T610; servidores R610, R710, M610, M710.
Sistemas operativos
- 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.
- HP-UX ha usado (U)EFI como mecanismo
de arranque en sistemas IA_64 desde el 2002.HP
OpenVMS ha usado (U)EFI en IA-64 desde su lanzamiento inicial
en diciembre de 2003, y para las versiones de producción desde enero de
2005
- Apple utiliza EFI para sus ordenadores
basados en 64 bits.
- Itanium para Windows 2000 (Advanced Server Limited Edition y Datacenter
Server Limited Edition) soporta EFI 1.10 en 2002. Windows Server 2003 para IA-64
, Windows XP 64 Bits , y Windows 2000 Advanced Server Limited Edition,
todos los cuales son para la familia de procesadores Itanium
- Introducido soporte EFI a los
sistemas operativos x64 de Microsoft Windows como Windows Server
2008, Windows 7 y Windows Vista Service Pack 1 .
Microsoft no ofrece soporte UEFI a los sistemas de 32 bits ya que los
vendedores no tenían ningún interés en la producción nativa de 32 bits
puesto que frenaría la completa migración a los sistemas de 64 bits.
- Se prevé que Windows 8 sustituya completamente la
BIOS por EFI.