바이너리 파일 디스크립터 라이브러리

바이너리 파일 디스크립터 라이브러리(Binary File Descriptor library, BFD)는 다양한 포맷에서 목적 파일의 이식성 있는 조작을 위한 GNU 프로젝트의 주요한 메커니즘이다. 2003년 부로 이것은 25개의 프로세서 구조를 위한 거의 50개의 파일 포맷을 지원한다.

설계 
BFD는 목적 파일의 일반적이고 추상적인 관점을 표현함으로써 동작한다. 목적 파일은 정보를 서술하는 "header", 각각 이름과 속성 그리고 데이터 블록을 갖는 다양한 개수의 "section", 심볼 테이블, 재배치 엔트리 등을 갖는다.

내부적으로 BFD는 데이터를 추상적인 관점으로부터 대상 프로세서와 파일 포맷에서 요구되는 비트/바이트 레이아웃으로 변환한다. 이것의 주요 기능으로 바이트 순서를 다루는 것과 32비트와 64비트 사이의 변환 그리고 재배치 엔트리에 의해 명시된 주소 계산이 있다.

비록 BFD가 근본적으로 다양한 도구들에서 사용할 수 있는 일반적인 라이브러리로 설계되었지만, 새로운 시스템의 기능을 제공하기 위해 자주 API와 함께 임시변통으로 사용되는 것은 이것의 사용을 제한시켜 왔던 경향이 있다; BFD의 주요 고객으로 GNU 어셈블러 (GAS), GNU 링커 (GLD), 그리고 다른 GNU 바이너리 유틸리티 ("binutils") 도구들, 그리고 GNU 디버거 (GDB)가 있다. 결과적으로 BFD는 독립적으로 배포되지 않으며 항상 GDB와 binutils의 배포판에 포함되어 왔다. 그럼에도 불구하고 BFD는 임베디드 시스템 개발을 위한 GNU 도구들의 사용에 핵심적인 구성 요소이다.

BFD 라이브러리는 코어 덤프에서 구조화된 데이터를 읽는데 사용될 수 있다.

각주

외부 링크 
 Binutils page, with access to current BFD sources

C 라이브러리
실행 파일 포맷
GNU 프로젝트 소프트웨어
자유 라이브러리