Extensible Firmware Interface (EFI)

Introdução

O Extensible Firmware Interface (ou simplesmente EFI) é uma tecnologia recente, que visa substituir o BIOS (Basic Imput/Output System) usado nos computadores. O BIOS foi lançado na década de 1980, no IBM PC AT e, sofrendo modificações, é utilizado até hoje. Mas, com as vantagens do EFI, essa "tradição" tende a mudar e é isso que este artigo mostrará nas próximas linhas.

O que é EFI

Como já dito, o EFI é uma tecnologia que visa substituir o tão tradicional BIOS dos computadores. No entanto, sua capacidade não se limita a isso. O EFI permite uma série de funcionalidades até então impraticáveis com o BIOS, como a possibilidade de atuar como gerenciador de boot em computadores com mais de um sistema operacional (substituindo o GRUB, o LILO e o Boot Magic, por exemplo), interface mais amigável (inclusive com uso de mouse), capacidade de desenvolvimento de drivers "multi-plataforma", carregamento mais rápido do sistema operacional, entre outros.

Se fizermos uma análise mais profunda, veremos que, na verdade, o EFI não vai substituir de maneira integral o BIOS, pois pelo menos os seus conceitos serão preservados. Sendo assim, podemos até interpretar o EFI como um novo tipo de BIOS.

O que é BIOS

Para uma melhor compreensão do EFI, é importante entender o que é BIOS:

O BIOS é um tipo de programa armazenado em memória ROM que informa ao processador como trabalhar com dispositivos essenciais, tais como teclado, unidades de disco, portas, etc. Como o BIOS lida diretamente com o hardware, sua programação é feita em Assembler, uma linguagem complexa, mas apropriada a esse tipo de aplicação.

Outra função do BIOS é a responsabilidade de permitir a inicialização do sistema operacional. Para isso, ele testa o hardware (por exemplo, checa se o teclado está conectado e emite uma mensagem de erro se não encontrá-lo), verifica a memória, entre outros. Essa fase é conhecida como POST (Power-On Self Test).

Na maioria dos computadores, se o usuário pressionar uma tecla especial - como F1, F2 ou Delete - assim que ligar a máquina, terá acesso a uma área gráfica chamada Setup. Por meio dela, é possível trabalhar com opções de configuração do hardware. Por exemplo, pode-se mudar a velocidade do processador, alterar o tempo de acesso à memória e executar operações mais simples, como fazer o computador reconhecer uma unidade de disco. O Setup está diretamente vinculado ao BIOS.

Mesmo tendo sofrido melhorias com o passar do tempo, o BIOS é uma tecnologia antiga, cujas limitações já são sentidas atualmente. Isso é perceptível, por exemplo, quando um novo padrão de hardware é lançado. Geralmente, a implementação do reconhecimento deste no BIOS é uma tarefa muito complexa.

Um pouco mais sobre EFI

Agora que você já sabe o que o BIOS faz, voltemos a tratar de EFI. Desenvolvido inicialmente pela Intel e contando com forte apoio da Microsoft, o EFI é um recurso que pode executar as funções do BIOS e ainda oferecer outras funcionalidades. Seu desenvolvimento é feito em linguagem C, o que por si só já é capaz de ampliar o seu leque de possibilidades. Além disso, o EFI é baseado em interfaces modulares, permitindo adicionar ou alterar recursos sem que seja necessário mudar toda a sua estrutura. Assim, tornam-se mais fáceis as tarefas de desenvolvimento e instalação de atualizações, por exemplo. Além disso, o risco de erros diminui, pois geralmente basta trabalhar apenas no módulo que está sendo criado ou modificado.

É evidente que o EFI é preparado para lidar com o hardware atual, isto é, não é necessário descartar dispositivos de hardware criados quando o EFI sequer era cogitado. Por exemplo, um processador Pentium 4 não precisa sofrer modificações para funcionar com EFI, já que este pode ser preparado para trabalhar com esse chip.

Essa compatibilidade, no entanto, já não ocorre com os sistemas operacionais. Estes sim precisam lidar de maneira diferente com o EFI, se comparado ao BIOS tradicional. O Windows XP, por exemplo, não suporta o EFI, assim como as versões de 32 bits do Windows Vista. Todavia, essa compatibilidade existe nas versões do Windows XP, Server 2003 e Vista baseadas na linha de processadores Intel Itanium. Usuários de Linux estão em situação mais cômoda: atualizações de versões do kernel não compatíveis com EFI podem resolver o problema.

Algo que agradou muito os desenvolvedores de hardware é a não dependência do EFI de uma saída VGA (Video Graphics Array) para testes. No BIOS tradicional, é necessário ter uma placa de vídeo para executar os testes, do contrário essa tarefa não seria possível. O EFI não possui essa dependência, possibilitando que o resultado do teste seja direcionado a um computador ou a um arquivo, por exemplo.

Outro recurso muito importante é a capacidade do EFI de lidar com instruções de 64 bits, característica já predominante nos processadores recentes da Intel e da AMD. Com o BIOS tradicional, é necessário ter uma versão para 32 bits e outra para 64 bits, dependendo do hardware ou da aplicação. Para saber mais sobre os bits dos processadores clique aqui.

A tecnologia EFI conta também com a capacidade de pré-inicialização. Com ela, o sistema operacional pode carregar ou atualizar recursos antes mesmo de entrar em total funcionamento. Essa característica pode permitir a criação futura de uma série de funcionalidades, como atualização automática do sistema operacional ou de um software antivírus, acionamento automático de um computador-espelho caso o primeiro apresente alguma falha, entre outros.

Ainda, o EFI permite o desenvolvimento de drivers de hardware independentes da plataforma. Isso porque, ao invés do sistema operacional ter que se comunicar diretamente com o hardware em questão, ele o faz por intermédio do EFI. Assim, basta que qualquer sistema operacional saiba "falar" com o EFI para que este faça o hardware desejado "entrar em ação".

Esquema EFI

Outra vantagem da utilização do EFI é o fato deste não precisar ser armazenado em chips CMOS (Complementary Metal-Oxide Semiconductor). Sua implementação pode ser feita diretamente no chip do firmware*. Além disso, pode-se armazenar recursos extras no disco rígido do computador e instruir o EFI a acessá-los. Se por algum motivo esses dados forem apagados, muito provavelmente será possível reinstalá-los, como se fosse reinstalado um driver de um determinado dispositivo em um sistema operacional.

* Firmware é uma espécie de software embutido em um hardware que serve para controlá-lo. Por exemplo, se você tem um aparelho que toca músicas no formato MP3, o software que permite a execução e que mostra as informações no visor é um firmware.

Finalizando

A proposta do EFI é substituir o BIOS tradicional, mas não se sabe ainda se essa tecnologia se tornará padrão, mesmo porque ainda está em tempo de tecnologias semelhantes ou melhores surgirem. No entanto, é indiscutível que o EFI é promissor, do contrário, empresas como Microsoft e Gateway não teriam interesse por ela.

Logotipo da UEFIA Apple, por exemplo, lançou em janeiro de 2006 uma versão do Mac que faz uso do EFI. Muito provavelmente isso ocorreu porque este é um dos primeiros computadores da empresa a utilizar um processador Intel, a principal responsável pelo EFI. No entanto, para a Apple ter aceitado tal tecnologia, é porque esta se mostra realmente viável e interessante.

Há muito o que ser debatido e há muito o que ser definido para que o EFI seja aceito pela indústria do hardware, mas isso pode acontecer em breve. Suas vantagens são inúmeras e não se limitam às citadas aqui. Além disso, já existe um grupo formado por diversas empresas para tratar da tecnologia: a UEFI (Unified Extensible Firmware Interface). Mesmo assim, a única certeza que se tem no momento é que o BIOS tradicional precisa mesmo "virar coisa do passado".

Escrito por - Publicado em 23_01_2006 - Atualizado em 20_01_2008