La biblioteca de descriptores de archivos binarios ( BFD ) es el mecanismo principal del Proyecto GNU para la manipulación portátil de archivos de objetos en una variedad de formatos . A partir de 2003 [actualizar], admite aproximadamente 50 formatos de archivo para unas 25 arquitecturas de conjuntos de instrucciones .
Autor (es) original (es) | Soluciones Cygnus |
---|---|
Escrito en | C |
Tipo | Biblioteca |
Licencia | Licencia pública general GNU |
Historia
Cuando David Henkel-Wallace de Cygnus Support propuso desarrollar la biblioteca como una forma de abrir nuevas oportunidades comerciales para la empresa, Richard Stallman dijo que sería difícil; La respuesta de David fue que no era un "gran negocio". Abreviado como "BFD", se convirtió en el nombre de la biblioteca. [1] "Binary File Descriptor" se inventó más tarde como un backronym para "BFD".
Diseño
BFD funciona presentando una vista abstracta común de archivos objeto. Un archivo de objeto tiene un "encabezado" con información descriptiva; un número variable de "secciones", cada una de las cuales tiene un nombre, algunos atributos y un bloque de datos; una tabla de símbolos ; entradas de reubicación ; Etcétera.
Internamente, BFD traduce los datos de la vista abstracta en los detalles del diseño de bit / byte requerido por el procesador de destino y el formato de archivo. Sus servicios clave incluyen el manejo de diferencias en el orden de bytes , como entre un host little-endian y un objetivo big-endian , conversión correcta entre datos de 32 bits y 64 bits , y detalles de la aritmética de direcciones especificada por entradas de reubicación.
Aunque BFD fue diseñado originalmente para ser una biblioteca genérica utilizable por una amplia variedad de herramientas, la necesidad frecuente de jugar con la API para acomodar las capacidades de los nuevos sistemas ha tendido a limitar su uso; [2] [3] [4] Los principales clientes de BFD son GNU Assembler (GAS), GNU Linker (GLD) y otras herramientas GNU Binary Utilities ("binutils") y GNU Debugger (GDB). Como resultado, BFD no se distribuye por separado, sino que siempre se incluye con las versiones de binutils y GDB. Sin embargo, BFD es un componente crítico en el uso de herramientas GNU para el desarrollo de sistemas embebidos .
La biblioteca BFD se puede utilizar para leer los datos estructurados de un volcado de memoria .
Ver también
- Lenguaje de descripción de formato binario , no utilizado por la biblioteca BFD.
Referencias
- ^ "Fuentes abiertas: voces de la revolución del código abierto" . O'Reilly. Enero de 1999 . Consultado el 11 de noviembre de 2011 .
Gumby comenzó a diseñar la biblioteca y a discutir el diseño con Stallman.
Stallman dijo que el trabajo era demasiado difícil: requeriría una reescritura completa de todas las herramientas y sería demasiado difícil de mantener.
Gumby le dijo que no era un "gran jodido trato" y, por lo tanto, llamó a esta nueva creación la biblioteca BFD.
(Explicamos a nuestros clientes que BFD significaba la biblioteca de descriptores de archivos binarios).
- ^ Langasek, Steve (22 de mayo de 2005). "Re: dependiendo de libbfd compartido de binutils-dev" . debian-devel (lista de correo) . Consultado el 3 de abril de 2011 .
- ^ Kuratomi, Toshio (4 de junio de 2010). "binutils una vez más" . Empaquetado de Fedora (lista de correo) . Consultado el 3 de abril de 2011 .
- ^ Taylor, Ian (12 de septiembre de 2003). "Re: FreeBSD 4.6 - binutils 2.14 instala libbfd inútil" . binutils (lista de correo) . Consultado el 3 de abril de 2011 .