La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione ai sistemi operativi Unix e Linux Alessandro De Salvo Corso di Laboratorio di Calcolo 2005.

Presentazioni simili


Presentazione sul tema: "Introduzione ai sistemi operativi Unix e Linux Alessandro De Salvo Corso di Laboratorio di Calcolo 2005."— Transcript della presentazione:

1

2 Introduzione ai sistemi operativi Unix e Linux Alessandro De Salvo Corso di Laboratorio di Calcolo 2005

3 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Il sistema operativo Unix UNIX nasce il dalle ceneri di un progetto di sistema operativo (Multics) iniziato nel 1965 nei Bell Laboratories in collaborazione con MIT, AT&T e General ElectricUNIX nasce il dalle ceneri di un progetto di sistema operativo (Multics) iniziato nel 1965 nei Bell Laboratories in collaborazione con MIT, AT&T e General Electric –Multi-utente –Multi-processore –Struttura di memorizzazione dati (file system) gerarchica –Semplice e chiara interfaccia utente –Architettura trasparente e invisibile allutente –Completo ambiente di programmazione –Lintero sistema occupava 16K di memoria! –Facile portabilità su piattaforme hardware diverse grazie alla riscrittura in linguaggio C nel 1973 –Sistema operativo a strati (layered OS) Kernel:interazione con lhardware del computer User:interazione con il kernel Il nuovo sistema operativo viene presentato nel 1974 sotto legida dellAT&T e adottato in maggioranza da università ed entità commercialiIl nuovo sistema operativo viene presentato nel 1974 sotto legida dellAT&T e adottato in maggioranza da università ed entità commerciali

4 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Il sistema operativo Unix (2) Vari tipi di Unix (Unix Flavors)Vari tipi di Unix (Unix Flavors) –Sistemi Operativi a pagamento AIX (IBM) AIX 5L (Linux) BeOS Digital Unix (Compaq) HP-UX (Hewlett Packard) IRIX (Silicon Graphics) MacOS X (Apple) Solaris (Sun Microsystems) –Sistemi Operativi non a pagamento Linux FreeBSD –Sistemi Operativi real-time (sistemi che reagiscono in modo temporalmente prevedibile a stimoli esterni imprevedibili) LynxOS QNX

5 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Larchitettura di Unix Programmi Utente (eseguibili, shell, …) Interfaccia per le chiamate di sistema (System Call Interface) Gestione filesystem Gestione memoria Gestione processi Servizi di rete (sockets) TCP/IPdrivers Drivers schede di rete Drivers filesystems DriverIDEDriverSCSIDriverFDD Hardware Programmi Kernel Hardware

6 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Linux Linus Torvalds, studente delluniversità di Helsinki, inizia per hobby nel 1991 la scrittura di unestensione del mini S.O. UNIX di nome MinixLinus Torvalds, studente delluniversità di Helsinki, inizia per hobby nel 1991 la scrittura di unestensione del mini S.O. UNIX di nome Minix Nel 1994 la prima versione del kernel di Linux vede la luceNel 1994 la prima versione del kernel di Linux vede la luce Linux è sviluppato secondo la licenza GNU General Public License (GPL) e tutto il codice sorgente è distribuito gratuitamente al pubblicoLinux è sviluppato secondo la licenza GNU General Public License (GPL) e tutto il codice sorgente è distribuito gratuitamente al pubblico Le performances e la versatilità di Linux lo hanno fatto diventare ben presto un sistema operativo di grande diffusioneLe performances e la versatilità di Linux lo hanno fatto diventare ben presto un sistema operativo di grande diffusione Linux ha introdotto lidea di OpenSourceLinux ha introdotto lidea di OpenSource –Accesso al codice sorgente –Redistribuzione gratuita del codice e dei programmi compilati –Permesso di effettuare modifiche –Preservazione dellintegrità del codice sorgente dellautore

7 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo OpenSource Apertura del codiceApertura del codice –Avere a disposizione il codice sorgente agevola la risoluzione di problemi StabilitàStabilità –Dal momento che lOpenSource può contare su una grande comunità di sviluppatori e che tutto il codice sorgente sviluppato deve rimanere pubblico, il software Open Source è generalmente più stabile del software commerciale AdattabilitàAdattabilità –Il codice OpenSource è strettamente collegato con delle regole standard (Open Standards) e quindi è facilmente adattabile ad ogni altra applicazione OpenSource QualitàQualità –I prodotti OpenSource possono essere testati da una grande comunità, che è anche potenzialmente una comunità di sviluppatori InnovazioneInnovazione –Ciò che spinge lOpenSource è la competizione e la possibilità di contribuire comunemente allo sviluppo di un prodotto CostoCosto –La maggior parte del software OpenSource è gratis (ma non lo è necessariamente)

8 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Parte II Come lavorare in ambiente UNIX

9 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Accesso al sistema Ogni utente è identificato da una coppia di informazioniOgni utente è identificato da una coppia di informazioni –Nome dellutenza (username), pubblica –Parola-chiave (password), segreta Lutente accede al sistema fornendo username e passwordLutente accede al sistema fornendo username e password –Login: accesso al sistema (da remoto) telnet –Logout: uscita dal sistema exit Più utenti possono lavorare contemporaneamente sulla stessa macchinaPiù utenti possono lavorare contemporaneamente sulla stessa macchina

10 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Directories e Home Directory La struttura di memorizzazione dati presente nei dischi (filesystem) è una struttura ad albero, in cui i nodi sono directories e le foglie sono directories o filesLa struttura di memorizzazione dati presente nei dischi (filesystem) è una struttura ad albero, in cui i nodi sono directories e le foglie sono directories o files Dopo la login il sistema operativo posiziona ogni utente nella propria directory (home directory)Dopo la login il sistema operativo posiziona ogni utente nella propria directory (home directory) –Privilegi di lettura/scrittura solo dei files creati dallutente –Possibilità di protezione da lettura/scrittura/cancellazione da parti di altri utenti –I files di sistema possono essere modificati soltanto dal super-utente (root), il solo abilitato al completo controllo della macchina / /usr /boot/home/tmp /home/user1 /home/user2/home/user3/home/user4

11 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Interazione con il sistema Riga di comando (case sensitive)Riga di comando (case sensitive) –Esecuzione di un programma, ad esempio il programma emacs >emacs |RETURN| –Spostamento allinizio della riga >|CTRL+A| –Spostamento alla fine della riga >|CTRL+E| –Completamento del comando parzialmente digitato >ema |TAB| > emacs –Copia/incolla testo >Copia: selezionare il testo da copiare con il tasto sinistro del mouse >Incolla: posizionarsi sul punto desiderato e premere il tasto centrale del mouse Una volta lanciato un programma dalla linea di comando il controllo ritornerà allutente solo al termine dellesecuzione del programma stessoUna volta lanciato un programma dalla linea di comando il controllo ritornerà allutente solo al termine dellesecuzione del programma stesso –Esecuzione di un programma e ritorno immediato del controllo (background mode) >gzip pippo.txt & |RETURN|

12 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Comandi base Operazioni comuniOperazioni comuni –Lista dei files nella directory corrente >ls |RETURN| –Lista dei files il cui nome termina con.txt nella directory corrente >ls *.txt |RETURN| –Stampa della dimensione e delle proprietà dei files >ls –l |RETURN| >-rwxr-xr-x 1 desalvo xv Jun test >-rw-r--r-- 1 desalvo xv 148 Jun test.c >drwxr-xr-x 2 desalvo xv 4096 Jan 15 22:09 test-directory –Stampa del nome della directory di lavoro corrente (full pathname) >pwd |RETURN| –Cambio di directory >cd |RETURN| –Ritorno alla directory al livello precedente >cd.. |RETURN| –Creazione di una nuova directory >mkdir |RETURN| –Rimozione di una directory vuota >rmdir |RETURN|

13 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Comandi base (2) Operazioni comuni (2)Operazioni comuni (2) –Spostamento o rinominazione di files >mv |RETURN| >Esempio di spostamento: mv pippo.txt txt_files/ >Esempio di rinominazione: mv pippo.txt paperino.txt –Cancellazione di uno o più files >rm |RETURN| >rm pippo* |RETURN| –Copia di un file >cp pippo.txt paperino.txt |RETURN| –Visualizzazione del contenuto di un file (browsing) >more pippo.txt |RETURN| –Creazione o modifica di un file di testo (editing) >emacs pippo.txt |RETURN| –Stampa di un file >lpr -P |RETURN| –Informazioni sulluso di un comando >man |RETURN|

14 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Editor di testo EmacsEmacs –Avvio del programma >emacs |RETURN| –Uscita da Emacs >|CTRL-x| |CTRL-c| –Salvataggio del file corrente senza uscire dal programma >|CTRL-x| |CTRL-s| –Cancellazione del contenuto della riga dal cursore in poi >|CTRL-k| –Annullamento dellutima operazione (undo) >|CTRL-x| u –Ricerca di testo in avanti >|CTRL-s| |RETURN| –Ricerca di testo indietro >|CTRL-r| |RETURN|

15 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Compilazione ed esecuzione di un programma Compilazione di un programma in CCompilazione di un programma in C –gcc –o eseguibile eseguibile.c –gcc –o eseguibile –lm eseguibile.c Esecuzione di un programmaEsecuzione di un programma –Dalla directory in cui è registrato leseguibile./eseguibile Compilatore Nome delleseguibile che andiamo a creare Nome del file contenente il codice sorgente da compilare Istruzioni al compilatore per il link con la libreria delle funzioni matematiche (libm.a)

16 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo StreamsStreams –Input stream (STDIN):canale di ingresso dei dati –Output stream (STDOUT):canale duscita dei dati –Error stream (STDERR):canale duscita dei messaggi di errore Stampa su STDOUTStampa su STDOUT –#include –int printf(const char *format,...); –Format string (stringa di caratteri) I caratteri che non iniziano per % vengono copiati direttamente nella stream di output Specificatori di conversione –%dnumero decimale intero –%fnumero decimale a virgola mobile –%xnumero esadecimale –%onumero ottale –%sstringa di caratteri –%csingolo carattere Semplice I/O con un programma C

17 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Programma di test (hello.c)Programma di test (hello.c) Compilazione del programmaCompilazione del programma –gcc –o hello hello.c Esecuzione del programmaEsecuzione del programma –./hello Esempio di programma in C #include int main() { /* Stampa della frase Hello World! */ printf (Hello World!\n); /* Uscita dal programma */ return (0); }

18 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Conversione di un numero intero da notazione decimale a notazione ottale (octal.c)Conversione di un numero intero da notazione decimale a notazione ottale (octal.c) Compilazione ed esecuzione del programmaCompilazione ed esecuzione del programma –gcc –o octal octal.c –./octal Esempio di programma in C (2) #include int main() { /* definizione delle variabili */ int var1 = 0; /* Leggi il numero intero */ printf ("Inserisci un numero intero:\n"); scanf ("%d", &var1); printf ("Il numero %d in notazione ottale è %o\n", var1, var1); /* Uscita dal programma */ return (0); }

19 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Utilizzo dei parametri di linea di comando (numeri.c)Utilizzo dei parametri di linea di comando (numeri.c) Compilazione ed esecuzione del programmaCompilazione ed esecuzione del programma –gcc –o numeri numeri.c –./numeri 123 Esempio di programma in C (3) #include int main(int argc, char **argv) { /* definizione delle variabili */ int var1 = 0; /* Stampa del primo numero immesso nella linea di comando */ if (argc > 1) { var1 = atoi(argv[1]); printf (Il numero immesso è: %d\n,var1); } /* Uscita dal programma */ return (0); }

20 Introduzione ai sistemi operativi Unix e Linux – Corso di Laboratorio di Calcolo Modificare il programma octal.c in modo da stampare il numero intero decimale in notazione esadecimaleModificare il programma octal.c in modo da stampare il numero intero decimale in notazione esadecimale Esercitazione (1)


Scaricare ppt "Introduzione ai sistemi operativi Unix e Linux Alessandro De Salvo Corso di Laboratorio di Calcolo 2005."

Presentazioni simili


Annunci Google