GNU Binutils

GNU Binutilsまたはbinutilsは、さまざまなオブジェクトフォーマットを含むオブジェクトファイルを扱うためのプログラミングツールである。わかりやすくいうと、GNUが提供しているツールのうち、バイナリのプログラミングを実装するためのツールであり、そのためクロスアセンブラとして活用できる。現在のバージョンは、シグナスソリューションズ（レッドハットに買収された）によってBFDライブラリを使用して書かれた。binutilsの典型的な使われ方は、GCC、make、GDBなどの補助である。

コマンド 
binutilsは以下のコマンドを含む:
addr2line - プログラム内のアドレスをファイル名と行番号に変換する
ar - アーカイブの作成、変更、および展開
as - GNUアセンブラ
c++filt - C++シンボルのデマングルを行う
dwp - DWARF パッケージングユーティリティ
elfedit - ELFファイルのヘッダとプログラムプロパティの編集
gold - ELFファイル用代替リンカ
gprof - C、Pascal、Fortran77プログラムの実行プロファイルを取得
gprofng - Gprof Next Generation; パフォーマンスデータを収集・分析するためのGPROFNGツール群のドライバ
gp-archive - 収集データのアーカイブ
gp-collect-app - ターゲット・アプリケーションのパフォーマンス・データを収集
gp-display-html - プロファイルを参照するためのHTMLベースのディレクトリ構造を生成
gp-display-src - ターゲット・オブジェクトのディスアセンブルとともにソース・コードを表示
gp-display-text - パフォーマンスデータをプレーンテキストで表示
ld - リンカ
nm - オブジェクトファイルに含まれるシンボル(クラス、関数など)を表示する
objcopy - オブジェクトファイルをコピーする、オブジェクトフォーマットの変換を行う
objdump - オブジェクトファイルのダンプ情報を表示する
ranlib - アーカイブのインデックスを作成する
readelf - ELFファイルの中身を表示する
size - セクションの大きさとその合計をリストする
strings - ファイルに含まれる印刷可能な文字の並びを表示
strip - オブジェクトファイル中のシンボルを除去

元々binutilsのパッケージは少数のユーティリティから構成されていたが、後に関連性の高さからリンカとアセンブラ（2.5以降）も含まれるようになった。

BFDとlibopcodes
個々のbinutilsコマンドは単純な機能しかもたない。これらを組み合わせカプセル化したものとして、BFD (Binary File Descriptor) やlibopcodesライブラリがある。

最初のBFDバージョンは、David Henkel-WallaceとSteve Chamberlainによって書かれた。過去には、Ken RaeburnとIan Lance Taylorがメンテナンスを行っていた。2005年以降はNick Cliftonがメンテナンスしている。

参考文献など

外部リンク 
 GNU Binutils（公式サイト）
 Documentation for binutils

ソフトウェア開発ツール
UNIXのソフトウェア
GNUプロジェクト
オープンソースソフトウェア