UEFI: Como funciona

Desmistificando o UEFI
Sim, há quem explique de forma mais singela, já que na verdade a coisa é mais simples do que parece. Mas eu não poderia deixar de fornecer as definições e conceitos do UEFI Fórum. Afinal, eles são os “donos da bola” e, no que concerne à UEFI, ditam as regras.
Porém Sebastian Anthony, em seu artigo publicado na Extreme Tech, “Demystifying UEFI, the long-overdue BIOS replacement“, fornece uma descrição notavelmente concisa e precisa do que vem a ser a UEFI . A maioria dos conceitos que vocês lerão no restante deste tópico constam deste artigo.
Segundo Anthony, a UEFI é uma recriação completa do ambiente de inicialização de um computador. E a recriação foi tão completa que o resultado não apresenta qualquer semelhança com o BIOS que ela se destina a substituir.

Ao contrário do BIOS, que é uma monolítica peça de “firmware“, a UEFI é uma interface programável que se acomoda logo acima do hardware e “firmware” da máquina (e, de fato, se assim for desejado, pode assentar-se acima do próprio BIOS; veja esquema, obtido no artigo de Sebastian Anthony acima citado, na Figura 3). Porém, diferentemente do BIOS, cujas rotinas obrigatoriamente estão indissoluvelmente incorporadas a um dos circuitos de memória não volátil que fazem parte da placa-mãe, as da UEFI serão armazenadas em um diretório “/EFI/” localizado em um meio de armazenamento não volátil qualquer, que pode ser um CI da placa-mãe como o BIOS, mas também pode ser um disco rígido ou mesmo um dispositivo compartilhado em rede.
O resultado disto é que a UEFI funciona na prática como um pseudo sistema operacional. Na verdade, funcionalmente, se parece bastante com um sistema operacional simples, destes usados em certas máquinas portáteis e que permitem acesso à Internet e algumas funcionalidades limitadas e que podem ser carregados antes da carga do SO “principal” (muito usado em máquinas do tipo “netbook” para permitir acesso rápido a comunicações sem a necessidade de aguardar a carga do SO).
Quando um computador se inicializa usando a UEFI, um número arbitrário de ações são deflagradas, a última das quais consiste na carga do sistema operacional. Mas, antes disto, em virtude de facilidades previstas na especificação da UEFI e usando os “serviços de inicialização” e “serviços de tempo de execução” por ela definidos, podem ser estabelecidos protocolos de comunicação entre serviços, carregados gerenciadores de dispositivos e até mesmo lançada uma “UEFI shell“, ou uma interface entre a UEFI e o usuário, permitindo que este interaja com os serviços que estão sendo executados mesmo antes da carga do SO. Um destes serviços pode ser o “bootloader“, a rotina que, enfim, carrega o sistema operacional. Mas a UEFI é dotada de tal flexibilidade que, se for o caso, o usuário pode ter acesso a ela e a seus serviços mesmo antes da execução do “bootloader“, ou seja, sem que o sistema operacional esteja carregado, usando apenas as funcionalidades oferecidas pelos próprios serviços da UEFI.
É importante notar que a UEFI é totalmente baseada em software ? razão pela qual ganhou a qualificação de “unificada”.
Como veremos adiante, já há variantes da UEFI em plena atividade. Elas têm sido usadas por praticamente todas as combinações de processadores de 32 e 64 bits com arquitetura ARM, Intel e AMD. Em cada caso, basta que as rotinas de carga do sistema sejam compiladas independentemente para cada SO. Atualmente, praticamente todo sistema operacional (o que inclui Windows, Linux e OS X) já oferece suporte para inicialização por UEFI e certamente suas versões futuras (como o Windows 8, em fase de desenvolvimento pela MS) serão baseadas em UEFI. Do Windows 8, por exemplo, sabe-se que ele apelará para as funcionalidades da UEFI para implementar uma forma de detectar tentativas de infecção por programas mal intencionados, como os “rootkits” usando a funcionalidade da UEFI conhecida como “secure boot” (“inicialização segura”). Mas hoje poucos são os SO que efetivamente tiram proveito da UEFI.
O que não impede que na próxima coluna vejamos exemplos de sistemas que usam inicialização baseadas em UEFI em vez de BIOS.
Até lá.
B. Piropo
