EFI no lugar de BIOS
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 Emerson Alecrim - Publicado em 23_01_2006 - Atualizado em 20_01_2008
Comentários
Em hardware a Tabela de Partição GUID (GPT) é um padrão para o layout da tabela de partição em um disco rígido físico. Embora seja parte do padrão de Extensible Firmware Interface (EFI) (a proposta de substituição da Intel para a BIOS da IBM), ele pode ser usado em sistemas BIOS sistemas devido às limitações das tabelas de partição na Ficha de Boot Principal, que limitam o tamanho máximo do disco a 2 TiB.
O Windows XP 32-bit (das versões do Windows XP, a mais utilizada) e versões anteriores do Windows não podem (sem Hacks) ler ou escrever em unidades formatadas com uma tabela de partição GUID, no entanto, Windows Vista e Windows 7 possuem esta capacidade (Linux já possuem esta disponibilidade de acordo com a atualização do kernel, nota do Johnny)
Recursos
Atualmente, esquemas de tabela de partição baseados em MBR inserem a informação de particionamento na própria ficha principal de boot (MBR(em inglês)) (que no sistema de BIOS também é o recipiente para o código que inicia o processo de inicialização dos discos). Em GPT, informações da tabela de partição são armazenadas no cabeçalho do GPT, mas, para manter a compatibilidade, o GPT retém a entrada MBR como primeiro setor do disco, seguido por um cabeçalho de tabelas de partições primárias, o início efetivo do GPT.
Como MBRs modernos, o GPT utiliza endereçamento de bloco lógico (LBA (em inglês)) no lugar do histórico adereçamento cilindro-cabeça-setor (CHS(em inglês)) de MBRs antiquados. Informações MBRs antiquadas estão contida no LBA 0, o cabeçalho do GPT está no LBA 1, e seguido da tabela de partição. Em Microsoft Windows 64-bits, 16.384 bytes, ou 32 setores, são reservados para o GPT, deixando o LBA 34 como o primeiro setor útil em o disco.
Segundo a Apple Inc.,2 "Não assuma que o tamanho do bloco sempre será 512 bytes." Dispositivos de armazenamento modernos, tais como drives de estado sólido podem conter LBAs de 1024 bytes e algumas unidades de disco magneto ótico (mo) usam setores de 2048 bytes (drives MO, que geralmente não são particionados). Fabricantes de discos rígidos estão planejando a transição para setores de 4096 bytes, para 2010, as primeiras dessas unidades empregarão firmware que apresentará a ilusão de setores de 512 bytes para o SO.3
Discos que inicializam Macs Intel são normalmente formatados com uma tabela de partição GUID, e não com os Mapas de partição Apple.
O GPT também fornece redundância. O cabeçalho e tabela de partição GPT são escritos em ambos início e final do disco.
O MBR no início do disco foi originalmente concebido para impedir utilidades de disco baseadas em MBRs de reconhecer erroneamente e, possivelmente, de sobrescrever discos GPT (no entanto, em sistemas operacionais que suportam boot baseado em GPT, hoje também utiliza-se para armazenar a primeira fase do sistema de iniciação). Um único tipo de partição 0xEE, englobando todo o disco GPT, é indicado e identifica o disco como GPT. Alguns sistemas operacionais 32-bits que não são capazes de ler discos GPT, no entanto, reconhecem essa identificação e apresentam o disco como um disco GPT inacessível. SOs mais antigos, geralmente reconhecem o disco como contendo uma partição de tipo desconhecido e sem espaço livre, normalmente se recusando a modificar o disco a menos que o usuário solicita explicitamente, e confirme a exclusão da partição. Isso minimiza perdas acidentais. Além disso, SOs que entendem GPT irão verificar a proteção de MBR e se a partição fechada não for do tipo 0xEE ou se existirem várias partições definidas no dispositivo de destino, o dispositivo não deve ser manipulado.
Se o disco for maior que 2 TiB, o tamanho máximo de partição utilizando os LBAs de 32-bits do MBR antiquado (assumindo um tamanho de bloco de 512 bytes), o tamanho desta partição está marcada como 2 TiB, ignorando o resto do disco.
O cabeçalho da tabela de partição define os blocos do disco que podem ser utilizado pelo usuário (os blocos utilizáveis). Ele também define o número e o tamanho das entradas de partição que compõem a tabela de partição. No Windows Server 2003 64-bits, existem 128 entradas de partição reservadas, cada uma com 128 bytes de comprimento. Assim, 128 partições podem ser criadas. (A especificação EFI exige que um mínimo de 16.384 bytes seja reservado para a tabela de partição, de modo que esta de origem a partição de 128 registros).
O cabeçalho contém o Identificador Único Global (GUID(em inglês)) do disco. Ele grava seu próprio tamanho e localização (sempre LBA 1) e o tamanho e localização do cabeçalho GPT secundário e tabela secundária (sempre os últimos setores no disco). É importante, também que ele contenha também um a soma de verificação CRC32 para si e para a tabela de partição, que podem ser verificados pelo firmware, gestor e/ou sistema operacional na inicialização. Devido a isso, os editores hexa não deve ser utilizados para modificar o conteúdo do GPT, tal modificação tornaria a soma de verificação inválida. Neste caso, o GPT primário pode ser substituído com o secundário, ou, se ambos GPTs contiverem soma de verificação inválidas, não será possível acessar o disco.
Mais informações em http://pt.wikipedia.org/wiki/Tabela_de_Partição_GUID
Mas nem tudo são flores, alguns recursos como secure boot dificultaram muito a instalação, formatação e a escolha de outras opções de sistemas operacionais para os(as) usuários(as), na minha opinião esse recurso deveria vir desabilitado por padrão.
Muitos usuários Windows compram notebooks ou PC's com Linux pelo fato de serem mais baratos e instalam uma versão pirata do Windows depois.
E dual boot tem algumas vantagens e desvantagens em relação as outras opções como o uso de apenas um sistema ou virtualização, de um modo ou de outro o secure boot habilitado por padrão é um estorvo.
Com os PCs de hoje, não vejo mais a necessidade de dual boot com uso da virtualização. Só se o cara tiver na lona mesmo e comprar um computador note limitadíssimo. O meu, com uma placa mãe inferior a que eu estava e com um processador serie A da AMD roda liso Linux e Windows no modo virtual. E quando eu digo roda liso, roda com os aplicativos. Claro que se for usar como se deve, deve-se ajustar a ram hospedeira e tals... Mas nisso também sem problemas.
Eu uso dual boot e virtualização, tenho um i5 com suporte VT.
Você não tem o mesmo desempenho gráfico nos jogos usando o Windows virtualizado em um host Linux do que teria usando no Windows diretamente, salvo talvez se você fizer uma VGA passthroug o que não é tão simples.
O problema de se usar o Windows como host e o Linux como guest é com a segurança, algum malware com network componente, como worms, pode infectar o host Windows e comprometer todo o sistema, em um host Linux mesmo que o malware consiga infectar o host pela rede compartilhada será apenas um executável do Windows sem maiores ameaças.
As configurações que tenho visto em computadores com Linux são horríveis!
Não tem sentido colocar Linux em uma máquina high end que será comprada por gamers entusiastas.
Logado como Admin certo? Por que até hoje nunca "consegui" ser infestado, atacado, comprometido em nada no meu Windows. Mas confesso que é batata, basta eu esquecer ele logado como admin que alguém faz cagada...
E Linux acontece o mesmo como root... Ainda menos frequente, mas já está aumentando. O fato Cameron é que, se eu for usar pesado o PC, o SO titular deve ser o de boot e o outro secundário. Raramente usuário Linux é hard user gráfico ou de processamento.
De qualquer forma, por mais dificultoso que seja estes novos itens, o pessoal está contornando os problemas facilmente.
Eu, na minha humilde opinião, teria dois HDs (eu tenho, mas não para dual boot)
E uso virtualização para testar arquivos e programas e fazer varreduras com AV's antes de mandá-los para a partição com Windows nativo.
Não importa o número de HD's, por isso acho que deveria vir desabilitado por padrão e quem quisesse o ativaria.