リードミー.md 9.2 KB

Easyboot

Easyboot は、オールインワンのブート マネージャー およびブート可能なディスク イメージ作成ツールです。 さまざまな OS カーネルと、さまざまなバイナリ形式の Multiboot2 準拠カーネル。

Easyboot

注: 単一のカーネルのみをロードするブート ローダー を探している場合は、 Easyboot の弟分である、Simpleboot

謝辞

このプロジェクトは、Free Software Foundation Hungary の支援なしでは不可能でした。 このプロジェクトは、FSF.hu の フリーソフトウェア入札 2023 のアプライアンスで作成されました。

GRUB に対する利点

  • 依存関係がなく、使いやすい、多言語インストーラー
  • 肥大化していません。GRUB のサイズのわずか約 0.5% です
  • 構成が簡単、構文チェッカー付き
  • ユーザー提供の DSDT を使用して ACPI テーブルに簡単にパッチを適用します
  • カーネルが初期段階で停止した場合にエラーの詳細を表示します
  • 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)

(カーネルがブート パーティションにある場合は、ZFS、btrfs などの任意のファイル システムをルートに使用できます。)

理論的根拠

私は使いやすいブートローダーを作成しましたが、ユーザーはますます多くの機能を求めていました。 ブート ローダーをできるだけシンプルに保ちたかったのですが、FSF.hu がサポートを提供してくれたので、代わりにそれをフォークして、要求されたすべての機能をこのブート マネージャーに追加することにしました。

これも Simpleboot と同様の 使いやすい ツールであり、依存関係がなく、非常に使いやすいです。

  1. ディレクトリを作成し、その中にブート ファイル、特にメニュー構成やオプションのプラグインを置きます。
  2. easyboot (ソースディレクトリ) (出力イメージファイル)コマンドを実行します。
  3. そして...それだけです...他にやるべきことは何もありません! イメージ Just Works (TM) は、カーネルを起動します。

ブート マネージャーをインストールして、既存のデバイスまたはイメージをブート可能にすることができます。 または、ブート可能イメージを新たに作成することもできます。 あなたはできるそのイメージを VM でブートするか、 dd または USBImager を使用してストレージに書き込んでブート することもできますそれは実機でもです。

シンプルこそ究極の洗練!

設置

OS のバイナリをダウンロードするだけです。 これらはポータブルな実行可能ファイルであり、インストールや共有ライブラリ/DLL も必要ありません。

さらに、distrib ディレクトリでさまざまなパッケージング ソリューションを見つけることができます (用 Debian、Ubuntu、RaspiOS、Gentoo、Arch)。

イメージを作成するときは、(構成に応じて) (ソース ディレクトリ) にいくつかのプラグインも必要になる場合があります。 これらは、拡張子 plg を使用して src/plugins ディレクトリにあります。 パッケージからインストールすると、これらは /usr/share/easyboot の下に配置されます。

文書化

ブータブル ディスク クリエーターの使用方法とカーネルの起動方法に関する詳細な ドキュメント (英語) は、docs ディレクトリにあります。

カーネルの例

Easyboot簡素化された Multiboot2 プロトコルを使用して、プラグインなしでロードできるカーネルを作成したい場合は、 Simpleboot カーネルの例 ディレクトリ。どちらのローダーも同じブート プロトコルを使用しており、カーネルは Easyboot でそのまま動作します。 アセンブリも埋め込みタグも必要ないことがわかります。それ以外の場合、 ソース コードは Multiboot2 仕様の例と 99.9% 同じです (唯一の違いは、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 に追加されているので、本当にコンパイルしたくない限り、これらをコンパイルする必要はあ りません(そのためには、make を実行する前に data.h を削除してください)。

一方、プラグインをコンパイルするには、LLVM CLang または GNU gcc (x86_64-elf-gcc、aarch64-elf-gcc)。 リポジトリには、これらもバイナリとして含まれています。 再コンパイルを行うには、make を実行する前に src/plugins/*.plg ファイルを削除するだけです。

ライセンス

Easyboot は無料のオープンソース ソフトウェアであり、GPL バージョン 3 または (ご意見によると) それ以降のバージョンの条件に基づいてライセンスされています。 詳細については、LICENSE ファイルを参照してください。

bzt