Easyboot ist ein All-in-One Boot Manager und bootfähiger Disk-Image-Ersteller, der geladen werden kann verschiedene Betriebssystemkerne und Multiboot2-kompatible Kernel in verschiedenen Binärformaten.
HINWEIS: Wenn Sie nach einem Boot-Loader suchen, der nur einen einzelnen Kernel lädt, dann werfen Sie einen Blick auf den kleinen Bruder von Easyboot, der Simpleboot.
Dieses Projekt wäre ohne die Unterstützung der Free Software Foundation Hungary nicht möglich gewesen. Das Projekt wurde in Anwendung der FSF.hu-Ausschreibung für Die Freie Software 2023 erstellt.
Unterstützte Kernel: 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)
Unterstützte Dateisysteme: FAT12/16/32, exFAT, NTFS (v3, v3.1), ext2/3/4, XFS (SGI), UFS (v2, v4.4), mfs (Minix3), BeFS (Haiku), AXFS (OS/Z)
(Wenn sich der Kernel auf der Boot-Partition befindet, kann jedes Dateisystem als Root verwendet werden: ZFS, btrfs usw.)
Ich habe einen einfach zu verwendenden Bootloader erstellt und die Benutzer fragten nach immer mehr Funktionen. Ich wollte diesen Boot Loader behalten So einfach wie möglich, aber FSF.hu bot Unterstützung an, also habe ich beschlossen, es zu forken und alle gewünschten Funktionen in diesem Boot Manager hinzuzufügen stattdessen.
Dies ist ebenfalls ein sauglos Tool wie Simpleboot, hat keine Abhängigkeiten und ist äußerst einfach zu verwenden:
easyboot (Quellverzeichnis) (Ausgabebilddatei)
ausSie können den Boot Manager installieren und ein vorhandenes Gerät oder Image bootfähig machen; oder Sie können ein bootfähiges
Image neu erstellen. Sie können Booten dieses Image in einer VM, oder Sie können es mit dd
oder
USBImager auf einen Speicher schreiben und booten das auch auf einer echten Maschine.
Einfachheit ist die entscheidende Kultiviertheit!
Laden Sie einfach die Binärdatei für Ihr Betriebssystem herunter. Dabei handelt es sich um portable ausführbare Dateien, die keine Installation erfordern und auch nicht benötigt werden gemeinsam genutzte Bibliotheken/DLLs.
Darüber hinaus finden Sie im Verzeichnis distrib verschiedene Verpackungslösungen (für Debian, Ubuntu, RaspiOS, Gentoo, Arch).
Wenn Sie dann ein Image erstellen, benötigen Sie (abhängig von Ihrer Konfiguration) möglicherweise auch einige Plugins in Ihrem
(Quellverzeichnis)
. Du Sie finden diese im Verzeichnis src/plugins mit der Erweiterung plg
. Bei der Installation
aus einem Paket sind dies der Fall unter /usr/share/easyboot
abgelegt.
Die ausführliche Dokumentation zur Verwendung des Disk-Image-Ersteller und zum Booten eines Kernels finden Sie in den docs Verzeichnis.
Wenn Sie einen Kernel schreiben möchten, der ohne Plugin geladen werden kann, indem Sie das vereinfachte Multiboot2 -Protokoll von Easyboot verwenden, dann werfen Sie einen Blick auf Simpleboot-Beispielkernel Verzeichnis. Beide Loader verwenden das gleiche Boot-Protokoll, sodass der Kernel unverändert mit Easyboot funktioniert. Sie werden sehen, dass weder Assembly noch eingebettete Tags erforderlich sind, ansonsten ist der Quellcode zu 99,9 % mit dem Beispiel in der Multiboot2-Spezifikation identisch (der einzige Unterschied besteht darin, dass er auf der seriellen Konsole und nicht auf dem VGA-Teletype-Bildschirm gedruckt wird, als Letzteres existiert nicht auf UEFI und auf RaspberryPi-Maschinen).
GNU/make wird für die Orchestrierung benötigt (obwohl es buchstäblich nur cc easyboot.c -o easyboot
ist). Die Toolchain spielt
keine Rolle, Jeder ANSI-C-Compiler reicht aus und funktioniert auch unter POSIX und WIN32 MINGW. Gehen Sie einfach in das
Verzeichnis src und führen Sie make
aus. Das ist alles. Trotz seiner geringen Größe ist es eigenständig und bei der
Kompilierung gibt es genau keine Bibliotheksabhängigkeiten. Es heißt nicht Easyboot für nichts :-)
Um die Loader neu zu kompilieren, benötigen Sie den flatassembler sowie LLVM Clang und lld (gcc und
GNU ld wird leider nicht funktionieren). Aber keine Sorge, ich habe sie alle als Byte-Array zu src/data.h
hinzugefügt, sodass Sie
nicht kompilieren müssen diese, es sei denn, Sie möchten es wirklich (löschen Sie dazu einfach data.h, bevor Sie make ausführen).
Andererseits benötigen Sie zum Kompilieren der Plugins einen Cross-Compiler, entweder LLVM CLang oder GNU gcc (x86_64-elf-gcc,
aarch64-elf-gcc). Das Repo enthält diese auch als Binärdateien. Um die Neukompilierung durchzuführen, löschen Sie einfach die
Dateien src/plugins/*.plg
bevor Sie make ausführen.
Easyboot ist kostenlose Open-Source-Software, lizenziert unter den Bedingungen der GPL Version 3 oder (Ihrer Meinung nach) einer späteren Version. Einzelheiten finden Sie in der Datei LICENSE.
bzt