Easyboot — универсальный загрузочный менеджер и создатель образа загрузочного диска, который может загружать различные ядра ОС и ядра, совместимые с Multiboot2, в различных двоичных форматах.
ПРИМЕЧАНИЕ: Если вы ищете загрузочный загрузчик, который загружает только одно ядро, обратите внимание на младшего брата Easyboot, Simpleboot.
Этот проект был бы невозможен без поддержки Фонда свободного программного обеспечения Венгрии. Проект был создан в рамках тендера бесплатного программного обеспечения FSF.hu 2023.
Поддерживаемые ядра: 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)
Поддерживаемые файловые системы: FAT12/16/32, exFAT, NTFS (v3, v3.1), ext2/3/4, XFS (SGI), UFS (v2, v4.4), mfs (Minix3), BeFS (Haiku), AXFS (OS/Z)
(Когда ядро расположено в загрузочном разделе, то в качестве root можно использовать любую файловую систему: ZFS, btrfs и т. д.)
Я создал простой в использовании загрузчик, и пользователи просили все больше и больше функций. Я хотел сохранить этот загрузчик как максимально простой, но FSF.hu предлагал поддержку, поэтому я решил его форкнуть и добавить все запрошенные функции в этот менеджер загрузки вместо.
Это также инструмент безсосный, такой как Simpleboot, не имеющий зависимостей и чрезвычайно простой в использовании:
easyboot (исходный каталог) (файл выходного изображения)
Вы можете установить менеджер загрузки и сделать существующее устройство или образ загрузочным; или вы можете создать загрузочный
образ заново. Ты можешь загрузите этот образ на виртуальной машине или вы можете записать его с помощью dd
или
USBImager в хранилище и загрузиться это и на реальной машине тоже.
Простота есть основа утонченности!
Просто скачайте бинарный файл для вашей ОС. Это переносимые исполняемые файлы, они не требуют установки и не требуют каких-либо дополнительных действий общие библиотеки/DLL.
Кроме того, в каталоге distrib вы можете найти различные упаковочные решения (для Debian, Ubuntu, RaspiOS, Gentoo, Arch).
При создании образа (в зависимости от вашей конфигурации) вам также могут понадобиться некоторые плагины в вашем (исходный каталог)
.
Ты их можно найти в каталоге src/plugins, используя расширение plg
. При установке из пакета они будут помещен в
/usr/share/easyboot
.
Подробную документацию (на английском языке) о том, как использовать средство создания загрузочного диска и как загружается ядро, можно найти в каталоге docs.
Если вы хотите написать ядро, которое можно будет загрузить без какого-либо плагина, используя протокол упрощенный Multiboot2 Easyboot, взгляните на Пример ядра Simpleboot. Оба загрузчика используют один и тот же протокол загрузки, это ядро работает с Easyboot как есть. Вы увидите, что ни сборка, ни встроенные теги не требуются, в противном случае исходный код на 99,9% такой же, как пример в спецификации Multiboot2 (единственная разница в том, что он печатает на последовательной консоли, а не на экране телетайпа VGA, потому что это последний не существует на машинах UEFI и RaspberryPi).
GNU/make необходим для оркестровки (хотя буквально это просто cc easyboot.c -o easyboot
). Инструментарий не имеет значения,
подойдет любой компилятор ANSI C, он также работает с POSIX и WIN32 MINGW. Просто перейдите в каталог src и запустите make.
Вот и все. Несмотря на небольшой размер, он автономен, и при компиляции он не имеет никаких зависимостей от библиотек. Он не зря
называется Easyboot :-)
Чтобы перекомпилировать загрузчики, вам понадобится flatassembler, а также LLVM Clang и lld (боюсь, gcc и GNU ld не будут работать). Но не волнуйтесь, я добавил их все в src/data.h в виде массива байтов, поэтому вам не придется их компилировать, если вы действительно этого не хотите (для этого просто удалите data.h). прежде чем запускать make).
С другой стороны, для компиляции плагинов вам понадобится кросс-компилятор LLVM CLang или GNU gcc (x86_64-elf-gcc, aarch64-elf-gcc).
Репо также включает их в виде двоичных файлов. Чтобы выполнить перекомпиляцию, просто удалите файлы src/plugins/*.plg
перед
запуском make.
Easyboot — это бесплатное программное обеспечение с открытым исходным кодом, лицензируемое на условиях GPL версии 3 или (по вашему мнению) любой более поздней версии. Подробности см. в файле LICENSE.
bzt