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バイトに切り詰められ、『ファイルの末尾にぶら下がる』洗練されてない大きなペイロードセクションが末尾に存在し、 ペイロードを連結して追加するためのスペースを提供します。