WikiDer > Библиотека дескрипторов двоичных файлов
Тема этой статьи может не соответствовать Википедии рекомендации по продуктам и услугам. (Июль 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Оригинальный автор (ы) | Cygnus Solutions |
---|---|
Написано в | C |
Тип | Библиотека |
Лицензия | Стандартная общественная лицензия GNU |
В Библиотека дескрипторов двоичных файлов (BFD) это Проект GNUглавный механизм портативный манипулирование объектные файлы в различных форматы. По состоянию на 2003 год[Обновить], он поддерживает примерно 50 форматов файлов для примерно 25 архитектуры наборов команд.
История
Когда Дэвид Хенкель-Уоллес из Cygnus Поддержка предложила развивать библиотеку как способ открыть новые возможности для бизнеса компании, Ричард Столмен сказал, что будет сложно; Дэвид ответил, что это была не такая уж "чертова сделка". Сокращенно «BFD», это стало названием библиотеки.[1] «Дескриптор двоичного файла» был изобретен позже как backronym для «БФД».
Дизайн
BFD работает, представляя общий абстрактный вид объектных файлов. У объектного файла есть «заголовок» с описательной информацией; переменное количество «разделов», каждый из которых имеет имя, некоторые атрибуты и блок данных; а таблица символов; переезд записи; и так далее.
На внутреннем уровне BFD переводит данные из абстрактного представления в детали разметки бит / байтов, требуемых целью. процессор и формат файла. Его ключевые услуги включают обработку порядок байтов различия, например, между прямой порядок байтов хозяин и прямой порядок байтов цель, правильное преобразование между 32-битный и 64-битный данные и детали адрес арифметика, определяемая записями перемещения.
Хотя BFD изначально разрабатывался как универсальная библиотека, которую можно использовать с помощью самых разных инструментов, частая необходимость возиться с API, чтобы приспособить возможности новых систем, как правило, ограничивает его использование;[2][3][4] Основными клиентами БФД являются Ассемблер GNU (ГАЗ), Линкер GNU (GLD) и другие Двоичные утилиты GNU ("binutils") инструменты, а Отладчик GNU (GDB). В результате BFD не распространяется отдельно, а всегда включен в выпуски binutils и GDB. Тем не менее, BFD является критическим компонентом использования инструментов GNU для встроенные системы разработка.
Библиотеку BFD можно использовать для чтения структурированных данных из дамп ядра.
Смотрите также
- Язык описания двоичного формата, не используется библиотекой BFD.
Рекомендации
- ^ «Открытые источники: голоса революции открытого исходного кода». О'Рейли. Январь 1999. Получено 2011-11-11.
Гамби начал разрабатывать библиотеку и обсуждать дизайн со Столлманом. Столлман сказал, что работа была слишком сложной - потребовалось бы полностью переписать все инструменты и было бы слишком сложно поддерживать ее. Гамби сказал ему, что это не была такая уж «чертова большая сделка», и поэтому назвал это новое творение библиотекой BFD. (Мы объяснили нашим клиентам, что BFD означает библиотеку дескрипторов двоичных файлов.)
- ^ Лангасек, Стив (22 мая 2005 г.). "Re: в зависимости от общей библиотеки libbfd из binutils-dev". debian-devel (Список рассылки). Получено 2011-04-03.
- ^ Куратоми, Тошио (04.06.2010). "binutils еще раз". Fedora-упаковка (Список рассылки). Получено 2011-04-03.
- ^ Тейлор, Ян (12 сентября 2003 г.). "Re: FreeBSD 4.6 - binutils 2.14 устанавливает бесполезную libbfd". binutils (Список рассылки). Получено 2011-04-03.