Unified Kernel Images (UKIs): será esta, a solução definitiva para a…

… inicialização de sistemas operacionais GNU/Linux? Os linuxers que tiveram as suas primeiras experiências com as principais distros da virada do século, devem se lembrar do bom e velho LILO (Linux Loader). Na época, o Linux ainda não estava maduro o suficiente para o seu uso em produtividade e por isto, muitos usuários optavam por uma instalação dual-boot, onde o Windows e o Linux coexistiam em uma mesma unidade de armazenamento (em partições separadas). O LILO era o gestor de inicialização que não só era o responsável pela inicialização do Linux, mas também por alternar para o Windows…

O gestor de inicialização (bootloader) é o software responsável por inicializar o sistema operacional, carregando uma imagem do kernel (vmlinux) e os drivers essenciais (initramfs) para a memória do sistema, assim que o hardware é ligado. O seus binários ficam armazenados nos setores responsáveis pela inicialização da unidade de armazenamento (MBR para o BIOS; partição de boot no UEFI). Através dele, também podemos escolher qual sistema operacional carregar (se houver mais de um instalado), além de passar parâmetros específicos para atender a determinadas necessidades (como entrar em modo de recuperação).

Embora cumprisse muito muito bem as suas obrigações, infelizmente o LILO tinha uma série de limitações técnicas que o impossibilitava de gerenciar de forma efetiva, a inicialização do sistema. Em destaque, a falta de suporte para os sistemas de arquivos, a incapacidade de lidar com unidades de armazenamento modernas (com suporte para a estrutura de particionamento GPT) e a falta de flexibilidade para realizar as configurações. Por isto, ele foi gradualmente substituído pelo GRUB (GRand Unified Bootloader), que além de ser mais moderno e eficiente, também oferecia recursos e funcionalidades adicionais.

Por muitos anos, o GRUB se tornou a ferramenta de inicialização (bootloader) padrão das distros GNU/Linux modernas. Mas apesar de superar o LILO em muitos quesitos, ele ainda mantém a mesma arquitetura tradicional desta categoria de software, exigindo a disposição de uma imagem especial e seus respectivos drivers para dar a partida no sistema, além de manter a retrocompatibilidade com tecnologias legadas, como é o caso da BIOS/MBR. O GRUB também acabou se tornando desnecessário, já que muitas rotinas voltadas para a inicialização do sistema já se encontra disponível no firmware UEFI, além de ocupar um volume de dados considerável. Por isto, os desenvolvedores decidiram por uma nova abordagem.

Uma Unified Kernel Images (UKI) propõe uma mudança radical na implementação do gestor de inicialização. Diferente do LILO, GRUB e outros softwares do gênero, ele é um único binário completo que engloba o sistema operacional e os componentes necessários, para inicializar o sistema completo em um único arquivo verificado. O formato UKI combina o kernel, a imagem de disco inicial, a linha de comando do kernel e outros dados associados em um único arquivo. Essa abordagem unificada dispensaria os bootloaders complexos, aumentando a segurança com Secure Boot e no final das contas simplificaria a manutenção do sistema.

Se gostei da proposta? Muito! Há tempos, acredito que uma solução mais elegante para substituir o GRUB já deveria ter sido criada, uma vez que esta ferramenta possui suas particularidades e limitações, em relação a sua administração. Além disso, o GRUB surgiu numa época em que os requisitos e as exigências da computação eram bem diferentes dos dias de hoje. Porém, não sabia que o UKI já estava disponível de forma estável e pronto para o uso em produtividade, além de contemplar os requisitos e as exigências da computação moderna.

Eis, a (minha) realidade: após voltar aos estudos intensivos para obter a certificação CompTIA Linux+ (para a qual obtive treinamento e voucher, bancado pela própria instituição), me dei conta de que fiquei um pouco desatualizado em relação as melhorias e inovações proporcionadas para os sistemas GNU/Linux. Em destaque, está a evolução do systemd, que apesar de ter surgido para a gestão do sistema operacional e seus serviços, na prática ele agregou uma série de tarefas e responsabilidades correlacionadas a sua principal finalidade. Dentre eles, está o UKI para gerenciar a inicialização do sistema.

Pois é, preciso me atualizar! Por isto, remarquei a data do meu exame… &;-D

Leave a Comment