Binär filbeskrivningsbibliotek

Binär filbeskrivningsbibliotek
Originalförfattare Cygnus Solutions
Förvar
Skrivet i C
Typ Bibliotek
Licens GNU General Public License

Binary File Descriptor library ( BFD ) är GNU-projektets huvudmekanism för portabel manipulering av objektfiler i en mängd olika format . Från och med 2003 stöder den cirka 50 filformat för cirka 25 instruktionsuppsättningsarkitekturer .

Historia

När David Henkel-Wallace från Cygnus Support föreslog att biblioteket skulle utvecklas som ett sätt att öppna upp nya affärsmöjligheter för företaget, sa Richard Stallman att det skulle bli svårt; Davids svar var att det inte var en sådan "Big Fucking Deal". Förkortat till "BFD" blev detta biblioteksnamnet. "Binary File Descriptor" uppfanns senare som en bakronym för "BFD".

Design

BFD fungerar genom att presentera en gemensam abstrakt syn på objektfiler. En objektfil har en "header" med beskrivande information; ett variabelt antal "sektioner" som var och en har ett namn, några attribut och ett datablock; en symboltabell ; omlokaliseringsposter ; och så vidare.

Internt översätter BFD data från den abstrakta vyn till detaljerna i den bit/byte-layout som krävs av målprocessorn och filformatet. Dess nyckeltjänster inkluderar hantering av byteordningsskillnader , såsom mellan en little-endian- värd och big-endian- mål, korrekt konvertering mellan 32-bitars och 64-bitars data och detaljer om adressaritmetik som specificeras av omlokaliseringsposter.

Även om BFD ursprungligen designades för att vara ett generiskt bibliotek som kan användas av en mängd olika verktyg, har det frekventa behovet av att mixtra med API:et för att tillgodose nya systems kapacitet tenderat att begränsa dess användning; BFD:s huvudklienter är GNU Assembler (GAS), GNU Linker (GLD) och andra GNU Binary Utilities ("binutils") verktyg och GNU Debugger (GDB). Som ett resultat av detta distribueras BFD inte separat, utan ingår alltid i releaser av binutils och GDB. Ändå är BFD en kritisk komponent i användningen av GNU-verktyg för utveckling av inbyggda system .

BFD-biblioteket kan användas för att läsa strukturerad data från en kärndump .

Se även

externa länkar