コンテンツにスキップ

m1n1 開発者ガイド

2025/3/9時点のm1n1-Developer-Guideの翻訳


(まだ書いていません、ちょっと少し投げ入れただけ)

ブートプロトコル

m1n1イメージに使用されるブートプロトコルは、XNUブートプロトコルの簡単なサブセットです。生のバイナリはどこにでもロードできます (16Kアラインのオフセットで)。RVBARはオフセット0にあります(iBootがそのレジスタをロックしているため、スリープモードからの 復帰にのみ関係します)。ペイロードはメインバイナリに単純に連結され一緒にロードされます。エントリポイントは0x800で、 トランスレーションは無効、XNU boot_args 構造体の物理アドレスはr0に存在します。

レガシーな Mach-O イメージもあります。これらは現在、古いバージョンの iBoot2 と run_guest.py でのみ必要です (TODO: これを修正)。これらは基本的に Mach-O のヘッダと .bss セクションを切り詰めたもので、ファイルはもうフラットには ロードされません。0バイトに切り詰められ、『ファイルの末尾にぶら下がる』洗練されてない大きなペイロードセクションが末尾に存在し、 ペイロードを連結して追加するためのスペースを提供します。