概要
UEFI Bindings for JavaScript は、UEFI環境でJavaScriptを実行できる仕組み。 Promethee がboot volumeから script.js を読み込み、ブートローダとして動作。 UEFIサービスをJavaScriptから呼び出し可能。 QEMU でのビルド・実行手順が用意されている。 Node.jsと Duktape ツールを利用した最小構成のビルド環境。
UEFI Bindings for JavaScriptとは
- UEFIファームウェア上 で JavaScript を実行する仕組み
- Promethee が script.js を読み込み、JavaScriptブートローダとして起動
- UEFIサービス(例えば GraphicsOutput プロトコル)をJavaScriptから呼び出し可能
- UEFIサービス連携 による高度なブート処理の実現
動作概要
- Promethee がブート時に \script.js をUEFI FATボリュームから読み込み
- script.js がエントリーポイントとして実行
- UEFIの各種サービスへJavaScriptからアクセス可能
- 例:画面描画、デバイス検出など
クイックスタート手順
- 依存関係取得:
./get-depsの実行 - ビルド&QEMU実行:
make runコマンド - script.js をUEFI FATボリュームの \script.js に自動コピー
サンプルコード例
- script.js 内でGraphicsOutputプロトコルを利用
var gop = efi.SystemTable.BootServices.LocateProtocol(efi.guid.GraphicsOutput);if (gop) { var red = { r: 255, g: 0, b: 0 }; gop.Blt(red, 'EfiBltVideoFill', 0, 0, 50, 50, 200, 120, 0); }
- 画面領域塗りつぶし の実装例
注意事項
- Duktape ツールはソース生成に Node.js を利用
- ビルドは freestanding (最小限のlibcスタブのみ提供)
- 独自のブートローダやOS開発に適した環境
- 技術的な興味を持つ開発者向けのプロジェクト