a.out - テキストセグメントが共有されていない場合、データセグメントとテキストセグメントが連続しています。なぜですか?

a.out - テキストセグメントが共有されていない場合、データセグメントとテキストセグメントが連続しています。なぜですか?

私は古代a.out形式のマニュアルページ(場所:ここ)、Unix実行可能ファイル形式の進歩を理解しようとしています。一つ知りたいです。マニュアルページには、マジックナンバーがOMAGICの場合、テキストセグメントは他のプロセスと共有されず、書き込み禁止ではありません。ただし、マジックナンバーがNMAGICまたはZMAGICの場合、テキストセグメントは書き込み禁止であり、同じプログラムを実行している他のプロセスと共有されます。この場合、データセグメントは次の1024バイトブロックの先頭から始まります。なぜですか?共有テキストセグメントに1024バイトの境界で始まるデータセグメントが必要なのはなぜですか?私はこれがa.out形式に限定されず、一般的に適用可能であると思います。

ベストアンサー1

これは、ページ境界にデータセグメントを配置するために行われます(自動的にテキストセグメントとは異なるページに配置するように強制されます)。この手がかりにより、John Levineのようなより多くの情報を見つけることができます。リンカーとローダー

おすすめ記事