BFDライブラリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

BFDライブラリ(ビーエフディーライブラリ、Binary File Descriptor Library)は、GNUプロジェクトにおいて、各種のオブジェクトファイルを取り扱う主要なメカニズムである。2003年時点で、約50のファイルフォーマットと約25のプロセッサ・アーキテクチャをサポートしている。

BFDライブラリは、オブジェクトファイルに共通の抽象的なビューを与えることにより動作する。オブジェクトファイルは、それぞれが名前・属性・データブロックを持つ複数の「セクション」、シンボルテーブルリロケータブルバイナリのエントリ、を記述する「ヘッダ」を持つ。

内部的にBFDライブラリは、データを抽象的な形式から対象のプロセッサやファイルフォーマットが要求するビット/バイトレイアウトの形式に変換する。その主要なサービスはバイトオーダーの違いを取り扱うことである。例えば、リトルエンディアンのホストでのビッグエンディアンのターゲットの扱い、32ビット64ビットの間の正しいデータ変換、再配置エントリによって決定されるアドレス演算の手順のようなものである。

BFDライブラリは当初、多種多様なツールから利用できる一般的なライブラリとして設計されていたが、GPLでのライセンシング、新しいシステムの特性に対応するためのAPIの頻繁な調整により、利用は抑えられる傾向にあった。BFDライブラリの主要な利用者は、GNUアセンブラ(GAS)、GNUリンカ(GLD)、他のGNU binutilsのツール、GNUデバッガ(GDB)である。結果として、BFDライブラリは直接的には配布されなくても、binutilsとGDBのリリースに常に含まれている。一方で、BFDライブラリは組み込みシステム開発のためのGNUツールの重要な構成要素である。

BFDライブラリは、コアダンプで出力された構造体データを読むためにも利用される。

歴史[編集]

シグナスサポートデビット・ヘンケル・ウォレスが、会社に新しいビジネスチャンスを開く方法として、このライブラリの開発を提案したとき、リチャード・ストールマンは(正確に)これは困難であると言った。デビットの反応は"BFD" (big fucking deal)であった。これがライブラリの名前となり[1]、後に"Binary File Descriptor"がBFDのバクロニムとして考案された。

参照[編集]

  1. ^ Binary File Descriptor Library manual — History”. GNU Project (2007年8月). 2008年4月8日閲覧。 “The name came from a conversation David Wallace was having with Richard Stallman about the library: RMS said that it would be quite hard—David said "BFD". Stallman was right, but the name stuck.”

外部リンク[編集]