Você está na página 1de 10

Unified Extensible

Firmware Interface

Esta página cita fontes, mas estas não cobrem todo o conteúdo.
Saiba mais

O Unified Extensible Firmware Interface (UEFI), em português Interface Unificada de


Firmware Extensível, é uma especificação que define uma interface de software entre o
sistema operacional e o firmware da plataforma. UEFI pretende substituir a interface de
firmware do Sistema de Entrada/Saída Básico (BIOS), presente em todos os computadores
pessoais compatíveis com o IBM PC. Na prática, a maioria das imagens UEFI fornecem
suporte legado para os serviços do BIOS. UEFI pode suportar diagnósticos remotos e
reparação de computadores, mesmo sem outro sistema operacional instalado.

Logomarca da UEFI
Diagrama mostrando o posicionamento do EFI na pilha de softwares

A especificação original EFI (Extensible Firmware Interface) foi desenvolvida pela Intel.
Algumas de suas práticas e formatos de dados espelham aqueles do Windows. Em 2005, a
UEFI tornou a EFI 1.10 (versão final do EFI) obsoleta. A especificação da UEFI é gerenciada
pelo Unified EFI Forum.

História

A motivação original para o EFI veio durante o início do desenvolvimento do primeiro sistema
Intel-HP Itanium em meados de 1990. As limitações do PC BIOS (modo 16-bits, espaço de
endereçamento de 1MB, dependências de hardware PC AT, etc.) foram vistas como
claramente inaceitáveis para a grande plataforma de servidores visada como alvo. Os
esforços iniciais para resolver esses problemas foram inicialmente chamados Intel Boot
Initiative e foi depois renomeado para Extensible Firmware Interface (EFI).[1]

A especificação EFI 1.02 foi lançada pela Intel em 12 de dezembro de 2000.

A especificação EFI 1.10 foi lançada no dia 1 de dezembro de 2002. Ela inclui o modelo de
driver como também várias pequenas melhorias para a 1.02.

Em julho de 2005, a Intel cessou o desenvolvimento da especificação EFI quando esta


chegou à versão 1.10, e contribuiu para o Unified EFI Forum, que desenvolveu a
especificação com o nome Unified Extensible Firmware Interface (UEFI). A especificação EFI
original é de propriedade da Intel, que fornece exclusivamente licenças para produtos EFI,
mas a especificação UEFI é de propriedade do Fórum.
A versão 2.1 da especificação UEFI foi lançada em 7 de janeiro de 2007. Foi adicionado
criptografia, autenticação de rede e a Arquitetura de Interface de Usuário (Infraestrutura de
Interface Humana no UEFI). A última especificação UEFI, a versão 2.8, foi aprovada em
março de 2019.[2]

Vantagens

A interface definida pela especificação EFI inclui tabelas de dados que contêm informações
de plataforma e serviços de inicialização e tempo de execução que estão disponíveis para o
carregador do sistema operacional e para o sistema operacional. O firmware UEFI oferece
várias vantagens técnicas sobre um sistema tradicional de BIOS:

Capacidade de usar discos grandes (mais de 2 TB) com uma Tabela de Partição GUID
(GPT)

Arquitetura independente de CPU

Drivers independentes de CPU

Ambiente pré-SO flexível, incluindo capacidade de rede

Design modular

Compatibilidade reversa e futura

Recursos

As interfaces definidas pela EFI incluem tabelas de dados que contem informação sobre a
plataforma, e serviços de boot e runtime que ficam disponíveis para o carregador do SO e o
próprio SO.

Alguns melhoramentos para BIOS PC, como o ACPI e o SMBIOS, também estão presentes no
EFI, já que eles não dependem de uma interface em tempo de execução de 16-bit.

Secure boot

A especificação UEFI 2.3.1 Errata C (ou superior) define um protocolo conhecido como
secure boot (em português inicialização segura), que pode tornar o processo de inicialização
seguro por meio da prevenção de carregamento de drivers ou carregadores de SO que não
são assinados com uma assinatura digital aceitável. Os detalhes mecânicos de como,
precisamente estes drivers são assinados não são especificados.[3]
Compatibility Support Module

O Compatibility Support Module (CSM), em português Módulo de Suporte à


Compatibilidade, é um componente do firmware UEFI que fornece compatibilidade legada do
BIOS por meio da emulação de um ambiente BIOS, permitindo que sistemas operacionais
legados e algumas option ROMs que não suportam UEFI ainda sejam usados.[4]

Serviços

O EFI define boot services, que incluem suporte a consoles de texto e gráficos em vários
dispositivos, barramentos, serviços de bloco e de arquivos, e runtime services, assim como
data, hora e serviços NVRAM.

Drivers de dispositivo

Em adição aos drivers de dispositivos padrões específicos da arquitetura, a especificação


EFI provê para um ambiente de drivers de dispositivo independente do processador,
chamado EFI Byte Code ou EBC.

Alguns tipos de drivers de dispositivo (não EBC) específicos para a arquitetura podem ter
interfaces para uso pelo sistema operacional. Isso permite ao SO confiar ao EFI o suporte
básico aos gráficos e à rede enquanto os drivers específicos são carregados.

Gerenciador de boot

Um Gerenciador de boot EFI é também usado para selecionar e carregar o sistema


operacional, removendo a necessidade de um mecanismo de boot loader (o boot loader do
SO é uma aplicação EFI).

Suporte a Disco

Em adição ao esquema de partição do PC padrão, Master boot record (MBR), o EFI adiciona
suporte para uma tabela de partição GUID (GPT), que não sofre das mesmas limitações. A
especificação EFI não inclui um descrição para um sistema de arquivos; implementações da
EFI tipicamente suportam FAT32 como seus sistemas de arquivos[5]

O Shell EFI
A comunidade EFI criou um Shell open source;[6] ao invés de "bootar" diretamente em um SO
completo, em algumas implementações, o usuário pode dar boot no shell EFI. O shell é uma
aplicação EFI; ele pode residir diretamente dentro da ROM da plataforma, ou num dispositivo
para o qual os drivers estão na ROM.

O Shell pode ser usado para executar outras aplicações EFI, como setup, a instalação do SO,
utilitários de diagnóstico ou configuração, e atualizações da flash do sistema; ele pode
também ser usado para tocar CDs ou DVDs sem ter que iniciar um sistema operacional
completo, contanto que uma aplicação EFI com as características apropriadas seja escrita.
Os comandos do shell tornam possível copiar ou mover arquivos e pastas entre os sistemas
de arquivos suportado. Drivers podem ser carregados e descarregados, e um stack TCP/IP
completo pode ser usado de dentro do shell.

O shell EFI suporta encriptação através de arquivos .nsh, que são análogos aos arquivos
batch do DOS

Nomes de comandos do shell são frequentemente herdados do interpretador de comandos


do DOS ou o shell Unix. O shell pode ser visto como um substituto funcional para o
interpretador de comandos do DOS.

Extensões

Extensões ao EFI podem ser carregadas de virtualmente qualquer dispositivo de


armazenamento não volátil ligado ao computador. Por exemplo, um OEM pode vender
sistemas com uma partição EFI em um HD que adicionariam características adicionais para
o firmware EFI padrão armazenado na ROM da placa mãe.

Implementação e adoção

Intel Platform Innovation Framework para EFI

A Intel Platform Innovation Framework para a EFI (com o nome código original “Tiano”) é uma
implementação de firmware completamente livre de legado, que inclui suporte para EFI.
Também pode suportar um PC BIOS herdado através do compatibility support
module(CSM).

Em particular, o Framework inclui todos os passos necessários para iniciar a plataforma


após o ligamento; esse trabalho interno do firmware não são definidos como parte da
especificação EFI, mas são parte da Platform Initialization Specification.
A Intel não disponibiliza o framework completo para o usuário final; ele está disponível
através de vendedores de BIOS independentes (como a American Megatrends (AMI) e Insyde
Software) como parte das suas ofertas de firmware.[7]

Uma parte do framework foi disponibilizada com open source para o projeto TianoCore (htt
p://www.tianocore.org/) com EFI Developer Kit (EDK). Essa implementação cobre o EFI e
alguns códigos de inicialização de hardware, mas não é o firmware completo. Várias
licenças foram usadas para o código, incluindo a Licença BSD e a Licença Pública Eclipse.

Plataformas que usam EFI ou Framework

Os primeiros servidores e estações de trabalho da Intel, lançados em 2000, suportavam EFI


1.02.

Os primeiros sistemas Itanium 2 da Hewlett-Packard, lançados em 2002, suportavam EFI


1.10; eles eram capazes de iniciar Windows, Linux, FreeBSD e HP-UX.

Todos os sistemas Itanium 2 lançados com firmware compatível com EFI devem também
ser complacentes com todas as especificações DIG64.

Em novembro de 2003, Gateway introduziu o Gateway 610 Media Center, o primeiro


computador x86 baseado no Windows a utilizar firmware baseada no Framework, o
InsydeH2O da Insyde Software. Ele ainda dependia de uma BIOS implementada como um
suporte de compatibilidade para iniciar o Windows.

Em janeiro de 2008, a Apple Computer liberou seus primeiros computadores Macintosh


baseados em intel. Estes sistemas usam EFI e o Framework ao invés de Open Firmware, que
foi usado nos sistemas Power-PC anteriores.[8] Em 5 de abril de 2006 a Apple liberou Boot
Camp, que produz discos de Windows XP como uma ferramenta de particionamento não
destrutível para ajudar os usuários a instalar o Windows XP mais facilmente. Uma
atualização de firmware que adicionou suporte a BIOS legada para implementação do EFI
também foi liberada. Modelos Macintosh subsequentes foram entregues já com novo
firmware instalado. Agora todos os sistemas machintosh atuais também estão aptos a
executar o boot pelos sistemas operacionais de BIOS legada, como o Windows XP.

A grande maioria dos chips de placas-mãe Intel vêm com firmaware baseado neste
Framework. Durante o ano de 2005 mais de um milhão de sistemas intel foram entregues
com o Framework.[9] Novos produtos Mobile, desktop e Servidores usando o framework
começaram a ser entregues em 2006. Por exemplo, todas as placas que usam o chipset da
série intel 945 usam o Framework. Contudo, a produção do firmware geralmente não inclui o
suporte ao EFI, e está limitado à BIOS legada.[10]
Desde 2005, EFI tem sido implementado também em arquitetura não-PC, como sistemas
embarcados baseados em XScale cores.[11]

O EDK inclui um alvo NT32, que aceita o firmware EFI e aplicação EFI rodar dentro de uma
aplicação Windows.

Em 2007, a HP liberou uma impressora compatível com o firmware EFI.[12]

Sistemas Operacionais

O sistema Linux é capaz de usar o EFI em tempo de boot desde do início de 2000, usando o
carregador de boot Elilo. O Elilo é o único meio de "bootar" o Linux na plataforma IA-64; ele
pode ser usado também nas plataformas IA-32. Até dezembro de 2006, não há versão do
Elilo para modo x64.

HP-UX tem usado EFI como mecanismo de boot nos sistemas IA-64 desde 2002. OpenVMS
tem usado em produtos comerciais desde janeiro de 2005.

O Microsoft Windows Server 2003 para IA-64, Windows XP 64-bit Edition, e Windows 2000
Advanced Server Limited Edition, todos para a família Intel Itanium de processadores,
suportam EFI, um requisito das plataformas pela especificação DIG64.[13] A Apple Computer
tinha adotado o EFI para a linha dos Macintosh baseados em Intel. A Microsoft planeja
introduzir o suporte ao UEFI para os 64-bit x64 com Windows Server "Longhorn". O EFI tem
suporte para x64 nas versões do Windows Vista que poderá ser incluso um service pack.[14]
Não será feito um suporte oficial para booting do EFI em computadores 32-bit devido à falta
de suporte dos fabricantes e dos vendedores de computadores. A Microsoft liberou um
vídeo com Andrew Ritz e Jamie Schwarz que explica o suporte PRE-SO que envolve UEFI no
Vista e no Longhorn.[15]

Criticismo

Numerosos ativistas de direitos digitais tem protestado contra a UEFI.


Ronald G. Minnich, um
coautor de coreboot, e Cory Doctorow, um ativista de direitos digitais, tem criticado a EFI
como uma tentativa de remover a possibilidade do usuário verdadeiramente controlar o
computador.[16][17] Isto levanta preocupações de segurança e, nomeadamente, torna a
criação de uma implementação de software livre impossível. EFI pode ser usado para criar
uma "BIOS DRM", deixando assim fornecedores construir computadores que limitam o que o
utilizador pode fazer.
Em 26 de março de 2013, o grupo espanhol Hispalinux de desenvolvimento de software livre
apresentou uma queixa formal à Comissão Europeia, alegando que os requisitos de Secure
Boot da Microsoft em sistemas OEM eram "obstrutivas" e anticompetitivas.[18]

Ver também

Open Firmware

Basic Input/Output System (BIOS)

Advanced Configuration and Power Interface (ACPI)

System Management BIOS (SMBIOS)

x86-64

OpenBIOS

LinuxBIOS

System Management Mode

Referências

1. Dong Wei, Beyond BIOS (foreword), Intel 5. see fat-driver.Tianocore.org (http://fat-dr


Press, 2006, ISBN 978-0-9743649-0-2 iver.tianocore.org) [ligação inativa] for info
on EFI FAT driver. (requires registration)
2. «Unified Extensible Firmware Interface
Forum Specifications» (http://www.uefi. 6. Veja efi-shell.tianocore.org (https://efi-s
org/specifications) . Consultado em 22 hell.tianocore.org/) Arquivado em (htt
de maio de 2019 ps://web.archive.org/web/20070928010
503/https://efi-shell.tianocore.org/) 28
3. «Secure Boot Overview» (https://techne
de setembro de 2007, no Wayback
t.microsoft.com/en-us/library/hh82498
Machine. para informações sobre o EFI
7.aspx) . Microsoft. Consultado em 18
shell
de fevereiro de 2016
7. Ver Intel Platform Innovation Framework
4. «Intel® Platform Innovation Framework
for EFI (http://www.intel.com/technolog
for EFI» (http://www.intel.com/content/
y/framework/) no site da Intel
dam/doc/reference-guide/efi-compatibil
ity-support-module-specification-v097. 8. Apple Computer. "Universal Binary
pdf) (PDF). Compatibility Support Programming Guidelines, Second
Module Specification (revision 0.97). Edition: Extensible Firmware Interface
Intel. 4 de setembro de 2007. (EFI) (http://developer.apple.com/docu
Consultado em 6 de outubro de 2013 mentation/MacOSX/Conceptual/univers
al_binary/universal_binary_diffs/chapter 14. «Microsoft bombshell: no EFI support
_3_section_10.html) ." for Vista» (https://web.archive.org/web/
20061017082430/http://www.apcmag.c
9. Intel, Framework Overview (http://www.i
om/apc/v3.nsf/0/E666E4A0A303D9AA
ntel.com/technology/framework/overvi
CA25712C008166C4) . Consultado em
ew2.htm)
1 de junho de 2007. Arquivado do
10. An Intel pdf with information about EFI original (http://apcmag.com/apc/v3.ns
on their boards (http://www.intel.com/c f/0/E666E4A0A303D9AACA25712C008
d/channel/reseller/asmo-na/eng/33611 166C4) em 17 de outubro de 2006
5.htm)
15. Microsoft Pre-OS Video (http://channel
11. See Overview of the Intel Platform 9.msdn.com/showpost.aspx?postid=2
Innovation Framework (http://www.intel. 92774)
com/technology/framework/overview
16. «Interview: Ronald G Minnich» (https://a
1.htm)
rchive.fosdem.org/2007/interview/ronal
12. HP Printer's site (https://h30046.www3. d%2bg%2bminnich.html) . Fosdem. 6
hp.com/campaigns/2007/promo/edgeli de fevereiro de 2007. Consultado em 14
ne-mfp/index.php?regioncode=NA&lang de setembro de 2010
[ligação inativa]
code=USENG)
17. Doctorow, Cory (27 de dezembro de
13. Microsoft Windows Server TechCenter. 2011), The Coming War on General
"Extensible Firmware Interface (http://te Purpose Computation (https://boingboi
chnet2.microsoft.com/WindowsServer/ ng.net/2011/12/27/the-coming-war-on-
en/Library/6b03fad7-665e-49f3-8e7d-e1 general-purp.html) , consultado em 25
a6a5be9cf01033.mspx) Arquivado em de setembro de 2013
(https://web.archive.org/web/20060830
18. «Exclusive: Open software group files
101936/http://technet2.microsoft.com/
complaint against Microsoft to EU» (htt
WindowsServer/en/Library/6b03fad7-66
p://www.reuters.com/article/2013/03/2
5e-49f3-8e7d-e1a6a5be9cf01033.msp
6/us-microsoft-eu-idUSBRE92P0E12013
x) 30 de agosto de 2006, no Wayback
0326) . Reuters. Consultado em 26 de
Machine.."
março de 2013

Ligações externas

Site oficial UEFI (http://www.uefi.org/)

Página da Intel sobre EFI (http://www.intel.com/technology/efi/)

Intel's Framework page (http://www.intel.com/technology/Framework/) Página sobre


framework (ou arcabouço) da Intel
Intel-sponsored open-source EFI Framework initiative (http://www.tianocore.org/) -
Iniciativa código aberto de UEFI patrocinado pela Intel

EFI Linux Loader project (Elilo) (http://Elilo.sourceforge.net/) - Projeto Elilo EFI


carregador de programas

EFI Linux gnu toolchain (gnu-efi) (http://gnu-efi.sourceforge.net/)

EFI Architecture (http://www.ddj.com/dept/embedded/199500688?cid=RSSfeed_DDJ_Al


l) Dr. Dobbs Portal Article

Obtida de "https://pt.wikipedia.org/w/index.php?
title=Unified_Extensible_Firmware_Interface&oldi
d=61478791"


Última modificação há 18 dias por Renato de carvalho ferreira

Conteúdo disponibilizado nos termos da CC BY-


SA 3.0 , salvo indicação em contrário.

Você também pode gostar