|
|
|
Indice |
|
Le risorse di Calcolo dell'ISMAR a Bologna sono costitite da un insieme di server e workstations in rete INTERNET (dominio ismar.bo.cnr.it 192.167.168.x, reti interne con NAT 192.168.[1..9]). Il collegamento fisico a INTERNET e' tramite switch ETHERNET ad alte prestazioni (100-1000 MBPS, circa 200 porte) e routers WI-FI 8 MBPS, che si collegano in fifra ottica ai routers dell'area della Ricerca di Bologna attestati su collegamenti GARR e MAN Bologna ed Emilia-Romagna a 100-1000 MBPS. Il C.Calcolo di ISMAR ospita anche il POP di backup della rete GARR di Bologna.
L'Istituto e il mondo esterno accedono all'ambiente di elaborazione ISMAR tramite rete TCP/IP, con i protocolli SSH, FTP, HTTP e HTTPS.
I sistemi operativi e le configurazioni piu' utilizzate sono:
GNU-LINUX (GENTOO,
UBUNTU), SUN
SOLARIS , WINDOWS SERVER, OPENVMS
7.2, (servers)
GNU-LINUX (UBUNTU), MS
WINDOWS E MAC OS (personal
computers e acquisizione dati)
La comunita' ISMAR e' servita da server GNU-LINUX biprocessore e quadriprocessore, per elaborazione generale, file-sharing (samba), database, con i piu' diffusi pacchetti e compilatori e DBMS. Un sistema SUN a 8 processori e' usato per l'elaborazione dei dati di sismica e multibeam con pacchetti licenziati (DISCO/Focus e Neptune). Un server WINDOWS fornisce servizi in ambiente GIS con software licenziato (ESRI).
Nel centro di Calcolo sono anche residenti in due server GNU-Linux
il DNS principale del dominio (dbjdns),
i servizi e-mail (qmail,
vmailmgr),
webmail (squirrelmail),
www (Apache2,
Plone), ftp (vsftpd)
di ISMAR. Servizi interni alla sede di Bologna in ambienti www e ftp
gestiscono anche collegamenti con stazioni remoti e navi
oceanografiche.
L'ambiente di elaborazione di base che viene
garantito a livello di server LINUS e SOLARIS e' basato in gran parte
su prodotti che vengono distribuiti gratuitamente o con licenza GPL
all'interno delle comunita' di programmatori che aderiscono a FREE
SOFTWARE FOUNDATION.
Cio' con ampia garanzia di livello di prestazioni e
professionalita', a scapito unicamente di differenze negli ambienti
visuali, quando necessari, essendo buona parte di questi prodotti
forniti dalla stessa comunita' accademica che, ad esempio, ha creato
X-WINDOW, INTERNET, il WEB.
Grazie quindi al contributo di
e la comunita' di Linux, per l'alta qualita' e disponibilita' del sistema operativo |
||
per l'alta qualita' dei compilatori e delle utilita' principali |
||
per il WEB e FTP server |
||
per le applicazioni desktop |
||
per il motore SQL |
e, anche, personalmente, a
|
|
e anche ai creatori di python,
oltre a tcl/tk e java
(dalla comunita' SUN), e che ne possono rappresentare valida
alternative o anche il possibile superamento qualitativo.
Applicazioni specialistiche, come ad esempio la elaborazione
sismica o cartografica, o analisi spaziale e batimetrica, vengono
risolte con pacchetti acquistati con licenza d'uso e manutenzione.
Fra questi DISCO/FOCUS e
CARAIBES.
A livello piu' generale di utilizzo, esiste la disponibilita'
e desideriamo ringraziare
Inoltre, una discreta quantita' di software e' stato
sviluppato all'IGM, specialmente nel campo cartografico e
topografico. Fra questi i programmi ICE, DATUM, DIGMAP, SEISPHRO,
DAPHNE, SEGYCHANGE, ....
La shell e' il programma che attende i comandi da parte
dell'utente e cerca di eseguirli. In genere i comandi vengono
impartiti tramite la tastiera e vengono visualizzati nella cosiddetta
riga di comando. Gli errori di battitura possono essere corretti piu'
o meno facilmente. In altri casi i comandi possono essere registrati
in un file, detto script, per essere poi eseguiti in blocco. Pertanto
una shell UNIX costituisce anche un vero e proprio linguaggio di
programmazione a livello di sistema, cosa che puo' rivelarsi molto
utile quando un complesso di azioni deve essere effettuato in modo
ripetitivo un gran numero di volte.
Alcune shell consentono di
correggere in modo piu' sofisticato gli errori di battitura nei
comandi, di rieseguire comandi gia' impartiti in precedenza, di
completare rapidamente nomi di file e di comandi invece di digitarli
per intero, almeno quando non vi sono ambiguita'.
Sul nostro
sistema sono disponibili le seguenti shell:
Bourne shell (sh): e' la tradizionale shell di UNIX, tutt'altro che amichevole nell'uso quotidiano, ma molto utile nella stesura di script, soprattutto per l'amministrazione.
Bourne again shell (bash): unisce alla versatilita' della sh, di cui e' un'evoluzione, una maggiore maneggevolezza della riga di comando; in particolare, consente di scorrere l'elenco dei comandi digitati in precedenza, di completare i nomi di file e di comandi, di correggere facilmente i comandi impartiti in modo errato.
C shell (csh): utilizza una sintassi molto simile a quella del linguaggio C. Non e' molto amichevole, ma anch'essa, come la sh, consente di scrivere programmi molto sofisticati.
TC shell (tcsh): evoluzione della C shell, con la quale e' compatibile, in direzione di una maggiore praticita' della riga di comando. Si puo' dire che sta alla csh come la bash sta alla sh. E' la shell assegnata agli utenti del nostro sistema in mancanza di diverse esplicite richieste. Si caratterizza soprattutto per sofisticati meccanismi di 'command-completion' (con il carattere TAB)
DCL (dcl): e' la shell dell'ambiente OPENVMS, completamente programmabile.
Linguaggi di programmazione (compilatori e interpreti)
Sono disponibili diversi compilatori e interpreti. Negli ambienti LINUX e SOLARIS sono disponibili compilatori C (gcc) e C++ (g++) ANSI, Fortran 77 (f77). Negli ambienti OPENVMS sono disponibili i compilatori C (cc), C++ (c++) ANSI, Fortran 77 e 90 .
Perl
5.10 (perl) e' un linguaggio
particolarmente adatto alla manipolazione sofisticata di stringhe.
Puo' rivelarsi un ottimo sostituto delle varie shell, spesso troppo
macchinose. Dispone di una quantita' enorme di funzioni,
documentate nel manuale di sistema alla voce perl,
con rimandi a numerose altre pagine.
JDK
1.6 (javac, java...) e' il sistema di
sviluppo di applicazioni in Java, composto di vari eseguibili e
numerose librerie, sia di tipo statico, sia di tipo dinamico.
Editori di testo
La battitura di testi, siano essi
sorgenti di programmi, script di shell o articoli scientifici, e'
senz'altro l'attivita' in cui l'utente passa buona parte del suo
tempo al terminale, vuoi a caratteri o visuale (X). La scelta
dell'editore di testo piu' adatto alle proprie esigenze e' quindi
importante.
E' buona norma, almeno per l'utenza UNIX,
impratichirsi di vi, come per l'utenza OPENVMS, di edt, che sono gli
editor di sistema sempre presenti e che permettono di operare ed
eseguire programmi in qualunque installazione UNIX o VMS, essendo
essi dovunque disponibili in quanto parte della distribuzione del
sistema operativo.
Ecco di seguito alcuni editors.
VIM (vim): e' la
versione potenziata di VI, un editore molto famoso per UNIX. E'
presente nelle installazioni LINUX. E' ostico nell'uso, specie se
saltuario, in quanto ogni singolo tasto viene usato come comando, e
non per il simbolo che rappresenta. Cosi', per inserire testo,
bisogna prima premere "i" e poi
cominciare a scrivere il testo. Alla fine si batte ESC.
Nonostante
questo, o forse proprio per questo, e' molto valido proprio nella
scrittura di programmi. E' molto veloce, richiede poche risorse al
sistema e, se usato abitualmente, rivela una sorprendente potenza.
Consente di lanciare Make sul file in edizione e di spostarsi
facilmente lungo le righe in cui sono stati trovati gli eventuali
errori. Permette il taglia-e-incolla visuale, anche di porzioni
rettangolari di testo.
La documentazione si ottiene in linea
digitando ":help".
EMACS:
e' un editore famosissimo, in grado di fare le cose piu' disparate.
Con gli anni e' diventato piu' che un editore una vera e propria
centrale operativa, dalla quale si puo' lanciare Make, Ispell, TeX
e un gran numero di altri programmi, senza abbandonare il testo
elaborato.
Il prezzo da pagare per tutto questo sono
innanzitutto le dimensioni ormai mastodontiche del programma,
nonche' la necessita' di battere combinazioni di parecchi tasti per
ottenere anche la cosa piu' semplice. Tuttavia, grazie ai menu'
disponibili sotto X, molte delle azioni piu' comuni sono a portata
di mouse.
La documentazione e' leggibile da Emacs stesso,
attraverso il menu' "Help". Esistono pero' anche file in
formato PS molto completi, ma si parla di centinaia di pagine.
Della famiglia emacs sono disponibili anche XJED
e JED, rispettivamente in ambiente X e terminale, che
richiedono meno risorse al sistema, fornendo al contempo servizi
essenziali di editing, sicuramente piu' facili ad ottenersi che con
VI.
TextEdit (textedit): e' l'editor di sistema sotto OpenWindows nell'ambiente SUN, ma e' poco piu' che un visualizzatore di file di testo. La mancanza di strumenti sofisticati di ricerca e sostituzione, di bilanciamento parentesi e di auto-indentatura sono fra i motivi che lo rendono sconsigliabile per la stesura di lunghi testi, specialmente programmi in C e lavori in TeX/LaTeX.
Xedit (xedit): editor piuttosto scadente, poco piu' che un'alternativa a TextEdit. Tuttavia, esso viene fornito in ogni installazione UNIX con interfaccia X. Puo' quindi valere lo stesso discorso fatto piu' sopra per VI. Saperlo usare puo' risolvere situazioni.
Nei moderni ambienti desktop Linux sono disponibili potenti editor nedit, gedit, kedit, kate etc.
Composizione di testi scientifici
I risultati di un lavoro di ricerca
scientifica non possono essere, in genere, presentati con i comuni
programmi di videoscrittura, piu' indicati per il settore
commerciale e aziendale.
Per la matematica il sistema di
videoscrittura piu' famoso e' senz'altro il TeX di Donald Knuth, con
tutti i suoi dialetti. Il nostro sistema dispone di una
implementazione dovuta a Thomas Esser, nota come teTeX. Essa
comprende i seguenti programmi e pacchetti:
TeX compiler 3.14159 (tex): e' l'eseguibile piu' importante, richiamato da latex e pdflatek un file di testo con estensione tex, scritto secondo la sintassi definita da Knuth, e produce un file DeVice Independent con estensione dvi. Questo file puo' essere visualizzato direttamente con il programma Xdvi, oppure convertito nei formati riconosciuti da vari tipi di stampanti laser.
LaTeX2e (latex): Leslie Lamport ha realizzato un pacchetto di macro scritte in TeX diventato molto famoso. Queste macro sono in genere piu' pratiche da usare rispetto alla sintassi TeX originale. Il prezzo da pagare e' il maggior tempo di compilazione e una minore flessibilita'. Si puo' dire che il LaTeX sta al TeX come il FORTRAN sta al linguaggio macchina, anche se il paragone e' forse un po' eccessivo.
Il comando latex elabora un
file di testo con estensione *.tex, ma
scritto secondo la sintassi LaTeX.
Openoffice
Visualizzazione di file di vari formati
Visualizzare testo e immagini in modo
avanzato richiede in genere di memorizzare la grafica in un file
secondo un certo formato. Ci sono molti tipi diversi di formati
grafici, ognuno dei quali richiede un opportuno programma per essere
visualizzato e stampato. Chi fosse interessato a conoscerli piu' in
dettaglio puo' consultare il sito wotsit.
Ecco quelli piu' diffusi, insieme ad alcuni dei programmi
disponibili sul nostro sistema per visualizzarli:
PostScript:
e' un formato grafico molto noto, marchio commerciale ADOBE,
adottato da molti produttori di stampanti laser e a getto
d'inchiostro. I file in formato PostScript hanno in genere
l'estensione ".ps o .eps" e si
dicono file PS.
Sono disponibili i seguenti programmi in grado
di visualizzare file in questo formato:
GhostScript
(gs): e' in realta' molto piu' di un
visualizzatore di file PS, in quanto e' in grado di convertire i
file PS in molti tipi di formati grafici. Questo lo rende utile
per creare filtri per stampanti non PS.
Il suo uso interattivo
deve avvenire in ambiente grafico, ma non e' molto agevole. Per
scorrere un file PS conviene usare invece Image Tool (o pageview)
oppure Ghost View.
Ghost View
(ghostview, gw): e' un'interfaccia
amichevole per Ghost Script. Consente facilmente di navigare fra
le directory e scegliere il file da visualizzare. E' anche
possibile scegliere di stampare alcune pagine soltanto, usando il
mouse.
Usiamo pero' oramai tutti il nuovo GV (gv)
ha una bella rappresentazione grafica e visualizza anche i files
.pdf. Nell'ambiente LINUX e' disponibile
il programma okular (KDE) e eog (GNOME)
Image Tool (imagetool): e' il visualizzatore grafico di OpenWindows e CDE nell'ambiente SUN Solaris, ed e' in grado di gestire molti tipi di immagini e grafica, oltre al PS. E' possibile utilizzare anche pageview (pageview).
DVI: e' il formato di file prodotto dal TeX. Puo' essere visualizzato dal programma Xdvi (xdvi), okular, .
Disegno ed elaborazione grafica dei dati
Spesso e' necessario presentare in forma grafica dei dati, qualunque sia la loro origine. In altri casi occorre generare dei disegni illustrativi. Sono disponibili strumenti adatti a queste e ad altre situazioni.
Gnuplot 3.5 (gnuplot): e' un programma di generazione di grafici 2D e 3D, ma senza eliminazione delle linee nascoste delle superfici. Traccia i grafici di molte funzioni di 1 e 2 variabili, ma consente anche di ricavare le coordinate dei punti da file di dati indicati dall'utente. I grafici possono essere cartesiani, polari e parametrici. Si possono definire una gran quantita' di caratteristiche del disegno, e il risultato puo' essere salvato in moltissimi formati, fra cui PS, EPS, Latex picture, Latex ps-tricks, MetaFont, Portable Bit Map (pbm) e altri ancora.
Xfig (xfig): consente di disegnare come su carta millimetrata usando il mouse per tracciare linee, cerchi, poligoni regolari e altre forme. Le forme chiuse possono essere riempite con un colore e un motivo, e le linee possono avere diverso colore, spessore e tratteggio. Si possono importare ed esportare figure in formato PS, EPS, Latex, GIF, JPEG e altri. I vari oggetti possono essere legati fra loro e poi spostati, ruotati, ribaltati etc..
XV
3.10a (xv): visualizza, elabora e
salva immagini e disegni in una gran quantita' di formati.
GIMP
e' un potente editor grafico raster, che importa ed esporta nei
formati grafici piu' comuni.
La posta elettronica e' da molti anni
un mezzo potente di comunicazione all'interno della comunita'
scientifica internazionale, e non solo. Nata per trasmettere quasi
esclusivamente sequenze di caratteri dell'alfabeto inglese e alcuni
simboli di controllo (come il ritorno-carrello o il salto-pagina),
si e' poi evoluta in modo da consentire la trasmissione di file
binari, cioe' di sequenze di byte che devono arrivare cosi' come
sono, senza alcuna alterazione.
Il nostro Centro di Calcolo
offre sia i normali strumenti per la gestione della posta
elettronica, sia quegli strumenti, sempre piu' indispensabili, utili
per spedire e ricevere file binari. A livello di server, sono
disponibili i programmi UNIX e VMS mail. In ambiente UNIX e'
disponibile anche pine,
che e' basato su una interfaccia a caratteri, quindi utilizzabile
anche in ambiente non a finestre, e permette operazioni di
'attachment' di files.
Sono disponibili servizi di pop3 e imap,
utilizzabili da clienti Unix, Windows, Mac.
Mail (mail): e' uno dei piu' semplici gestori di posta elettronica, ma dispone delle piu' importanti funzionalita', comuni a tutti i gestori seguenti, e che pertanto elenchiamo, almeno in parte, esplicitamente:
spedisce e riceve messaggi;
puo' rispondere a un messaggio senza dover indicare il destinatario (reply);
puo' rispedire ad altri indirizzi un messaggio ricevuto (forward);
consente di archiviare i messaggi in modo personalizzabile;
puo' gestire degli alias, cioe' nomi associati a indirizzi, evitando cosi' di dover sempre scrivere per esteso gli indirizzi, che a volte sono assurdamente complicati;
puo' gestire liste di indirizzi, consentendo cosi' di inviare uno stesso messaggio a un gruppo di persone che partecipano ad uno stesso progetto o attivita';
consente di scrivere un messaggio utilizzando l'editore preferito dell'utente;
e' ampiamente personalizzabile.
Mail Tool (mailtool): e' il gestore di posta elettronica di OpenWindows e CDE nelle SUN con Solaris. Funziona solo in modalita' grafica, con un massiccio uso del mouse. E' piuttosto versatile, ed e' molto facile da usare. Gestisce gli allegati in modo semplicissimo: basta trascinare le icone dei file da allegare dentro un'apposita finestrella in caso di invio, oppure trascinarle fuori, in caso di ricezione.
Netscape: anche Netscape puo' gestire la posta elettronica, e anche in modo piuttosto sofisticato. In particolare, e' molto semplice la gestione degli allegati.
UUdeview/Xdeview 0.5 (uudeview,
xdeview): non e' un gestore di posta elettronica, ma un
programma in grado di leggere un messaggio, stabilire se contiene
file binari codificati, e in caso estrarli uno per uno, proponendo
all'utente i nomi originali per eventuali cambiamenti. Non richiede
alcun intervento sul messaggio, a parte, ovviamente, la sua
estrazione dalla casella di posta elettronica.
Xdeview e' solo
l'interfaccia grafica per UUdeview. Sembra facile da usare, ma
all'inizio non e' molto chiaro il suo funzionamento.
In teoria,
gli utenti di Pine, Mail Tool e Netscape non dovrebbero avere
alcuna ragione di usare UUdeview. A volte, tuttavia, un file
binario contenuto in un messaggio viene codificato due volte
(tipicamente per errore), e quindi non basta estrarlo come allegato
al messaggio. In questi casi e' necessaria una ulteriore decodifica
esplicita, che si puo' effettuare facilmente con UUdeview.
Navigazione Internet
Attualmente il miglior modo per navigare in Iternet lo otteniamo con l'utilizzo del browser Firefox, oltre a Opera e Konqueror (su cui si basa Safari in MAC OSX).
Archiviazione e compressione di file
Archiviare dei file puo' servire in molti casi, specialmente quando un insieme di dati viene usato raramente e quindi occupa spazio inutilmente. Vista la mole di dati che puo' essere messa in gioco, l'archiviazione e' quasi sempre preceduta dalla compressione.
Sono molti i programmi e i pacchetti per l'archiviazione, e alcuni di questi consentono lo scambio di dati fra piattaforme hardware e software differenti.
Tar (tar): si limita ad organizzare una serie di file, o di intere directory e sottodirectory, in un unico file, che in genere ha l'estensione ".tar". Il Tar era usato inizialmente per la registrazione su nastro (deriva infatti da Tape ARchiver). Viene pero' usato molto spesso, in armonia con la filosofia UNIX di suddividere i problemi in problemi piu' piccoli, per creare un file da comprimere successivamente e conservare. La fase di compressione puo' essere effettuata con qualunque compressore. In LINUX (tar) e Solaris (gtar) e' disponibile la opzione z che comprime e decomprime automaticamente.
Compress/Uncompress 4.0 (compress, uncompress): e' il metodo di compressione/decompressione standard per UNIX. Comprime un file secondo l'algoritmo Lempel-Ziv, sostituendolo con un file con lo stesso nome, ma con l'aggiunta dell'estensione ".Z". E' sempre meno usato, a causa della concorrenza di altri sistemi, come Gzip e Zip/Unzip.
Gzip 1.2.4 (gzip,
gunzip): e' la versione GNU dell'algoritmo Lempel-Ziv. Il suo
uso si e' diffuso, a scapito di Compress, al punto che la stessa
Sun lo utilizza per distribuire i suoi pacchetti. In effetti e' uno
dei compressori piu' efficienti.
I file compressi con Gzip
hanno in genere l'estensione ".gz",
ma poiche' viene spesso usato in abbinamento a Tar, e' molto
frequente anche l'estensione ".tgz",
abbreviazione della doppia estensione ".tar.gz".
Zip 2.0.1/Unzip 5.12 (zip,
unzip): e' la versione UNIX del popolare sistema di
compressione PKZIP, diffusissimo in ambiente DOS/Windows. Rispetto
ai due precedenti, ha il vantaggio di consentire la compressione di
intere directory, senza quindi ricorrere a Tar. Ma il vantaggio
veramente notevole e' la totale compatibilita' con il PKZIP, per la
quale vale spesso la pena di pagare l'efficienza leggermente
inferiore a quella di Gzip.
L'estensione tipica per gli archivi
creati con Zip e' ".zip", ma si
puo' usare un'estensione qualunque.
Sui server UNIX sono presenti installazioni di
,
potente motore SQL, interfacciabile tramite Perl, C, C++, Python,
Java, etc, oltre alla possibilita' di poter effettuare
interrogazioni dirette tramite SQL. Con tale prodotto diventa
possibile l'archiviazione efficiente dei dati ed il loro reperimento
all'interno della logica relazionale.
Essendo il sistema
pienamente funzionale nel paradigma client/server in rete, sono
possibili interrogazioni da tutti i clienti remoti che hanno
l'autorizzazione.
A titolo di esempio, il database di PRISMA,
fase II, e' stato prodotto integralmente in mysql, perl, per
interrogazioni da browsers WWW.
Ancora, il database ATOSBCD
e' stato prodotto integralmente in mysql e java.
Il centro calcolo distribuisce servizi di stampa per tutte ls stampanti di rete dell'IGM, la compatibilita' e' assicurata per gli ambienti Microsoft Windows (LAN manager) e Unix (lpr). Le stampanti sono individuate dal loro nome (queue name) sul server (albatros), i nomi sono in generale esplicativi del tipo di stampante e del piano nel quale sono collocate:
ljPT:
HP laserjet 6L, piano terra.
ljPP:
HP laserjet 4000, primo piano.
optraPP:
Lexmark OptraR ex primo piano, ora centro calcolo.
optraCC:
Lexmark OptraR centro calcolo.
stylusCC:
Epson stylus Photo Ex, centro calcolo.
lwTP:
Apple laser writer terzo piano.
psnetQP:
HP laserjet quarto piano.
dm800:
Plotter Calcomp elettrostatico, formato A0, centro calcolo.
hpcm755:
Plotter HP CM755 postscript, formato A0, centro calcolo.
Per quel che riguarda l'utenza Windows l'accesso alle stampanti e' regolato dall'autenticazione tramite utente e password, per le sole macchine esistenti nella rete IGM. L'installazione dei driver puo' essere fatta sfogliando le Risorse di Rete e aprendo il server albatros, cliccando sulla stampante di interesse e configurando l'opportuno driver sulla propria macchina.
L'utenza Unix puo' invece utilizzare i comandi lpd/lpr/lpq da qualsiasi host presente nella nostra rete. Per informazioni sull'utilizzo dei comandi si puo' utilizzare il comando "man lpr".
Potente linguaggio di visualizzazione ed analisi dati
statistico-matematica.
E' un prodotto che serve per il calcolo con matrici, e' molto
avanzato e usato moltissimo anche perche' dotato di tools grafici
automatici di semplice utilizzo. Oltre al software standard, sono
disponibili degli ottimi tool box:
Identification_Toolbox
Optimization_Toolbox
Signal_Toolbox
Extend_Symbolic_Toolbox
Symbolic_Toolbox
Image_Toolbox
Statistics_Toolbox
Fuzzy_Toolbox
NAG_Toolbox
Compiler
PDE_Toolbox
Wavelet_Toolbox
netcdf
Librerie IGM (C, C++, Perl, java, fortran, etc ..)
(...)