日本語

ニュース

Zig言語のみで記述したx86最小カーネルが公開、アセンブリゼロでVGA出力

このプロジェクトは、Apple Silicon Macを含む任意のホストOSからクロスコンパイルでき、QEMUで即座にテストできる設計です。ZigはLLVMバックエンドとリンカを同梱しているため、x86-freestanding-noneターゲットへのクロスコンパイルがそのまま動作します。

GRUB ISOのビルドには、grub-pc-binがx86 LinuxパッケージであるためDockerが必要です。一方、カーネル本体のビルドとQEMUでの起動は、zig buildコマンドや実行スクリプトで簡単に完了します。

技術的な詳細として、MultibootヘッダはZigのextern structとしてリンカセクションにエクスポートされています。VGA出力には、Zigのvolatileポインタセマンティクスを使ってメモリマップドI/Oに直接アクセスします。BIOS呼び出しやドライバは不要です。

さらに、ハードウェア割り込みによって破損する可能性のあるSystem V ABIのレッドゾーンは無効化されています。SSE/AVXも無効化されており、FPU状態の保存や復元の手間を省いています。


出典: Minimal x86 Kernel Zig(HN 155pt・66コメント)(HN Search (backfill)、2026-02-18)