13/03/2014 Come nasce Linux Marco Lapegna Il s.o. Linux • Fernando José Corbató (MIT, 1965), dirige il progetto per il S.O. MULTICS. Grande, complesso e poco efficiente, ma che possiede tutte le caratteristiche dei s.o. moderni Lezione n.14 • Kenneth Thompson e Dennis Ritchie (Bell labs, 1971), sviluppano UNIX semplificando il progetto MULTICS. Successivamente sviluppano il linguaggio C e riscrivono UNIX nel nuovo linguaggio. Primo S.O. portabile su differenti calcolatori anche di piccole dimensioni Parole chiave: Struttura del file system Gestione di file e directory • • • Richard Stallman (Stanford, 1985), lancia il progetto GNU per la distribuzione libera e gratuita del software di Unix. Sviluppa solo alcuni tool (compilatori, debugger, editor) Corso di Laurea: Matematica • Andrew Tanenbaum (Amsterdam, 1986), professore alla Vrije University sviluppa Minix, piccolo S.O. Unix per processori Intel (ora sufficientemente potenti) . Sviluppato per usi didattici Insegnamento: Laboratorio di Programmazione (per matematici) • Linus Torvalds (Finlandia, 1992) sviluppa Linux a partire da Minix e dai tools realizzati nel progetto GNU. Versione per processori Intel poi adottata da tutte le grandi industrie Email Docente: [email protected] A.A. 2013-2014 Distrubuzioni Linux Linux e’ il sistema che si occupa solo della gestione della macchina fisica: - Gestione dei processi - Gestione della memoria - Gestione del file system - Gestione dell’I/O e rete Un distribuzione e’ il sistema Linux corredato da numerosi programmi applicativi • Office automation, agende, • Browser, email, multimedia • Soprattutto un’interfaccia grafica con Desktop Principali distribuzioni Linux Principali caratteristiche • E’ un s.o. dotato di funzionalita’ di multiprogrammazione, time sharing e memoria virtuale • Scalabile, permette l’utilizzo contemporaneo di numerosi utenti, che possono condividere file e directory • La struttura del file system e’ ad albero, all’interno del quale l’utente puo’ navigare • Dalla directory principale (root directory) partono altre directory che possono contenere ulteriori directory o file • Ogni utente ha una propria home directory (ad es. /home/user) nella quale ha permessi di lettura e scrittura (compresa la possibilita’ di creare nuovi file e directory) La struttura da albero del file system di Linux 1 13/03/2014 Principali caratteristiche Il comando pwd Struttura di un generico comando Linux • Visualizza la directory corrente di lavoro (pwd = print working directory) • Sono mostrate i nomi di tutte le directory partendo dalla root ( / ) fino alla corrente, separati da / • Utile per sapere in quale directory del file system si sta lavorando comando [-opzioni] [argomenti] Le opzioni sono precedute da – e servono a specificare ulteriormente il comando Gli argomenti sono nomi di file o directory Tipico desktop di una distribuzione Linux Esempio di esecuzione del comando pwd La directory radice (root) e’ identificata con / La directory corrente e’ identificata con . La directory padre di quella corrente e’ identificata con .. Il comando ls • Visualizza l’elenco di tutti i file e directory presenti nella directory corrente di lavoro (ls = LiSt) • E’ possibile specificare opzioni o altre directory Esempi • ls –l : (lista con informazioni su proprietario, dimensione, data e ora di ultima modifica, permessi per altri utenti,…) • ls / : (lista il contenuto della root directory /) Esempi di utilizzo del comando ls Il comando mkdir • Crea un nuova directory (mkdir = MaKe DIRectory) • Obbligatorio specificare un nome • Un successivo comando ls deve mostrare la presenza della nuova directory • Se gia’ esiste un file o una directory con il nome specificato, il comando mkdir restituisce un messaggio di errore Esempio di esecuzione del comando mkdir 2 13/03/2014 Il comando cd Il comando cp • Cambia la directory corrente di lavoro (cd = Change Directory) • Crea una copia di un file esistente (cp = CoPy) • Un successivo comando pwd deve mostrare il nome dlla nuova directory di lavoro • Un successivo comando ls deve mostrare la presenza del nuovo file Diversi modi di utilizzo • Specificando un nome: la nuova directory e’ quella specificata • cd .. : la nuova directory e’ quella di livello superiore • cd (senza argomenti) : la nuova directory e’ la home directory Esempio di esecuzione del comando cd Obbligatori due argomenti: • Primo argomento : il file da copiare • Secondo argomento puo’ essere: − Un file: viene creato un nuovo file o viene sovrascritto uno vecchio − Una directory: il file viene copiato nella directory specificata Il comando mv • • Il comando rm Sposta o rinomina un file esistente (mv = MoVe) • Elimina un file esistente (rm = ReMove) Un successivo comando ls deve mostrare la presenza del nuovo file • Un successivo comando ls non deve mostrare la presenza del file • Obbligatorio specificare il nome del file Obbligatori due argomenti: • Primo argomento : il file da spostare o rinominare • Secondo argomento puo’ essere: − Un file: viene rinominato il file − Una directory: il file viene spostato nella directory specificata Esempio di esecuzione del comando mv Esempio di esecuzione del comando cp Esempio di esecuzione del comando rm 3 13/03/2014 Il comando rmdir • Elimina una directory esistente (rmdir = ReMove DIRectory) • Un successivo comando ls non deve mostrare la presenza della directory • Obbligatorio specificare il nome della directory • La directory deve essere vuota Il comando gedit Gedit crea o modifica un file di testo • Se il file non esiste, ne viene creato uno nuovo • Se il file esiste, viene modificato quello esistente Necessario specificare un nome Esempio di esecuzione del comando rmdir Si apre in nuova finestra Esempio di utilizzo del comando gedit Comune editor di testo “What You See Is What You Get” Ricordarsi di salvare le modifiche in uscita Un successivo comando ls deve mostrare la presenza del file Il comando cat Mostra il contenuto di un file Il comando gfortran Comando per la compilazione di programmi FORTRAN Necessario specificare un nome Produce un file eseguibile di nome a.out Se il file e’ molto lungo e’ possibile utilizzare il comando less che visualizza il contenuto del file una pagina alla volta Il comando ./a.out manda in esecuzione il programma Esempio di utilizzo del comando cat Con l’opzione –o e’ possibile dare un nome differente al file eseguibile Esempio di compilazione di programma Fortran con gfortran 4 13/03/2014 Il comando cc Comando per la compilazione di programmi in linguaggio C Redirezione (caratteri > e < ) Nel caso di output o stampe molto lunghe e’ possibile redirigere il risultato in un file con il carattere > Produce un file eseguibile di nome a.out Analogamente per un input molto grande da fornire ad un programma in esecuzione e’ possibile utilizzare il carattere < Il comando ./a.out manda in esecuzione il programma Con l’opzione –o e’ possibile dare un nome differente al file eseguibile Esempio di compilazione di programma C con cc Utilizzo della redirezione con > Un po’ di storia (14) William Kahan (1933) • Matematico e informatico canadese si e’ sempre occupato della accuratezza degli algoritmi per il calcolo scientifico, sviluppando tecniche per minimizzare l’errore di round-off. • Nel 1985, e’ stato il principale artefice dello standard IEEE 754, per l’aritmetica floating point utilizzato oggi in tutti i dispositivi di calcolo Organizzazione di una parola a 32 bit secondo lo standard IEEE 754 • Lo standard definisce il formato della rappresentazione, le regole di arrotondamento, le operazioni e la gestione delle situazioni eccezionali (ad. divisione per 0, forme indeterminate,… ) • Kahan ha avuto una profonda influenza sulle funzionalita’ dei compilatori e sull’architettura delle CPU con raccomandazioni finalizzate a migliorare l’accuratezza nei processi di calcolo • Kahan ha vinto il Turing Award nel 1989 W. Kahan nel 1998 (credit http://owpdb.mfo.de) 5
© Copyright 2024 Paperzz