跳至內容

二進制文件描述庫

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Binary File Descriptor library
原作者Cygnus Solutions
源代碼庫 編輯維基數據鏈接
編程語言C語言
類型
許可協議GNU通用公共許可證

BFD庫二進制文件描述庫)是GNU項目用於解決不同格式的目標文件的可移植性的主要機制。到2003年為止,它支持25種不同CPU體系結構上的大約50種文件格式

歷史

最初,當Cygnus Solutions公司David Henkel-Wallace提議開發這樣一個庫來為公司創造新的商業機遇時,Richard Stallman說這會是一件困難的事情;而David的回覆是" it wasn't such a 'Big F*cking Deal'(沒什麼大不了的)"。這句話的英文縮寫BFD便成為了這個庫的名稱[1],而「Binary File Descriptor(二進制文件描述)」則是在BFD縮寫的基礎上發明的。

設計

BFD通過對目標文件提供公共抽象視圖來達成工作。一個目標文件有帶有描述信息的一個「頭」;可變數目的「段」,每個段都有一個名字、一些屬性和一塊數據;一個符號表;一組重定位入口項;諸如此類。

在內部,BFD將數據從抽象視圖轉換到目標處理器和文件格式所要求的位/字節布局的細節。它的關鍵服務包括處理字節序差異,比如在小端序主機和大端序目標之間,在32-bit64-bit數據之間的正確轉換,和重定位入口項所指定的尋址算術的細節。

儘管BFD最初設計成為可以被各種工具使用的通用庫,頻繁需要修補API來容納新系統的功能,傾向於限制了它的使用[2][3][4];BFD的主要使用者是GNU匯編器(GAS),GNU連接器(GLD),和其他GNU二進制實用程序("binutils")工具,和GNU調試器(GDB)。因此,BFD不單獨發行,總是包括在binutils和GDB發行之中。不論如何,BFD是將GNU工具用於嵌入式系統開發的關鍵部件。

BFD庫可以用來讀取核心轉儲的結構化數據。

參考文獻

  1. ^ Open Sources: Voices from the Open Source Revolution. O'Reilly. January 1999 [2011-11-11]. (原始內容存檔於2014-08-27). Gumby began designing the library and discussing the design with Stallman. Stallman said that the job was too difficult—it would require a complete rewrite of all the tools, and it would be too difficult to maintain. Gumby told him it wasn't such a "Big F*cking Deal" and hence named this new creation the BFD library.(We explained to our customers that BFD stood for the binary file descriptor library.) 頁面存檔備份,存於網際網路檔案館
  2. ^ Langasek, Steve. Re: depending on shared libbfd from binutils-dev. debian-devel (郵件列表). 2005-05-22 [2011-04-03]. (原始內容存檔於2012-03-19) (英語). 
  3. ^ Kuratomi, Toshio. binutils once more. Fedora-packaging (郵件列表). 2010-06-04 [2011-04-03]. (原始內容存檔於2012-03-22) (英語). 
  4. ^ Taylor, Ian. Re: FreeBSD 4.6 - binutils 2.14 installs useless libbfd. binutils (郵件列表). 2003-09-12 [2011-04-03]. (原始內容存檔於2011-12-25) (英語). 

外部連結

參見