UEFI e Boot Seguro - Conceitos básicos

Esse artigo discute os conceitos básicos da especificação UEFI e tenta esclarer o que é "Boot Seguro".

[ Hits: 37.714 ]

Por: Perfil removido em 18/03/2013


UEFI - BIOS



O padrão UEFI-BIOS

Em meados dos anos 1990, a Intel trabalhava junto com a HP no desenvolvimento da plataforma de servidores Itanium. Neste momento, as limitações do padrão IBM BIOS/MBR ficaram evidentes e uma nova tecnologia para BIOS/MBR tornou-se necessária.

A proposta da Intel foi publicada no ano de 2000 com a especificação "BIOS-EFI 1.2".

O BIOS-EFI funciona como uma API (Application Programming Interface), atuando entre o sistema operacional e o firmware da placa principal (Motherboard), como demonstra a figura 4.

Esta estrutura torna o O.S. Loader uma aplicação no topo da camada EFI. Por ser um ambiente completo, EFI inclui seu próprio ambiente em shell, os aplicativos executados no ambiente EFI são considerados aplicações pré-O.S.

O EFI permite, entre outras coisas, reduzir o tempo de carregamento dos sistemas operacionais, que estão cada vez maiores e mais pesados. O boot pré-O.S. permite incluir configurações de hardware, com o carregamento de drivers genéricos, antes do O.S. ser carregado, facilitando o plug-and-play.
Em 2005, o desenvolvimento desta tecnologia migrou da Intel para o consórcio formado por 140 companhias da indústria de computadores: AMD, AMI, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft, entre outras. A iniciativa é denominada de UEFI (Unified Extensible Firmware Interface), e encontra-se na versão 2.3.1 (Abril/2011).

A principal diferença entre o IBM-BIOS e o UEFI-BIOS, é que a nova tecnologia não tem qualquer relação com a arquitetura de 16 bits da IBM-BIOS, que obriga o processador ser inicializado em "modo real x86" endereçando apenas 1 MiB de RAM no momento do boot, fazendo o processador se comportar como o PC-XT (8088) de 1983.

Na especificação UEFI não há qualquer legado, apesar de haver compatibilidade retroativa em pontos muito específicos. A especificação UEFI-BIOS permite implementações de softwares em 32 ou 64 bits. Os binários UEFI (byte code) têm acesso a toda memória RAM, já no momento do boot.

Isso permite, por exemplo, criar um ambiente completo com ferramentas de reparo, ou diagnóstico, baseadas em software UEFI, que são independentes do carregamento do O.S., veja a figura figura 5.

Aplicativos UEFI também poderão se apresentar na forma de serviços que são executados como daemons tradicionais. Aplicativos UEFI são escritos na linguagem de programação C, portanto, são portáveis, diferente das BIOS que são escritas prioritariamente em linguagem de montagem Assembly e são vinculadas à arquitetura do hardware.
Observe que UEFI não pretende substituir o software contido no firmware, mas funciona como uma extensão desse. Alguma aplicação é necessária para fazer a função de POST (Power-On Self Test) e a função do SETUP também continuará necessária.

UEFI pode ser implementado como uma camada no topo da BIOS legada (eliminando as instruções INT de 16 bits), ou assumir totalmente essa função em sistemas classe 3, que são BIOS-less.

As principais vantagens do UEFI, são:
  • Capacidade para inicializar sistemas operacionais em discos rígidos maiores que 2 TiB, utilizando o particionamento GPT.
  • Inclusão de capacidades nativas, como gerenciamento do hardware, suporte à rede, banco de dados e utilitários em ambiente pré-O.S.
  • - Modularidade e expansão do modelo em várias direções e níveis.
  • UEFI block I/O protocol, substitui as interrupções de BIOS, permitindo, por exemplo, o tráfego de 1 MiB de dados em tempo de boot, contra 64 KiB do método INT 13. Isto resulta em um processo de hibernação e uma retomada no boot muito mais rápidos.
  • Uma interface EBC (EFI Byte Code) permite escrever drivers genéricos independentes da arquitetura do O.S. e da CPU.
  • Um módulo CSM (Compatibility Support Module), permitindo a emulação de um sistema BIOS-MBR, garantindo que sistemas operacionais legados possam ser executados em hardware UEFI da classe 3, que são UEFI nativos.

Serviços UEFI

A especificação UEFI define dois tipos de serviços:
  • Serviços em tempo de boot;
  • Serviços em tempo de execução.

Grosso modo, podemos dizer que serviços em tempo de boot são executados na fase firmware do processo de boot. Os serviços em tempo de execução, auxiliam as operações do sistema operacional prestando serviços para o O.S., por exemplo, fornecendo data e hora atualizados por NTP. O ambiente UEFI tem potencial para assumir várias funções do O.S.

O ambiente UEFI pode funcionar também como um repositório de dados não voláteis para configurar o sistema operacional. Uma espécie de registro com chaves aos pares, do tipo nome=valor.

Um ambiente EBC (EFI Byte Code) pode prover drivers genéricos para configuração do hardware em tempo pré-O.S., isso facilitaria o reconhecimento do hardware pelo plug-and-play.

A possibilidade de ter suporte a vídeo, no padrão GOP (Graphics Output Protocol) eliminando a dependência atual do padrão VGA para dar partida em computadores.

O processo de boot UEFI puro, não possui um setor de inicialização nos moldes de MBR, nem um código de arranque (stage 1), como no modelo BIOS-MBR.

No padrão UEFI, os aplicativos de arranque são armazenados em uma partição FAT32, FAT16 ou até FAT12. Isso funciona de modo similar à fase 2 do stage do GRUB.

Durante o boot, o GRUB é capaz de ler diretamente o sistema de arquivos em /boot, procurando pelos arquivos "vmlinuz" e "initrd", pois GRUB "conhece" alguns dos principais filesystems do GNU/Linux.

O serviço mais polêmico fornecido por UEFI, tem sido o Boot Seguro. Vejamos como ele funciona.

Página anterior     Próxima página

Páginas do artigo
   1. IBM - BIOS
   2. UEFI - BIOS
   3. Boot Seguro
Outros artigos deste autor

Xen - XL.cfg - Sintaxe da Configuração de Domínios - Parte I

Automatic ACL Blocking List - Sistema automático de listas de bloqueio de ACLs

Instalando o Gnome-2.20.3 no Slackware 12 usando o Gslapt

Instalando Apache2, PHP4 e MySQL

Prevenindo atualização de pacotes no APT-GET

Leitura recomendada

Viva o Linux 2008 - Site com cara e recursos novos!

ERPs Open Source (parte 2) - Mercado e diferenciais

As brigas dos linuxers

Memórias de um usuário Linux

Linux, uma quebra de barreiras

  
Comentários
[1] Comentário enviado por lcavalheiro em 18/03/2013 - 10:51h

Excelente artigo, Kyetoy! Matando a questão a pau, e com estilo!

[2] Comentário enviado por mpsnet em 18/03/2013 - 10:59h

Alguém poderia me ajudar ?
Após habilitar o EFI boot secure no setup do meu notebook e instalar o windows 8, notei que após o termino da instalação não entrou no Windows8.
Apareceu uma tela como se fosse um boot loader, mas não existia opção alguma para escolher.
Então reiniciei a máquina e tentei entrar no setup novamente. Para minha surpresa após teclar <F2> para entrar no setup padrão (BIOS), não entra mais....vai direto para esta tal tela mencionada anteriormente.
Então removi todos os discos, achando que poderia ser algo ligado aos discos, mas mesmo assim nao consigo acessar mas o setup original da maquina.
A máquina continua "butando" um USB/DVD Live.... mas setup nada....

Como posso resolver isso ?

[3] Comentário enviado por julio_hoffimann em 18/03/2013 - 20:57h

Parabéns, artigo de excelente nível técnico.

Abs.

[4] Comentário enviado por konishi em 19/03/2013 - 11:13h

Excelente!

[5] Comentário enviado por striker_rafael em 25/03/2013 - 16:42h

Excelente artigo!! Pra acabar de vez com aquelas dúvidas sobre UEFI e Secure Boot.. Parabéns!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts