이진 파일 설명자 라이브러리
Binary File Descriptor library원본 작성자 | 시그너스 솔루션 |
---|---|
기록 위치 | C |
유형 | 도서관 |
면허증 | GNU 일반 공중 사용권 |
BFD(Binary File Descriptor Library)는 다양한 형식의 객체 파일을 휴대용으로 조작하는 GNU 프로젝트의 주요 메커니즘이다. 2003년[update] 현재, 약 25개의 명령 집합 아키텍처에 대해 약 50개의 파일 형식을 지원한다.
역사
시그너스 서포트의 데이비드 헨켈 월레이스가 회사의 새로운 사업 기회를 열기 위한 방법으로 도서관을 개발하자고 제안했을 때, 리차드 스톨먼은 그것이 어려울 것이라고 말했다; 데이빗의 반응은 그것이 그렇게 "빅 좆같은 거래"가 아니라는 것이었다. "BFD"로 줄여서, 이것은 도서관 이름이 되었다.[1] "Binary File Descriptor"는 나중에 "BFD"의 백론어로 발명되었다.
디자인
BFD는 객체 파일의 공통적인 추상적 보기를 제시함으로써 작동한다. 개체 파일에는 설명 정보가 포함된 "헤더"가 있으며, 각 파일에는 이름, 일부 속성 및 데이터 블록이 있는 "섹션"의 가변 수, 기호 표, 재배치 항목 등이 있다.
내부적으로 BFD는 추상적인 뷰에서 대상 프로세서와 파일 형식에 필요한 비트/바이트 레이아웃의 세부사항으로 데이터를 변환한다. 리틀엔디안 호스트와 빅엔디안 대상 간의 바이트 순서 차이 처리, 32비트 데이터와 64비트 데이터 간의 정확한 변환, 재배치 항목에서 지정한 주소 산술의 세부 정보 등이 핵심 서비스다.
비록 허풍을 떨다는 원래 일반 도서관 수단을 다양한에서 사용 가능하도록 설계되었다, 잦은 필요성은 API와 새로운 시스템의 능력을 수용할 섣부르게 그것의 사용을 제한하는 것;[2][3][4]대형 거래의 주 고객은 GNU어셈블러(휴대용 레이저 거리 측정기), GNU링커(지상 레이저 지정 부호), 그리고 다른 GNU이진 전력 회사("binutils")도구와 GNU디버그고 있다.ger(지상 유도 폭격). 그 결과 BFD는 별도로 배포되지 않고 항상 바이너릴과 GDB의 방출에 포함된다. 그럼에도 불구하고, BFD는 임베디드 시스템 개발에 GNU 도구를 사용하는 데 있어 중요한 요소다.
BFD 라이브러리를 사용하여 코어 덤프에서 구조화된 데이터를 읽을 수 있다.
참고 항목
- BFD 라이브러리에서 사용되지 않는 이진 형식 설명 언어.
참조
- ^ "Open Sources: Voices from the Open Source Revolution". O'Reilly. January 1999. Retrieved 2011-11-11.
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.)
- ^ Langasek, Steve (2005-05-22). "Re: depending on shared libbfd from binutils-dev". debian-devel (Mailing list). Retrieved 2011-04-03.
- ^ Kuratomi, Toshio (2010-06-04). "binutils once more". Fedora-packaging (Mailing list). Retrieved 2011-04-03.
- ^ Taylor, Ian (2003-09-12). "Re: FreeBSD 4.6 - binutils 2.14 installs useless libbfd". binutils (Mailing list). Retrieved 2011-04-03.