Introduzione al sistema operativo Linux Un po’ di storia Negli anni sessanta i computer, oltre ad essere grandi come ”frigoriferi”, avevano il problema di avere un sistema operativo che variava, in genere, da computer a computer. Il software che girava su un computer non riusciva ad essere lanciato su un altro computer con un differente sistema operativo... Nel 1969 un team dei laboratori Bell Labs si dedicò allo studio della compatibilità del software, sviluppando un sistema operativo semplice ed elegante, scritto in linguaggio di programmazione C, e capace di riutilizzare il codice. 1 Questo progetto prese il nome di UNIX. Con UNIX, il sistema operativo è costruito intorno al kernel (il ”cuore” del computer) e scritto in un linguaggio di programmazione di alto livello, il C, in modo da poter girare su diversi tipi di macchine. Agli inizi degli anni novanta, Linus Torvalds, studente di informatica all’università di Helsinki, pensò di rendere liberamente disponibile e accessibile sui Personal Computers una qualche versione accademica di UNIX, in modo da avere un sistema libero che fosse completamente aderente all’originale UNIX. Nasce in questo modo il sistema operativo Linux. 2 Vantaggi di Linux • Linux è gratuito e libero. Grazie al Software Open Source, un programma può essere letto, distribuito e modificato. Linux si può scaricare da internet in modo gratuito. • Linux è portabile su qualsiasi piattaforma hardware. • Linux è sicuro - perchè si basa sul sistema UNIX. 3 Svantaggi di Linux • Ci sono troppe distribuzioni di Linux - si fa fatica a scegliere la distribuzione più adatta alle proprie esigenze. Tutte sono, comunque, molto simili tra loro. • Linux non è molto facile e può confondere le idee per chi voglia ”giocare” con il sistema operativo. Ma sono stati compiuti talmente tanti progressi che anche chi accede per la prima volta ad un computer con Linux, non si accorge di troppe differenze rispetto ad un computer con MS Windows.... 4 Come connettersi al sistema Per lavorare in un sistema Linux, bisogna avere un nome utente (login) e una password. Per collegarsi, quindi, dobbiamo digitare la login e la password e schiacchiare il tasto di Invio. 5 Multi-utenza/tasking Più utenti possono accedere, contemporaneamente, alla stessa macchina (stesso sistema operativo Linux), utilizzando diversi calcolatori: si parla di multiutenza. Analogamente, più programmi possono essere attivati nello stesso tempo: si parla di multitasking. 6 Connessione Una volta entrati nel sistema, si apre l’ambiente grafico e di qui possiamo lavorare (per esempio, aprire una finestra di editor, lanciare OpenOffice, navigare in Internet ....). 7 Terminal window o shell Per aprire nuove directory (cartelle), per spostare files, per eseguire programmi FORTRAN, ... è bene lavorare tramite una finestra di terminale o shell. 8 Elenco di comandi essenziali La finestra di terminale dovrebbe sempre mostrare il prompt dei comandi alla sua apertura. Un esempio di prompt è la login dell’utente + chiocciola + nome della macchina su cui si sta lavorando + attuale directory di lavoro: mazzia@stein:˜ 1 % Vediamo ora alcuni comandi essenziali (comandi da scrivere dopo il prompt, in una finestra di terminale - dopodichè si schiaccia il tasto di Invio): ls mostra l’elenco dei files e delle directories contenuti nella directory attuale (ls sta per ”list”): Esempio: mazzia@stein:˜ 1 % ls 9 Un volta schiacciato Invio, compare: 5 2 3 3 4 2 4 3 2d_fefv/ 2d_fem/ 2d_femlpg/ 2d_fesupg/ 2d_mhfefv/ 2d_mlpg/ 2d_timesplit/ 2d_tran/ 4 57 1 1 1 6 1 1 coupled-hyb/ prova.pdf didattica/ firma grid.m help_note lavori/ mail/ Per cambiare directory, si deve digitare cd nome-directory (cd sta per ”change directory”). Esempio: per entrare nella directory 2d fefv, scrivo cd 2d fefv. Una volta schiacciato il tasto di Invio, il nuovo 10 prompt mi segnala l’ingresso nella directory: mazzia@stein:˜/2d\_fefv 9 % Il comando cd .. fa tornare nella directory precedente. Per creare una nuova directory: mkdir nomedirectory (mkdir sta per ”make directory”). Per copiare un file da una directory ad un’altra: cp nomefile nomedirectory (cp sta per ”copy”). Per trasferire un file da una directory ad un’altra (o per rinominare un file o una directory): mv nomefile nomedirectory (mv sta per ”move”). Esempio: abbiamo due directory chiamate uno e due e il file prova.f nella directory uno. Vogliamo copiare il file dalla directory uno alla directory due. 11 Se ci troviamo nella home, cioè nell’ambiente di partenza, dobbiamo scrivere cp uno/prova.f due mazzia@stein:˜ 16 % cp uno/prova.f due Se ora passiamo nella directory due e facciamo ls, vedremo il file prova.f mazzia@stein:˜ 17 % cd due mazzia@stein:˜/due 18 % ls total 1 1 prova.f Se siamo nella directory uno, dobbiamo scrivere cp prova.f ../due per ottenere lo stesso risultato. Se siamo nella directory due, dobbiamo scrivere 12 cp ../uno/prova.f . Il punto finale serve per copiare il file prova.f nella directory in cui ci troviamo. Con cp abbiamo due file identici, quello nella directory uno e quello copiato nella directory due. Possiamo anche scrivere cp prova.f prova2.f: in questo modo creiamo il file prova2.f nella stessa directory in cui si trova prova.f. Se vogliamo trasferire il file dalla directory uno alla directory due (in questo modo avremo solo un file alla fine del procedimento), dobbiamo usare il comando mv. Per cancellare un file si usa il comando rm nomefile. Se vogliamo cancellare una directory, dobbiamo prima cancellare tutti i files della directory e poi usare il comando rmdir nomedirectory. 13 Ricapitolando • ls : lista dei files e delle directory • cd : per cambiare directory • mkdir: per creare una nuova directory • cp: per copiare files • mv: per trasferire o rinominare files • rm: per cancellare files • rmdir: per cancellare directories 14 Un editor di testo Se vogliamo scrivere un file - un documento di testo o un programma FORTRAN o ... - abbiamo bisogno di un editor di testo. Sotto Linux ne troviamo diversi: vi, emacs, kedit, gedit, nedit.... I più semplici da utilizzare sono gedit e nedit. 15 Scrivere un programma FORTRAN Dobbiamo tenere presenti alcuni concetti fondamentali: • Per prima cosa un programma FORTRAN va scritto utilizzando un editor di testo. Il nome da dare al file deve essere del tipo nome.f. • Una volta scritto il programma, lo si deve compilare, nella directory in cui è stato salvato il file nome.f mediante il comando g77 -o programmaeseguibile nome.f • Se dopo aver schiacciato il tasto di Invio, il prompt non ci dà nessun messaggio, facendo ls vedremo che sarà stato creato un nuovo file dal nome programmaeseguibile. Se, invece, ci sono errori, allora avremo tutta la lista degli errori nella finestra di terminale. 16 In questo caso, bisogna aprire con l’editor di testo il file del programma nome.f e correggere gli errori, salvare le correzioni e lanciare di nuovo il comando g77 -o programmaeseguibile nome.f. Questa procedura va ripetuta fino a quando non avremo creato un file .f scritto in maniera corretta in modo da ottenere il file del programma eseguibile. • Una volta creato il programma eseguibile, possiamo mandarlo in esecuzione, semplicemente con il comando programmaeseguibile (cioè scrivendo il nome del programma eseguibile creato tramite il compilatore g77). 17 Programma FORTRAN Scriviamo, allora, un programma FORTRAN, che, assegnata una retta nello spazio y = ax + b, al dato di input x, fornisce il valore di y del punto sulla retta. Ci si ricordi di scrivere i comandi tra la 7ma e 72sima colonna nella pagina di testo. 18 19 Testo del programma C C C C C C program primo sia assegnata una retta mediante i coefficienti a e b y= ax+b al dato di input x, si restituisce il valore corrispondente di y implicit none real a,b real x,y a=9.0 b=1.0 20 write(*,*) ’valore per x’ read(*,*) x write(*,*) ’x= ’, x y=a*x+b write(*,*) ’y = ’, y stop end 21