GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • メインページ
  • コミュニティ・ポータル
  • 最近の出来事
  • 新しいページ
  • 最近の更新
  • おまかせ表示
  • 練習用ページ
  • アップロード (ウィキメディア・コモンズ)
  • 特別ページ
  • ヘルプ
  • 利用案内
  • 井戸端
  • お知らせ
  • バグの報告

This view

  • Original page
  • New address

GeezerVison is showing ja.wikipedia.org — Executable and Linkable Format - Wikipedia

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "Executable and Linkable Format" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL
(2023年4月)
ELF
拡張子 なし、.o、.so、.elf、
.app、.bin、.ko
マジック
ナンバー
0x7f ELF
開発者 UNIX Systems Laboratories
種別 バイナリ、実行可能、オブジェクト、共有ライブラリ、コアダンプ

Executable and Linkable Format (ELF) は、プログラムの実行ファイルおよびオブジェクトファイルを保存するためのバイナリファイル形式である。Unix系オペレーティングシステムの標準的な実行形式としてSystem Vにより導入され、従来のa.outフォーマットやCOFFに代わる形式として広く採用された。

現在は LinuxやBSD系OS、ならびに組み込みシステムの開発環境などで、プログラムやライブラリの生成・配布・読み込みに利用されている。内部を用途別の領域に分割して管理する構造を持ち、動的リンクや再配置、非連続なメモリ配置に対応できる柔軟性を備える点を特徴とする。

ヘッダ

ELFには以下の3種類のヘッダがある。

ELFファイルの構造
ELFヘッダ
ファイルの先頭に存在し、ELF識別子、アーキテクチャ情報および、他の2つのヘッダへの情報を持つ。
プログラムヘッダ
ファイル上のどの部分(セグメント)がどのような属性で何処に読み込まれるかを保持するヘッダであり、ファイルローダによって扱われる。実行時にELFヘッダに続いてディスクから何らかの形で読み込まれるセグメントの数だけ存在する。直接読み込まれるわけではないオブジェクトファイルには存在しないことがある。
セクションヘッダ
オブジェクトファイルの論理的な構造を記述する部分である。一般にはリンカやデバッガ等、バイナリの実行以外の目的でELFファイルにアクセスするツールが使用する。バイナリの実行時には必ずしも必要でない情報が多いため、ヘッダと名前がついているが実際にはファイルの最後あたりに置かれていることが多い。
各セクションには通常セクション名がある。セクション名の文字列はELFヘッダにて指定された文字列専用セクションにヌル終端文字列として置かれ、その専用セクションの先頭からのオフセット[1]をもって文字列を指定する。このことによって、エントリそのものは固定長にしつつセクション名の長さ制限を取り払っている。指定するオフセットは文字列専用セクションにある文字列の途中を指すことも可能で、サフィックスが重複する文字列をまとめて記述することができる。

共有ライブラリ

共有ライブラリにも対応しており、しかるべき属性のセグメント内にある、Procedure Location Tableや、Global Offset Tableを利用して、間接的に参照することになる。

デバッグ情報ファイル

デバッグ情報のフォーマットは定義されていないが、ELF(妖精)をもじったDebug With Arbitrary Record Format略してDWARF(小人)と呼ばれる形式のフォーマットがよく使われる。

注

  1. ↑ 正確には、文字列専用セクションの先頭から、各文字列のサイズをカウントしたときのオフセットである。文字列専用セクションにて2バイト以上のアラインメントが指定されている場合、文字列同士の間にパディングが入るため単純に文字列専用セクション先頭にオフセットを加えただけでは対象文字列の先頭にならないことがある。

関連項目

  • 実行ファイル形式
  • 位置独立コード

外部リンク

  • elf(5) – JM Project Linux File Formats マニュアル
  • Debian trixieのman(日本語版)
実行可能ファイル
ファイル形式
  • a.out
  • COFF
  • COM
  • ECOFF
  • ELF
  • Hunk
  • Mach-O
  • MZ
  • NE
  • LE、LX
  • OMF
  • PE (exe)
  • PEF
  • XCOFF
構成部分とプログラム
  • 機械語
  • セグメント
  • シンボルテーブル
  • オブジェクトファイル
  • リンカ
  • ローダ
「https://ja.wikipedia.org/w/index.php?title=Executable_and_Linkable_Format&oldid=110333006」から取得
カテゴリ:
  • オブジェクトファイルフォーマット
  • UNIX
隠しカテゴリ:
  • 出典を必要とする記事/2023年4月
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.