Easyboot to wszechstronny menedżer rozruchu i kreator obrazu dysku startowego, który może załadować różne jądra systemu operacyjnego i jądra zgodne z Multiboot2 w różnych formatach binarnych.
UWAGA: Jeśli szukasz loadera startowego, który ładuje tylko jedno jądro, spójrz na młodszego brata Easyboot, Simpleboot.
Ten projekt nie byłby możliwy bez wsparcia Free Software Foundation Hungary. Projekt powstał w ramach konkursu Free Software Miękki 2023 organizowanego przez FSF.hu.
Obsługiwane jądra: 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)
Obsługiwane systemy plików: FAT12/16/32, exFAT, NTFS (v3, v3.1), ext2/3/4, XFS (SGI), UFS (v2, v4.4), mfs (Minix3), BeFS (Haiku), AXFS (OS/Z)
(Gdy jądro znajduje się na partycji rozruchowej, dla roota można użyć dowolnego systemu plików: ZFS, btrfs itp.)
Stworzyłem prosty w użyciu program ładujący, a użytkownicy prosili o coraz więcej funkcji. Chciałem zachować ten moduł ładujący jako tak proste, jak to możliwe, ale FSF.hu zaoferowało wsparcie, więc zdecydowałem się je rozwidlić i dodać wszystkie żądane funkcje w tym menedżerze rozruchu Zamiast.
Jest to również narzędzie bez smaku, takie jak Simpleboot, nie ma żadnych zależności i jest niezwykle łatwe w użyciu:
easyboot (katalog źródłowy) (plik obrazu wyjściowego)
Możesz zainstalować menedżera rozruchu i sprawić, że istniejące urządzenie lub obraz będzie można uruchamiać; lub możesz utworzyć
obraz startowy od nowa. Możesz uruchom ten obraz na maszynie wirtualnej lub możesz zapisać go za pomocą dd
lub
USBImager do pamięci i uruchomić to także na prawdziwej maszynie.
Prostota jest szczytem wyrafinowania!
Wystarczy pobrać plik binarny dla swojego systemu operacyjnego. Są to przenośne pliki wykonywalne, nie wymagają instalacji i nie potrzebują jej biblioteki współdzielone/biblioteki DLL.
Ponadto możesz znaleźć różne rozwiązania w zakresie pakowania w katalogu distrib (dla Debian, Ubuntu, RaspiOS, Gentoo, Arch).
Podczas tworzenia obrazu (w zależności od konfiguracji) możesz także potrzebować kilku wtyczek w swoim (katalog źródłowy)
. Ty
można je znaleźć w katalogu src/plugins z rozszerzeniem plg
. Po zainstalowaniu z pakietu będą to umieszczony w
/usr/share/easyboot
.
Szczegółową dokumentację (w języku angielskim) dotyczącą korzystania z kreatora dysku startowego i uruchamiania jądra można znaleźć w katalogu docs.
Jeśli chcesz napisać jądro, które można załadować bez żadnej wtyczki, używając protokołu uproszczonego Multiboot2 Easyboot, spójrz na Przykładowe jądro Simpleboot. Oba programy ładujące używają tego samego protokołu rozruchowego, jądro współpracuje z Easyboot w niezmienionej postaci. Zobaczysz, że nie jest wymagany żaden montaż ani znaczniki osadzone, w przeciwnym razie kod źródłowy jest w 99,9% taki sam jak przykład w specyfikacji Multiboot2 (jedyna różnica polega na tym, że drukuje na konsoli szeregowej, a nie na ekranie teletype VGA, ponieważ to ten ostatni nie istnieje w UEFI i na maszynach RaspberryPi).
GNU/make potrzebne do orkiestracji (choć dosłownie jest to po prostu cc easyboot.c -o easyboot
). Łańcuch narzędzi nie ma
znaczenia, zrobi to każdy kompilator ANSI C, działa również na POSIX i WIN32 MINGW. Po prostu przejdź do katalogu src i
uruchom make
. To wszystko. Pomimo niewielkich rozmiarów jest samowystarczalny, a kompilacja ma dokładnie zerowe zależności
bibliotek. Nie na darmo nazywa się to Easyboot :-)
Aby ponownie skompilować programy ładujące, będziesz potrzebować flatassembler oraz LLVM Clang i lld
(gcc i GNU ld obawiam się, że nie zadziała). Ale nie martw się, dodałem je wszystkie do src/data.h
jako tablicę bajtów, więc nie
musisz się kompilować te, chyba że naprawdę tego chcesz (w tym celu po prostu usuń data.h przed uruchomieniem make).
Z drugiej strony, aby skompilować wtyczki, będziesz musiał mieć kompilator krzyżowy, albo LLVM CLang, albo GNU gcc (x86_64-elf-gcc,
aarch64-elf-gcc). Repo zawiera je również jako pliki binarne. Aby przeprowadzić rekompilację, po prostu usuń pliki src/plugins/*.plg
przed uruchomieniem make.
Easyboot jest oprogramowaniem bezpłatnym i otwartym, licencjonowanym na warunkach GPL w wersji 3 lub (według Ciebie) dowolnej późniejszej wersji. Aby uzyskać szczegółowe informacje, zobacz plik LICENSE.
bzt