Qual é o negócio com o Uefi?
Parece que há dois acampamentos, o pequeno grupo de pessoas que se preocupam com Uefi e todos os outros que realmente não percebem ou se importam, desde que o computador funcione. Então, vamos falar sobre o que é Uefi, como se tratava, o que é adequado, e por que você deve (ou não deveria) se importar.
O que é uefi?
UEFI significa interface de firmware extensível unificada, uma convencional realizada por uma organização conhecida como Fórum do EFI United. A Intel saiu com EFI (interface de firmware extensível) e depois fez o público da especificação como UEFI. Como uma especificação, os detalhes da aplicação alteram entre fornecedores e fabricantes, mas o objetivo é apresentar a estrutura convencional e compreensível de um bootloader do sistema operacional. Isso torna muito mais simples escrever um sistema operacional, pois você não precisa mais se preocupar com toda a empresa desarrumada de realmente iniciar o chipset.
Vários IBVs (fornecedores independentes do BIOS) oferecem suas implementações da UEFI que os OEMs que produzem placas-mãe podem licenciar e usar em seus produtos. Alguns exemplos seriam Ami, Phoenix e Insyde. Você provavelmente viu seu logotipo ou apenas o texto de seu nome piscar brevemente na tela antes do sistema operacional de escolha corretamente botas.
Vamos falar sobre como as botas Uefi. Geralmente, existem algumas fases diferentes. Normalmente dizemos porque existem inúmeras implementações e numerosas delas fazem as coisas da especificação. Existem três fases gerais: segurança e segurança (seg), inicialização pré-EFI (PEI) e ambiente de execução (DXE). Cada um é um mini sistema operacional. Porque a Intel é aquela que iniciou EFI e depois a transformou em UEFI, grande parte do design é desenvolvida em torno de como os processadores Intel são inicializados. Outras plataformas como o braço podem se abster de fazer muito na fase SEC ou PEI.
O processo de inicialização para processadores x86 é um pouco estranho. Eles começam no modo real (embora a maioria dos processadores nos dias de hoje seja tecnicamente irreal), com um espaço de endereço de 20 bits (1MB de memória endereçável) para razões de compatibilidade anteriores. Como o processador continua a inicializar, ele muda para o modo garantido e, finalmente, para o modo longo. Em um sistema multi-core, todas as corridas de processadores para obter um semáforo ou leitura eax, e uma é designada pelo BSP (processador de bootstrap). Os perdedores todos param até que o BSP os inicia através de uma IPI (interrupção interprocentista). Normalmente, há um chip flash de SPI a bordo com firmware mapeado para o final da região de memória de 32 bits física. O mecanismo de gerenciamento Intel (ME) ou o processador de segurança da plataforma AMD (PSP) faz a maior parte da fase sec, como lavar o cache e iniciar os processadores.
Quando os processadores são iniciados, a Pei começou oficialmente. Nos sistemas Intel, não há RAM do sistema na maioria dos PEI. Isso ocorre porque a memória precisa ser treinada e os links inicializados antes do processador podem usá-los. O empurrão sempre implacável para muito mais e muito mais velocidade da RAM implica que a RAM precisa ser testada, calibrada e configurada em cada inicialização como diferentes varas de RAM têm outros parâmetros. Numerosos sistemas cache esses parâmetros para os tempos de inicialização mais rápidos, mas eles normalmente precisam ser invalidados e retidos à medida que a RAM adere a idade. O PSP lida com treinamento de memória e embalagem UEFI em alguns sistemas AMD antes do processador principal X86 ser retirado de redefinição. Para sistemas Intel, eles usam um truque chamado XIP (Execute no Lugar), que transforma os vários caches em RAM de curto prazo. Há apenas uma pequena pilha, uma pequena quantidade de espaço de heap e não há variáveis estáticas para PEI. Numerosas plataformas do servidor Intel dependem do controlador de gerenciamento de diretoria (BMC) para treinar memória, como treinamento de grandes quantidades de memória leva muito tempo.
Depois de inicializar a RAM e transferir o conteúdo do cache de curto prazo, nós relocando para o DXE. A fase DXE oferece dois tipos de serviços: inicialização e tempo de execução. Os serviços de tempo de execução devem ser consumidos por um sistema operacional, serviços como variáveis não voláteis. Os serviços de inicialização são destruídos, uma vez que o ExitbootServices é chamado (normalmente pelo carregador do sistema operacional), mas eles são serviços como entrada de teclado e drivers gráficos. O BDS (Seleção de Dispositivos de Inicialização) é executado no DXE e é como o sistema determina o inversor para inicializar (disco rígido, USB, etc.).
Esta tem sido uma visão geral muito densa e x86. Numerosas arquiteturas como o braço eschew uefi para algo muito mais como Cegreboot, Linuxboot, ou LK, onde ele inicializa um pequeno kernel de Linux que então o kexec está em um núcleo muito maior. No entanto, numerosas plataformas de braço também podem aproveitar o UEFI. só o tempo dirá a qual a indústria se move.
Como se tratava
Em 2005, a UEFI substituiu inteiramente a EFI (extensível interface de firmware), a Intel convencional havia colocado alguns anos anteriores. EFI emprestou inúmeras coisas das janelas desse período, formatos de imagem do Pecoff e Uefi, por sua vez, métodos emprestados da EFI. Antes da EFI, houve bom BIOS antigo (sistema básico de saída de entrada). O nome originado de sistemas CP / M de 1975. Nesse período, o BIOS foi uma maneira de inicializar e oferecer uma interface um pouco uniforme para aplicações by oferecendo chamadas de interrupção do BIOS. As chamadas telefônicas permitem que um programa acessasse as entradas e saídas, como as portas seriais, o RTC e o barramento PCI. Phoenix e outros reverteram a interface proprietária que a IBM produziu para fabricar máquinas compatíveis com IBM, que eventualmente levou a algo próximo de um padrão.
É melhor que o BIOS?
Sim e não, dependendo da sua perspectiva. Numerosos fornecedores do sistema operacional como o UEFI porque eles normalmente tornam suas vidas mais simples, pois os serviços prestados facilitam a inicialização de uma experiência homogênea. A comunidade Linux, tipicamente falando, é agnóstica na melhor das hipóteses e antagônicas em pior para a UEFI. A interface do BIOS está empurrando 45 anos a partir do momento da escrita e é considerada legada em todos os sentidos. Outro ponto no canto da Uefi é que facilita a escolha de diferentes dispositivos de inicialização e atualizando o firmware em sua máquina. UEFI utiliza a tabela de partição GUID (GPT) sobre registro de inicialização mestre (MBR) – consideravelmente como MBR é um pouco inflexível. Numerosas plataformas enviadas hoje são baseadas no projeto EDK2 de código aberto da Tianocore, uma implementação do UEFI que suporta x86, braço e RISCV.
A maior queixa com a UEFI é que é uma caixa preta fechada com acesso inimaginável ao seu computador e permanece local após as botas do computador. A BIOS é atraente porque a interface é amplamente conhecida e normalmente é não residente. O UEFI pode ser atualizado mais simples, mas também tem uma necessidade muito mais importante para atualizações. Uma atualização UEFI pode entrar inteiramente seu sistema. Não inicializará, e por causa dos fusíveis serem explodidos na unidade, é praticamente impossível fisicamente consertá-lo, mesmo para o fabricante. Quantidades significativas de testes entram nessas atualizações, mas a maioria é hesitante em apertar inúmeras atualizações devido à quantidade de trabalho necessária.
Por que você deveria ou não deveria se importar
No final do dia, você se importa se você pode usar seu computador para as coisas que são essenciais para você. Se isso está jogando um jogo, escrevendo um e-mail ou fazendo um novo computador, não importa, desde que o computador faça o que quiser. e a inicialização é apenas um passo esquecido de fazer isso acontecer. Se você se preocupa com a compreensão de cada peça de código, seu dispositivo é executado, você precisa se curvar por um longo passeio. Há negócios como Librem indo para comprimentos longos para garantir que problemas complicados como a Init Memória estão sendo executados em blobs não proprietários. Você ainda pode modificar o UEFI, [hales] sendo um ótimo exemplo de ajustar o BIOS de um laptop da velha escola. Ferramentas de código aberto para inspecionar e entender o que está acontecendo sob o capô estão melhorando.
Em última análise, é tanto quanto você se você se importa com o processo de inicialização do seu dispositivo.