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.

GNU Binutils
software
Logo
Logo
Genere
Sviluppatoreprogetto GNU
Ultima versione2.43.1 (17 agosto 2024)
Sistema operativo
LicenzaGNU GPL v3+, BSD 3-clausole e GNU GPL v2+
(licenza libera)
Sito webwww.gnu.org/software/binutils/

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]

Strumenti

modifica

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]

Comandi

modifica

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

as Linguaggio assembly, popolarmente noto come GAS (Gnu ASsembler)
ld Linking[10]
gprof Analisi delle prestazioni del software[11]
addr2line converti l'indirizzo in file e riga
ar creare, modificare ed estrarre dagli archivi
c++filt Nome filtro di differenziazione,[12] per simboli in linguaggio C++
dlltool Crea file per la creazione e l'utilizzo di DLL
gold Linking alternativa
nlmconv conversione del file oggetto in a NetWare Loadable Module
nm elenca i simboli nei file oggetto
objcopy copiare i file oggetto, eventualmente apportando modifiche[13]
objdump scaricare informazioni sui file oggetto
ranlib generare indici per gli archivi
readelf visualizza il contenuto di ELF file
size elenca le dimensioni totali e di sezione
strings elenca le stringhe stampabili
strip rimuove i simboli da un file oggetto
windmc generates Windows message resources
windres compilatore per Windows resource files

elfutils

modifica

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

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica