GNU Tools La distribuzione GNU è un package software che include tutta una serie di tools. Strumenti per la creazione, lo sviluppo ed la correzione del codice: compilatori, debugger. Programmi per la creazione di immagini e di testi o per il display di dati. La sue caratteristiche più importanti sono: il supporto per qualsiasi piattaforma, essere completamente gratuito! Debugging del codice Ogni piattaforma ha un suo debugger proprietario (xdb su HP, dbx su OSF, Sun ), ma su tutte è possibile installare quello GNU: gdb Esistono poi delle interfaccia grafiche (ddd, dde) che rendono più comodo l’utilizzo del debugger. La possibilità di utilizzare un debugger è subordinata all’utilizzo delle opportune opzioni di compilazione (in genere -g). Va notato che tali opzioni vanno utilizzate quando necessario, poiché sono incompatibili con altre molto più importanti, come quelle di ottimizzazione. Una semplice sessione di debug >cc -g myprog.c -o myprog >./myprog 00 1 -1 Floating exception >gdb myprog GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.14 (i486-slackware-linux), Copyright 1995 Free Software Foundation, Inc... (gdb) list 1 #include <stdio.h> 2 3 main(){ 4 int i,j; 5 6 for (i=0;i<5;i++){ 7 j=i/(i-2); 8 printf("%d %d \n",i,j); 9 } 10 } Una semplice sessione di debug (gdb) break 5 Breakpoint 1 at 0x80004a6: file myprog.c, line 5. (gdb) break 7 Breakpoint 2 at 0x80004c0: file myprog.c, line 7. (gdb) run Starting program: /home/volpe/CNTC/myprog Breakpoint 1, main () at myprog.c:6 6 for (i=0;i<5;i++){ (gdb) step 7 j=i/(i-2); (gdb) 8 printf("%d %d \n",i,j); (gdb) 00 ....... 1 -1 ....... Program received signal SIGFPE, Arithmetic exception. 0x80004cf in main () at myprog.c:7 7 j=i/(i-2); (gdb)quit CVS è basato su RCS Gestione del codice Nello sviluppo e nel mantenimento del software, sono utili i tools per il controllo delle versioni. Essi consentono di tenere traccia delle modifiche attraverso una successione di releases e di risolvere i conflitti che sorgono quando più sviluppatori sono coinvolti in un progetto. RCS è uno dei più semplici. CVS (Concurrent Versions System) è probabilmente il più diffuso. RCS e CVS si trovano nel sito GNU http://www.gnu.org/ CVS • CVS mantiene il codice in una gerarchia di directory detta “source repository” • Sviluppando nell’ambiente CVS, una modifica diviene permanente se ne viene fatto un “commit”. • Se più sviluppatori editano lo stesso codice, CVS esegue un merge delle modifiche, segnalando eventuali conflitti prima di accettare il commit.. •Dei tag consentono di recuperare la versione relativa a qualsiasi data specificata. •CVS produce un file di patch per aggiornare precedenti distribuzioni alla release più recente. Formati grafici X11 Bitmap (ASCII) XPM (binario) PPM/PBM/PGM (binario/ASCII) gif (binario,compresso) jpeg (binario,compresso) tiff (binario, non/compresso) Postscript (ASCII) pdf (Portable Document Format) Il PostScript Il PostScript rappresenta un formato di output standard sia per applicazioni grafiche che per word processor. Il browser di file postscript supportato su tutte le piattaforme è ghostscript che ha una interfaccia molto rudimentale. Esistono perciò interfacce più comode per ghostscript: ghostview e gv. Pstops, psmerge, psselect, psbook, ps2pdf Manipolare il PostScript Purtroppo non è possibile modificare un file postscript direttamente. Esiste tuttavia l’utility pstoedit che trasforma il postscript in formati grafici modificabili da altre applicazioni (xfig, tgif, FrameMaker). http://ftp.x.org/contrib/applications/pstoedit/ Altre utilities convertono file postscript in formati diversi: ps2ascii, pstogif, ps2pdf Le psutils modificano la disposizione delle pagine di un documento postscript : psbook, psnup, psselect, psmerge,pstops http://www.tardis.ed.ac.uk/home/ajcd/psutils Convertitori Esistono convertitori tra i diversi formati di file testo (LaTeX, ascii, html, Word). latex2html http://www.rzg.mpg.de/rzg/software/latex2html html2ascii http://pageplus.com/~hsf/sources/html2ascii/ MSWordView converte binari Word in html. www.csn.ul.ie/~caolan/docs/MSWordView.html La conversione tra diversi formati grafici in genere si fa con XV o con altri programmi per la creazione e modifica delle immagini che hanno già al loro interno la possibilità di importare ed esportare i vari formati. Tools Grafici: XV • Browser • non ha un suo formato di file • ha dei Filtri grafici • esporta nei seguenti formati: • XPM,XBM; gif,tiff, postscript ,jpeg, PPM7PGM/PBM http://www.ccs.uky.edu/XV ftp.cs.columbia.edu Tools Grafici: tgif • Ha un formato proprio: .obj • Importada vari formati grafici (Incluso EPS) • Utilizza i convertitori standard • Genera in output direttamente PostScript, HTML, GIF, ASCII, EPS, EPSI http://bourbon.cs.umd.edu:8001/tgif/ Tools grafici: XPaint • Non ha un suo formato • Molto utile per la creazione/modfica di bitmap (icone) • Importa/esporta gif, jpeg, XPM, XBM, PPM/PBM/PGM, Postscript Tools grafici: Gimp GNU Image Manipulation Program: È uno dei tool più nuovi e versatili per la composizione ed il ritocco di immagini… attenzione utilizza pesantemente le risorse di X! /www.XCF.Berkeley.EDU/~gimp/gimp.html Riferimenti Per tutti i tools distribuiti da GNU, il sito di riferimento è : http://www.gnu.org sia per i manuali (/doc) che per la distribuzione di package (/software). Molti manuali possono essere trovati in: http://www.cslab.vt.edu/manuals