誰でもELFファイルからプロセスがどのように作成されたかを詳しく説明しているリンクや書籍を教えてください。自由に入手できる資料のほとんどは、プログラムヘッダーからどのような情報を取得するか、その情報を使用してプロセスイメージがどのようにメモリに格納されているかなど、ほとんどの詳細を抽象的に説明しているようです。 おかげプロセスはどのようにしてELFファイルから作成されますか?
答えて
ELFファイルは、メモリへの負荷として、 すべてのセグメントが一緒に同じcharcteristicsを共有セクションの束を説明し、次のように動作し、各セクションは、読み取り、書き込みとしての権限を持っているか、実行し、どのような基本的に起こることということです各セグメントにはヘッダに仮想アドレスが含まれているヘッダー(phdr)があります。このセグメントはメモリにロードする必要があり、ELF内の実際のバイナリデータへのオフセットです。これはセクションごとに同じですが、各セクションにはいくつかの仮想アドレスがあります読み込み、ファイル内のバイナリデータへのサイズオフセット、また、現在のオペレーティングシステムがファイルイメージからプロセスを作成するために実行するthagメモリ(書き込み/読み取り/実行)のパーミッションが読み込まれ、すべてのセクションを解析し、ロードフラグが存在する場合はメモリに格納し、そのメモリセクション適切なアクセス許可。バイナリデータの例は機械命令である。 .text
セクションには、通常、バイナリ命令(コード)が含まれます。セクションのもう1つの良い例は、プロセスのグローバル変数を含み、読み込み書き込み権限のみを持つ.dataです。一般的なelfヘッダーには、エントリポイントと呼ばれるものも含まれます。 - 実行する最初の命令の仮想アドレス
elfファイルははるかに複雑ですが、一般的にはこれが含まれているため、リンカやダイナミックリンカなどに便利なデータがあります。再配置テーブルやシンボルテーブルとしては基本的にこれはelfファイルを読み込むときに起こることですが、ここでこのテーマについてもっと知るには良いリンクがあります:http://flint.cs.yale.edu/cs422/doc/ELF_Format.pdf
また、Linuxベースのシステムを使用している場合は、 g周りにreadelf
とobjdump
と個人的にそれは多くを学ぶのを手助けしました
- 1. ELFファイルでは、_startのアドレスはどのように決定されますか?
- 2. GUIは最初からどのように作成されていますか?
- 3. ウェブホスティングサービスはどのように作成されていますか?
- 4. どのようにelfファイルが正しいメモリアドレスをロードして正常に実行されましたか?
- 5. .oファイルを.elfファイルにするにはどうしたらいいですか?
- 6. ELF実行ファイルを作成するにはどうすればよいですか?
- 7. 新しいプロセスを作成するユニットテストコードはどのようにして作成しますか?
- 8. ELFクラスが間違っています:OpenSpliceDDSはどのようにして正常にインストールされますか?
- 9. プロセス全体のシングルトンオブジェクトはどのように作成しますか?
- 10. リマインダーアプリのUIはどのように作成されますか?
- 11. ストーリーボードのXmlはどのように作成されますか?
- 12. このviewModelはどのように作成されますか?
- 13. バックアップ中のファイルがプロセス中に更新された場合、rsyncはどのように動作しますか?
- 14. RingoJSでデーモンプロセスはどのように作成されますか?
- 15. ミニヒープはどのように作成されますか?
- 16. セッションはどのようにJSPで作成されますか?
- 17. Android jniLibsフォルダはどのように作成されますか?
- 18. Linuxでmutexはどのように作成されますか?
- 19. NSBlockオブジェクトはどのように作成されますか?
- 20. デリゲートオブジェクトはC#でどのように作成されますか?
- 21. オブジェクトはどのように作成されますか?
- 22. SQLiteOpenHelper - データベースはどのように作成されますか?
- 23. JSモジュールはどのように作成されますか?
- 24. Pythonどのようにしてtxtファイルから派生したリストからクラスを作成できますか?
- 25. どのようにMSDOS .comファイルを作成しますか?
- 26. 貨物は空のELFファイルを作成します
- 27. GNUリンカに32ビットELF実行ファイルを生成させよう
- 28. nodejsでゾンビ/機能停止プロセスをどのように作成しますか?
- 29. 文字列に格納された日付からプログラムをどのようにして作成しますか?
- 30. JIRAからどのようなレポートが作成されましたか?
これは、elfファイルからのプロセスの作成にいくつかの重要なブロック(ステップ)を共有すると非常に役に立ちます。 – charanchakravarhy