LEAME.md 7.8 KB

Easyboot

Easyboot es un administrador de arranque y creador de imágenes de disco de arranque todo en uno que puede cargar varios núcleos de sistema operativo y núcleos compatibles con Multiboot2 en varios formatos binarios.

Easyboot

NOTA: Si está buscando un cargador de arranque que cargue un solo kernel, eche un vistazo al hermano pequeño de Easyboot, Simpleboot.

Reconocimiento

Este proyecto no habría sido posible sin el apoyo de la Free Software Foundation Hungary. El proyecto fue creado en el marco de la licitación de software libre 2023 de FSF.hu.

Ventajas sobre GRUB

  • instalador multilingüe, fácil de usar y sin dependencias
  • no está hinchado, es sólo alrededor del 0,5% del tamaño de GRUB
  • fácil de configurar, con comprobador de sintaxis
  • parchee fácilmente tablas ACPI con DSDT proporcionado por el usuario
  • muestra detalles del error si el kernel se activa en una etapa temprana
  • Multiboot2: punto de entrada limpio de 64 bits (no es necesario incrustar etiquetas ni código de trampolín de 32 bits en el kernel)
  • Multiboot2: soporte para núcleos de mitad superior
  • Multiboot2: mapa de memoria consistente e independiente del firmware en todas las plataformas
  • Multiboot2: framebuffer consistente e independiente del firmware en todas las plataformas
  • Multiboot2: también se proporciona la información EDID del monitor
  • Multiboot2: si lo desea, inicia el kernel en todos los núcleos del procesador (soporte SMP)
  • también hay un complemento para simular el arranque de GRUB con todos sus errores y dificultades.

Núcleos soportados: 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 archivos soportados: FAT12/16/32, exFAT, NTFS (v3, v3.1), ext2/3/4, XFS (SGI), UFS (v2, v4.4), mfs (Minix3), BeFS (Haiku), AXFS (OS/Z)

(Cuando el kernel está ubicado en la partición de arranque, se puede usar cualquier sistema de archivos para root: ZFS, btrfs, etc.)

Justificación

Creé un cargador de arranque fácil de usar y los usuarios pedían más y más funciones. Quería mantener ese gestor de arranque como lo más simple posible, pero FSF.hu ofreció soporte, así que decidí bifurcarlo y agregar todas las funciones solicitadas en este administrador de arranque en cambio.

Esta también es una herramienta sin mamar como Simpleboot, no tiene dependencias y es extremadamente fácil de usar:

  1. cree un directorio y coloque sus archivos de arranque en él, entre otras cosas la configuración de su menú y los complementos opcionales
  2. ejecute el comando easyboot (directorio de origen) (archivo de imagen de salida)
  3. y... eso es todo... ¡no queda nada más por hacer! ¡La imagen Just Works (TM), hará que tus kernels arranquen!

Puede instalar el administrador de arranque y hacer que un dispositivo o imagen existente sea de arranque; o puedes crear una imagen de arranque nueva. Puede inicie esa imagen en una VM, o puede escribirla con dd o USBImager en un almacenamiento y arrancar eso también en una máquina real.

¡Simplicidad es la máxima sofisticación!

Instalación

Simplemente descargue el binario para su sistema operativo. Estos son ejecutables portátiles, no requieren instalación y no necesitan ningún bibliotecas compartidas/DLL.

Además, puede encontrar varias soluciones de empaquetado en el directorio distrib (para Debian, Ubuntu, RaspiOS, Gentoo, Arch).

Al crear una imagen (dependiendo de su configuración), es posible que también necesite algunos complementos en su (directorio de origen). Tú Puede encontrarlos en el directorio src/plugins usando la extensión plg. Cuando se instalan desde un paquete, estos serán colocado en /usr/share/easyboot.

Documentación

La documentación detallada sobre cómo usar el creador del disco de arranque y cómo se inicia un kernel se puede encontrar en los docs directorio.

Núcleo de ejemplo

Si desea escribir un kernel que pueda cargarse sin ningún complemento usando el protocolo Multiboot2 simplificado de Easyboot, eche un vistazo a Kernel de ejemplo de Simpleboot. Ambos cargadores usan el mismo protocolo de arranque, ese kernel funciona con Easyboot tal como está. Verá que no se requiere Assembly ni etiquetas integradas; de lo contrario, el código fuente es 99,9 % igual que el ejemplo en la especificación Multiboot2 (la única diferencia es que se imprime en la consola serie y no en la pantalla del teletipo VGA, porque eso este último no existe en máquinas UEFI ni en RaspberryPi).

Compilacion

Se necesita GNU/make para la orquestación (aunque literalmente es solo cc easyboot.c -o easyboot). La cadena de herramientas no importa, cualquier compilador ANSI C servirá, también funciona en POSIX y WIN32 MINGW. Simplemente vaya al directorio src y ejecute make. Eso es todo. A pesar de su pequeño tamaño, es autónomo y la compilación tiene exactamente cero dependencias de biblioteca. No se llama Easyboot para nada :-)

Para recompilar los cargadores, necesitará flatassembler y LLVM Clang y lld (gcc y GNU ld no funcionará, me temo). Pero no te preocupes, los agregué todos a src/data.h como una matriz de bytes, para que no tengas que compilar. Estos a menos que realmente lo desees (para eso, simplemente elimina data.h antes de ejecutar make).

Por otro lado para compilar los complementos, tendrás que tener un compilador cruzado, ya sea LLVM CLang o GNU gcc (x86_64-elf-gcc, aarch64-elf-gcc). El repositorio también los incluye como binarios. Para realizar la recompilación, simplemente elimine los archivos src/plugins/*.plg antes de ejecutar make.

Licencia

Easyboot es software gratuito y de código abierto, con licencia según los términos de GPL versión 3 o (en su opinión) cualquier versión posterior. Consulte el archivo LICENSE para obtener más detalles.

bzt