Easyboot é um gestor de arranque completo e criador de imagens de disco de arranque que pode carregar vários kernels de sistema operativo e kernels compatíveis com Multiboot2 em vários formatos binários.
NOTA: Se procura um carregador de arranque que carregue apenas um kernel, dê uma vista de olhos ao irmão mais novo do Easyboot, Simpleboot.
Este projeto não teria sido possível sem o apoio da Free Software Foundation Hungria. O projeto foi criado no âmbito do Concurso de Software Livre 2023 da FSF.hu.
- instalador multilingue, fácil de usar e sem dependências
- não inchado, tem apenas cerca de 0,5% do tamanho do GRUB
- fácil de configurar, com verificador de sintaxe
- corrigir facilmente tabelas ACPI com DSDT fornecido pelo utilizador
- mostra um ecrã de erro muito detalhado se o kernel desligar numa fase inicial
- Multiboot2: ponto de entrada limpo de 64 bits (sem necessidade de incorporar tags nem de código trampolim de 32 bits no kernel)
- Multiboot2: suporte para kernels de metade superior
- Multiboot2: independente do firmware, mapa de memória consistente em todas as plataformas
- Multiboot2: independente do firmware, framebuffer consistente em todas as plataformas
- Multiboot2: as informações EDID do monitor também são fornecidas
- Multiboot2: se solicitado, inicia o kernel em todos os núcleos do processador (suporte SMP)
- existe também um plugin para simular o arranque do GRUB com todas as suas armadilhas e bugs.
Kernels suportados: Multiboot1 (ELF32, PE/COFF, a.out; BIOS, UEFI, RPi), Multiboot2 (ELF32, ELF64, PE32+/COFF, a.out; BIOS, UEFI, RPi), Linux (BIOS, UEFI, RPi), Windows (UEFI), OpenBSD (BIOS, UEFI), FreeBSD (BIOS, UEFI), FreeDOS (BIOS), ReactOS (BIOS), MenuetOS 32 / 64 (BIOS, UEFI), KolibriOS (BIOS, UEFI), SerenityOS (BIOS, UEFI), Haiku (BIOS, UEFI)
Sistemas de ficheiros suportados: FAT12/16/32, exFAT, NTFS (v3, v3.1), ext2/3/4, XFS (SGI), UFS (v2, v4.4), mfs (Minix3), BeFS (Haiku), AXFS (OS/Z)
(Quando o kernel está localizado na partição de arranque, qualquer sistema de ficheiros pode ser utilizado para root: ZFS, btrfs, etc.)
Criei um bootloader simples de utilizar, e os utilizadores pediam cada vez mais recursos. Eu queria manter este carregador de arranque o mais simples possível, mas o FSF.hu suportava-o, por isso decidi bifurcá-lo e adicionar todos os recursos solicitados neste gestor de arranque.
Esta é também uma ferramenta sem sucção como o Simpleboot, não tem dependências e é extremamente fácil de utilizar:
- crie um diretório e coloque nele os seus ficheiros de arranque, entre outras coisas, a sua configuração de menu e os plugins opcionais
- execute o comando
easyboot (directoria de origem) (ficheiro de imagem de saída) - e... pronto... não há mais nada a fazer! A imagem Simplesmente Funciona (TM), fará com que os seus kernels arranquem!
Pode instalar o gestor de arranque e tornar um dispositivo ou imagem existente inicializável; ou pode criar uma imagem de arranque
novamente. Pode arrancar esta imagem numa VM ou pode gravá-la com dd ou USBImager num
armazenamento e iniciá-la numa máquina real também.
A simplicidade é a máxima sofisticação!
Basta descarregar o binário para o seu sistema operativo. Estes são executáveis portáteis, não requerem instalação e não necessitam de qualquer biblioteca/DLL partilhada.
- easyboot-x86_64-linux.tgz Linux, *BSD (1M)
- easyboot-i686-win.zip Windows (1M)
Além disso, pode encontrar várias soluções de empacotamento no diretório distrib (para Debian, Ubuntu, RaspiOS, Gentoo, Arch).
Ao criar uma imagem (dependendo da sua configuração), também pode precisar de alguns plugins no seu (directoria de origem). Pode
encontrá-los no directório src/plugins utilizando a extensão plg. Quando instalados a partir de um pacote, serão
colocados em /usr/share/easyboot.
A documentação detalhada sobre como utilizar o criador de discos de arranque e como um kernel é iniciado pode ser encontrada no diretório docs.
Se quiser escrever um kernel que possa ser carregado sem qualquer plugin utilizando o protocolo Multiboot2 simplificado do Easyboot, dê uma vista de olhos ao directório Simpleboot Exemplo de Kernel. Ambos os carregadores utilizam o mesmo protocolo de arranque, e o kernel funciona com o Easyboot tal como está. Verá que não são necessárias tags Assembly nem incorporadas, caso contrário, o código-fonte é 99,9% igual ao exemplo na especificação Multiboot2 (a única diferença é que imprime na consola série e não no ecrã de teletipo VGA, porque este último não existe nas máquinas UEFI e RaspberryPi).
GNU/make necessário para orquestração (embora seja literalmente apenas cc easyboot.c -o easyboot). A cadeia de ferramentas não
interessa, qualquer compilador ANSI C serve, funciona em POSIX e WIN32 MINGW também. Basta ir ao directório src e executar
make. Isso é tudo. Apesar do seu pequeno tamanho, é independente e a compilação tem exatamente zero dependências de biblioteca.
Não se chama Easyboot à toa :-)
Para recompilar os carregadores, necessitará do flatassembler, e do LLVM Clang e lld (receio que o
gcc e o GNU ld não funcionem). Mas não se preocupe, adicionei todos eles em src/data.h como um array de bytes, pelo que não
precisa de os compilar, a menos que realmente queira (para isso, basta apagar data.h antes de executar make).
Por outro lado, para compilar os plugins, terá de ter um compilador cruzado, seja LLVM CLang ou GNU gcc (x86_64-elf-gcc,
aarch64-elf-gcc). O repositório também inclui estes ficheiros como binários. Para fazer a recompilação, basta apagar os
ficheiros src/plugins/*. plg antes de executar o make.
Easyboot é um software livre e de código aberto, licenciado nos termos da GPL versão 3 ou (na sua opinião) de qualquer versão posterior. Consulte o ficheiro LICENSE para detalhes.
bzt
