Vai al contenuto

GNU Binutils

Da Wikipedia, l'enciclopedia libera.
GNU Binutils
software
Logo
Logo
Genere
Sviluppatoreprogetto GNU
Ultima versione2.46 (8 febbraio 2026)
Sistema operativo
LicenzaGNU General Public License v3.0 or later, BSD 3-clausole e GNU GPL v2+
(licenza libera)
Sito webwww.gnu.org/software/binutils/

GNU Binary Utilities[1][2], meglio note come GNU Binutils,[3] è una collezione di programmi per la creazione e la gestione di file binari, oggetto, librerie, dati del profilo e codice sorgente dell'assembly.

Il pacchetto binutils comprende programmi come ld e può essere utilizzato in combinazione con compilatori quali GCC. Il suo codice sorgente è distribuito insieme al GNU Debugger sotto licenza GNU General Public License ed è disponibile per numerosi sistemi operativi Unix-like, incluso Linux.[4]

La maggior parte del software utilizza la libreria Binary File Descriptor e alcuni programmi fanno uso della libreria opcodes. Esistono porte per diversi sistemi, tra cui la maggior parte delle varianti UNIX, Windows, Mac OS X e (parzialmente) OS/2.[5]

Sono stati originariamente scritti dai programmatori di Cygnus Solutions.

Le binutils GNU sono in genere usate insieme a compilatori come GNU Compiler Collection (gcc), strumenti di costruzione come make e GNU Debugger (gdb).

Attraverso l'uso della libreria di descrittori di file binari (libbfd), la maggior parte degli strumenti supporta i vari formati di file oggetto supportati da libbfd.

H.J. Lu mantiene una versione di binutils con funzionalità puramente per Linux.[6]

Le binutils includono i seguenti comandi:[7][8][9]

asLinguaggio assembly, popolarmente noto come GAS (Gnu ASsembler)
ldLinking[10]
gprofAnalisi delle prestazioni del software[11]
addr2lineconverti l'indirizzo in file e riga
arcreare, modificare ed estrarre dagli archivi
c++filtNome filtro di differenziazione,[12] per simboli in linguaggio C++
dlltoolCrea file per la creazione e l'utilizzo di DLL
goldLinking alternativa
nlmconvconversione del file oggetto in a NetWare Loadable Module
nmelenca i simboli nei file oggetto
objcopycopiare i file oggetto, eventualmente apportando modifiche[13]
objdumpscaricare informazioni sui file oggetto
ranlibgenerare indici per gli archivi
readelfvisualizza il contenuto di ELF file
sizeelenca le dimensioni totali e di sezione
stringselenca le stringhe stampabili
striprimuove i simboli da un file oggetto
windmcgenerates Windows message resources
windrescompilatore per Windows resource files

Ulrich Drepper ha scritto elfutils, in sostituzione di GNU Binutils, esclusivamente per Linux e con supporto solo per ELF e DWARF.[14]

  1. (EN) GNU Binary Utilities, su sourceware.org.
  2. (EN) The GNU Binary Utilities (PDF), su eecs.umich.edu, aprile 2010.
  3. (EN) Clifton, GNU Binutils 2.33.1 released, su lists.gnu.org, 12 ottobre 2019. URL consultato il 29 decembre 2019.
  4. (EN) Index of /pub/linux/devel/binutils/, su The Linux Kernel Archives.
  5. (EN) Paul's ports: GNU Binutils, su os2ports.smedley.info. URL consultato il 29 decembre 2019.
  6. (EN) README-release.binutils-2.24.51.0.3, su kernel.org. URL consultato il 29 dicembre 2019.
  7. (EN) GNU Binary Utilities, su Free Software Directory, 16 ottobre 2019. URL consultato il 29 decembre 2019.
  8. (EN) GNU Binutils, su sourceware.org, 12 ottobre 2019. URL consultato il 29 decembre 2019.
  9. (EN) GNU Binutils, su Progetto GNU, 12 ottobre 2019. URL consultato il 29 decembre 2019.
  10. Per quanto alcuni testi e autori in lingua italiana abbiano scelto di tradurre il termine, quest'ultimo è di uso molto infrequente.
  11. (EN) Weylin MacCalla e Sameer Kulkarni, Utilizing GPUs to Accelerate TurbomachineryCFD Codes (PDF), su NASA, gennaio 2016, p. 7. URL consultato il 29 decembre 2019.
    «The GNU Profiling tool is part of the GNU compiler package which is freely available under the GNU General Public License. It was used to take the initial profile of the code, and was able to provide subroutine-level results about the most time consuming parts of the code. The information from the GNU Profiler was used to narrow down the search for the sections of code to be offloaded to the GPU.»
  12. (EN) Name mangling (C++ only), su IBM Knowledge Center. URL consultato il 29 decembre 2019.
  13. (EN) Terrence Sun, 12 Linux GNU Binary Utilities Binutils Commands with Examples (as, ld, ar, nm, objcopy, objdump, size, strings, strip, c++flint, addr2line, readelf Command Examples), su The Geek Stuff, 10 gennaio 2017. URL consultato il 29 decembre 2019.
    «objcopy can copy the content of one object file to another object file, and input/output object can in different format. There are times when you need to port an object file available for one kind of platform (like ARM or x86) to another kind of platform.»
  14. (EN) The elfutils project, su sourceware.org. URL consultato il 29 decembre 2019.

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica