O avanço do UEFI: Dor de cabeça à vista?

O avanço do UEFI: Dor de cabeça à vista?

Por mais de três décadas, todos os PCs continuaram a utilizar o velho BIOS desenvolvido pela IBM para o PC AT (o primeiro 286), remendado para oferecer suporte parcial ao hardware atual e ser capaz de inicializar os sistemas operacionais atuais. A parte boa sobre o BIOS é que ele funciona e suas funções (e bugs) são bem conhecidos, o que permite que os fabricantes e desenvolvedores de softwares saibam bem como conviver com ele, mesmo que a contragosto. De qualquer maneira, o BIOS tem apenas a função de realizar uma checagem rápida de dispositivos e iniciar o carregamento do sistema operacional, saindo de cena o mais rápido possível. No máximo, ele é usado para ajustar opções relacionadas ao hardware ou overclock através do setup ou inicializar uma ROM PXE para que seja realizado boot via rede, tarefas que não demandam muita inteligência por parte do software.

Apesar disso, as limitações do BIOS foram sempre bem conhecidas e se tornaram cada vez mais agudas conforme o hardware dos PCs foi evoluindo. Para início de conversa, o BIOS roda apenas em modo real, onde mesmo um Core i7 se comporta como um 8086, processando instruções de 16 bits e acessando apenas o primeiro megabyte da memória RAM, o que limita pesadamente as funções que o BIOS pode executar. Este é um dos motivos de mesmo nas placas atuais o BIOS continuar exibindo o Setup em modo texto, sem direito a suporte à rede ou a qualquer outra função adicional:

A própria enumeração de dispositivos é propensa a falhas, devido ao limitado escopo de endereços suportados, criando diversos problemas de detecção ou endereçamento que precisam ser corrigidos pelo sistema operacional, gerando um sem fim de tweaks ou simples gambiarras que se acumulam nos drivers e softwares, tornando-os mais propensos a bugs e falhas.

Outro problema é o tempo de boot, que hoje em dia é uma das prioridades dos fabricantes. Normalmente, o BIOS retarda o boot do sistema em pelo menos 10 segundos, até que o gerenciador de boot seja carregado e o sistema operacional seja carregado, mas em muitas situações a demora pode chegar a 30 segundos. Outra limitação é o suporte a HDs, já que o BIOS precisa ser periodicamente remendado para oferecer suporte a HDs de mais capacidade, como no caso das barreiras de 504 MB, 7.88 GB e 128 GB do passado e da barreira de 2.1 TB que enfrentamos atualmente. Mais problema é a obrigatoriedade do uso do MBR, que traz a limitação do uso de no máximo 4 partições primárias.

O UEFI (pronuncia-se “iuéfiài”) surgiu como o EFI, uma iniciativa da Intel, com o objetivo de oferecer um substituto mais moderno e flexível para o BIOS para uso em servidores e sistemas corporativos. Eventualmente a Intel entregou o desenvolvimento a um comitê, o UEFI forum, que inclui empresas como a AMD, Apple, Dell, IBM, Lenovo, Microsoft e até mesmo desenvolvedores de BIOS, como a AMI e a Phoenix.

Para fins práticos, o UEFI tem a mesma função do BIOS: inicializar o hardware da máquina e inicializar o sistema operacional, transmitindo o controle para ele. A grande diferença fica por conta da forma como o software é estruturado e as funções adicionais que ele introduz.

O UEFI é estruturado de forma similar a um sistema operacional, com suporte a módulos, que podem oferecer funções adicionais diversas, como sistemas instant-on para navegar na web ou exibir arquivos de mídia sem precisar carregar o sistema operacional, sistemas de gerenciamento remoto que possam funcionar de forma independente do SO (permitindo reparar ou reinstalar o sistema remotamente, mesmo que o sistema não esteja conseguindo concluir o boot), funções de backup e diagnóstico, plataformas de virtualização e assim por diante. O UEFI oferece suporte a rede, bem como suporte a ambiente gráfico, dispositivos de armazenamento USB e até mesmo à placa de som, o que permite que navegadores, players de mídia e outros tipos de softwares possam ser usados diretamente sobre ele. 

A aplicação mais comum para as novas funções do UEFI são as interfaces de configuração que estão sendo usadas pelos fabricantes nas placas mais atuais, que, embora continuem a oferecer basicamente as mesmas opções de configuração e overclock disponível nas placas anteriores, oferecem um ambiente gráfico, com suporte ao mouse, com uma apresentação bem mais atrativa:

Por ter sido desenvolvido para oferecer suporte ao hardware das próximas décadas, o UEFI elimina a necessidade de remendos para oferecer suporte a discos de grande capacidade e outros periféricos e oferece tempos de inicialização mais baixos, contribuindo para reduzir o tempo de boot dos PCs.

O grande problema com o UEFI é que ele é muito complexo. Incluindo todos os drivers ele é maior do que o kernel Linux, que em si já é uma peça de software extremamente complexa. Tantas linhas de código significam muitos bugs, o que somado ao suporte à rede abre as portas para brechas de segurança, bem como para problemas de compatibilidade. Ele também não faz nada para resolver um dos problemas fundamentais do BIOS, que é a necessidade de drivers separados para suporte dentro do ambiente de pré-boot e dentro do sistema operacional.

 

Outro problema sério em relação ao UEFI é o sistema Protected Boot, idealizado pela Microsoft para uso em conjunto com o Windows 8. O protected boot é um sistema de segurança que torna necessário o uso de certificados e assinaturas por parte do sistema operacional, eliminando, entre outras coisas, a possibilidade de que vírus e malwares se instalem no setor de boot, um estratagema muito usado para obter acesso de baixo nível ao sistema, bipassando a ação do antivírus e outras camadas de segurança. O problema é que o uso do Protected Boot adiciona um lock-in em relação à Microsoft e ao Windows, já que outros sistemas operacionais, especialmente o Linux são barrados devido à falta dos certificados. Naturalmente, seria possível que uma grande empresa, como a Canonical, conseguisse que todos os principais fabricantes incluíssem as chaves necessárias, mas isso seria inviável no caso de distribuições menores, que acabariam trancadas do lado de fora.

Embora o suporte ao Protected Boot seja um pré-requisito para a certificação de hardware do Windows 8 (o sistema também roda em PCs antigos, ou sem o recurso, mas algumas das funções de segurança ficam desativadas) os fabricantes devem oferecer uma opção para desativá-lo (embora isso não seja obrigatório), permitindo que outros sistemas operacionais, bem como versões antigas do Windows, sejam usados. Está disponível também a possibilidade de o próprio usuário adicionar certificados adicionais manualmente, mas em ambos os casos o processo complica a instalação de novos sistemas, fazendo com que mais usuários tendam a ficarem acomodados com o sistema pré-instalado.

Como o uso do UEFI demanda suporte por parte do sistema operacional, tudo indica que o abandono do bom e velho BIOS será lento, já que os fabricantes precisarão manter o velho BIOS (com o UEFI rodando sobre ele e oferecendo a opção de ser desativado) ou pelo menos mantendo compatibilidade com as chamadas antigas para que todos os sistemas operacionais anteriores ao Windows 8, que dependem delas possam funcionar. No Linux, existe um bom suporte ao UEFI por parte das distribuições atuais, mas (assim como no Windows) podem existir problemas com versões antigas, que ainda dependem das chamadas do BIOS. O suporte ao Secure Boot não é um grande problema do ponto de vista técnico, mas é um grande desafio devido à questão da distribuição das chaves e por isso é provável que nunca chegue ao Linux, com a possível exceção de alguma grande distribuição. Este tema do suporte ao Secure Boot no Linux foi extensivamente discutido por Matthew Garrett na Linuxconf Australia de 2012.

Em outras palavras, os problemas de compatibilidade do UEFI não são tão graves quanto originalmente se temia, já que além da opção para desabilitar o Secure Boot, a grande maioria dos PCs e placas-mãe continuarão a oferecer opções para manter a compatibilidade com as chamadas do BIOS, ou mesmo para desabilitar o UEFI completamente. A principal questão são casos de notebooks, estações de trabalho e placas que eventualmente não ofereçam essas opções. Eles devem ser evitados ao máximo, já que comprar um deles poderá causar dores de cabeça ao tentar rodar qualquer coisa diferente do Windows 8 que virá pré-instalado. 

O UEFI oferece também suporte à plataforma ARM, e é também um pré-requisito para a construção de tablets e outros dispositivos com o Windows RT. No caso da arquitetura ARM entretanto, o Secure Boot é mandatório e não pode ser desativado, tornando necessário o uso de hacks (assim como no caso dos produtos da Apple) para burlar o sistema e permitir a instalação de outros sistemas operacionais ou softwares sem as assinaturas necessárias.

Concluindo, existem também alternativas para usar o UEFI mesmo em PCs antigos, que consistem em instalar o firmware em uma localização específica do HD ou em um pendrive e rodá-lo sobre o BIOS, assim como em muitas das implementações híbridas adotadas pelos grandes fabricantes. O mais notável entre estes projetos é o DUET, uma ferramenta voltada para desenvolvedores, que oferece uma instalação complicada, mas é extremamente útil como uma ferramenta para entender melhor sobre a estrutura do UEFI e como ele interage como o sistema operacional. Você encontra instruções detalhadas de como usá-lo aqui
 

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X