ПРОЧТИМЕНЯ.md 11 KB

Easyboot

Easyboot — универсальный загрузочный менеджер и создатель образа загрузочного диска, который может загружать различные ядра ОС и ядра, совместимые с Multiboot2, в различных двоичных форматах.

Easyboot

ПРИМЕЧАНИЕ: Если вы ищете загрузочный загрузчик, который загружает только одно ядро, обратите внимание на младшего брата Easyboot, Simpleboot.

Подтверждение

Этот проект был бы невозможен без поддержки Фонда свободного программного обеспечения Венгрии. Проект был создан в рамках тендера бесплатного программного обеспечения FSF.hu 2023.

Преимущества перед GRUB

  • независимый, простой в использовании, многоязычный установщик
  • не раздутый, занимает всего около 0,5% от размера GRUB
  • легко настроить, есть проверка синтаксиса
  • легко исправлять таблицы ACPI с помощью предоставленного пользователем DSDT
  • показывает подробности ошибки, если ядро отключается на ранней стадии
  • Multiboot2: чистая 64-битная точка входа (нет необходимости встраивать теги или 32-битный код батута в ядро)
  • Multiboot2: поддержка ядер более высокой половины
  • Multiboot2: независимая от прошивки, согласованная карта памяти на всех платформах
  • Multiboot2: независимый от прошивки, согласованный фреймбуфер на всех платформах
  • Multiboot2: также предоставляется информация EDID монитора
  • Multiboot2: при желании запускает ядро на всех ядрах процессора (поддержка SMP)
  • также существует плагин для имитации загрузки GRUB со всеми ее подводными камнями и ошибками.

Поддерживаемые ядра: 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, не имеющий зависимостей и чрезвычайно простой в использовании:

  1. создайте каталог и поместите в него загрузочные файлы, а также конфигурацию меню и дополнительные плагины
  2. выполните команду easyboot (исходный каталог) (файл выходного изображения)
  3. и... вот и всё... больше делать нечего! Образ Просто работает (TM), ваши ядра загрузятся!

Вы можете установить менеджер загрузки и сделать существующее устройство или образ загрузочным; или вы можете создать загрузочный образ заново. Ты можешь загрузите этот образ на виртуальной машине или вы можете записать его с помощью 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