Windows 8: análisis a fondo de UEFI

¿Qué es UEFI?
Para acompañar el hito del lanzamiento de Windows 8, es que decidí escribir este artículo versante con las tecnologías de aceleración de arranque y apagado que se encuentra en el nuevo sistema operativo. Este documento es un survey y tiene como fuente páginas web de Intel, Microsoft y otros blogs de tecnología, y las imágenes han sido en su mayoría generadas ad-hoc para esta página, a excepción de las figuras 2 y 5.

Este documento intentará explicar cómo Windows 8 toma ventaja de UEFI para alcanzar tiempos de arranque muy cortos. UEFI es el acrónimo de Unified Extensible Firmware Interface. Es una especificación creada por Intel, que reemplazaría a la vieja BIOS (Basic Input-Output System). Tanto la BIOS como la nueva UEFI tienen como objetivo hacer que el sistema operativo “se entienda” con el hardware de base, manejado habitualmente por un firmware. Esta nueva forma de arranque del equipo tiene por un lado componentes nuevos en el arranque de la plataforma (hardware y su firmware), que luego monta el sistema operativo. Windows 8 da soporte a UEFI para alcanzar tiempos de arranque muy cortos.


El viejo proceso de la BIOS
A grandes rasgos, el proceso de arranque de la BIOS es el siguiente:

Windows 8: análisis a fondo de UEFI


ste esquema de arranque tiene más de 30 años, y a lo largo de la evolución de la PC, se han tenido que “emparchar” ciertas funcionalidades. Por ejemplo, el video debe ser lo primero que esté disponible al iniciar la máquina, pero desde la BIOS se puede levantar un controlador de video muy básico. Esto limita severamente la posibilidad de ofrecer una interfaz amigable. Tampoco se tiene compatibilidad con drivers de 32 o de 64 en muchos casos, los cuales deben ser levantados por el sistema operativo en el arranque. Pero el principal problema es que su código de manejadores es de 16 bits, por norma. Si bien con los años le fueron agregadas características más avanzadas como ACPI y SMBIOS, gestión de energía y administración de la BIOS respectivamente, en realidad, desde hace algún tiempo la BIOS comenzó a mostrarse obsoleta y que los años le pesaban, sobre todo por la adopción de los nuevos sistemas operativos de 64 bits.

Características de la nueva UEFI
La UEFI viene a subsanar varios de esos inconvenientes. Sin embargo, no tiende a reemplazar la BIOS y “borrarla del mapa”, ya que lo primero que asegura es un modo de emulación de BIOS por si fuese necesario. Pero esencialmente, agrega funcionalidad adecuada a la realidad tecnológica actual. Contempla dos grandes grupos de servicios o procesos: (a) proceso de arranque, y (b) servicios de runtime, proveyendo una interfaz distinta y única para cada uno. Durante el arranque, gestionará el inicio de los dispositivos del equipo, y cargará el sistema operativo eligiendo una de varias formas posibles. Durante el proceso de arranque, a su vez, se distinguen dos grandes grupos de operaciones: (1) el inicio de la plataforma o PI, y luego (2) el arranque del sistema operativo, en modo transitorio o en modo estable o principal. Los servicios de runtime pasan por proveer al sistema operativo de un conjunto de interfaces por si éste necesita “dialogar” con el firmware subyacente del equipo.

Aqui se especifica cómo el hardware invocará el inicio del software, o de un sistema operativo, para que comience a cargarse. Sin embargo, el arranque ya no depende de un cargador de sistema operativo como hasta ahora. UEFI puede cargar múltiples sistemas operativos sin la necesidad de un cargador como NTLDR (Windows) o LILO (Linux). UEFI selecciona la partición con el sistema operativo y lo carga desde allí. Para que esto suceda, tanto el hardware como el software deberían ser UEFI-compatibles.

En el proceso de arranque, UEFI tiene menús que son mucho más amigables que los viejos menús de la BIOS, y permite que ciertas tareas de configuración del equipo se puedan hacer sin cargar el sistema operativo principal. Esto no tiene nada que ver con las actuales capacidades de ciertas máquinas de cargar un browser sin tener que arrancar el SO principal, ya que estos equipos lo logran cargando un mini-sistema operativo desde la BIOS que permite hacer estas tareas. Por el contrario, con la nueva especificación, no se carga un mini-sistema operativo sino que se selecciona qué drivers cargar para lograr que se ejecute una aplicación determinada. De esta forma, con la carga selectiva, se podrán iniciar navegadores de internet, o clientes de correo, que arrancarán mucho más rápidamente que si se tuviese que lanzar todo un OS completo. Estas aplicaciones se denominan “aplicaciones con sistema operativo ausente”. Por el contrario, una vez que arranca el sistema operativo y se usan las aplicaciones en forma habitual, estas aplicaciones se denominan “aplicaciones con sistema operativo presente”.

Para comprender mejor esto, debemos ver la siguiente imagen, donde se muestran los bloques constitutivos de una PC genérica o universal. En la parte de abajo de la figura, en la capa inferior, se acomoda el hardware. Por sobre el hardware, alguna porción de éste se puede acceder desde código fijo llamado firmware, y otra porción se puede acceder directamente del sistema operativo. Aquí termina lo que se denominaría “plataforma”, delimitada en la figura 2 por la línea punteada. Luego, por sobre esta capa, va el sistema operativo, y por sobre él, las aplicaciones que solemos utilizar diariamente:

Microsoft


Fuente: segu-info

0 comentarios - Windows 8: análisis a fondo de UEFI