Unit 1 - Struttura e caratteristiche principali
Come nasce 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.
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.
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).
Andrew Tanenbaum (Amsterdam, 1986), professore alla Vrije University sviluppa Minix, piccolo S.O. Unix per processori Intel (ora sufficientemente potenti).
Sviluppato per usi didattici. 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.
Distribuzioni Linux
Linux è 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 è il sistema Linux corredato da numerosi programmi applicativi, come:
- Office automation, agende
- Browser, email, multimedia
Soprattutto un’interfaccia grafica con Desktop.
Principali caratteristiche
È un s.o. dotato di funzionalità 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 è ad albero, all’interno del quale l’utente può 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 possibilità di creare nuovi file e directory).
Principali caratteristiche/2
Struttura di un generico comando Linux
comando [-opzioni] [argomenti]
Le opzioni sono precedute da – e servono a specificare ulteriormente il comando.
Gli argomenti sono nomi di file o directory.
- la directory radice (root) è identificata con /
- la directory corrente è identificata con .
- la directory padre di quella corrente è identificata con ..
Unit 2 - I principali comandi del sistema operativo
Il comando pwd
Visualizza la directory corrente di lavoro (pwd = print working directory).
Sono mostrati 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.
Il comando ls
Visualizza l’elenco di tutti i file e directory presenti nella directory corrente di lavoro (ls = LiSt).
È 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 /)
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 già esiste un file o una directory con il nome specificato, il comando mkdir restituisce un messaggio di errore.
Il comando cd
Cambia la directory corrente di lavoro (cd = Change Directory).
Un successivo comando pwd deve mostrare il nome della nuova directory di lavoro.
Diversi modi di utilizzo
- specificando un nome: la nuova directory è quella specificata
- cd .. : la nuova directory è quella di livello superiore
- cd (senza argomenti): la nuova directory è la home directory
Il comando cp
Crea una copia di un file esistente (cp = CoPy).
Un successivo comando ls deve mostrare la presenza del nuovo file.
Obbligatori due argomenti:
- primo argomento: il file da copiare
- secondo argomento può 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
Sposta o rinomina un file esistente (mv = MoVe).
Un successivo comando ls deve mostrare la presenza del nuovo file.
Obbligatori due argomenti:
- primo argomento: il file da spostare o rinominare
- secondo argomento può essere
- un file: viene rinominato il file
- una directory: il file viene spostato nella directory specificata
Il comando rm
Elimina un file esistente (rm = ReMove).
Un successivo comando ls non deve mostrare la presenza del file.
Obbligatorio specificare il nome del file.
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.
Si apre in nuova finestra.
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
Il comando cat mostra il contenuto di un file.
Necessario specificare un nome.
Se il file è molto lungo è possibile utilizzare il comando less che visualizza il contenuto del file una pagina alla volta.
Il comando fortran
Comando per la compilazione di programmi FORTRAN.
Un file fortran deve avere estensione .f90 (ad es. areatrapezio.f90).
Produce un file eseguibile di nome a.out.
Il comando ./a.out manda in esecuzione il programma.
Con l’opzione –o è possibile dare un nome differente al file eseguibile.
Riepilogo
Un po’ di storia
William Kahan (1933)
Matematico e informatico canadese si è sempre occupato dell' accuratezza degli algoritmi per il calcolo scientifico, sviluppando tecniche per minimizzare l’errore di round-off.
Nel 1985 è stato il principale artefice dello standard IEEE 754, per l’aritmetica floating point utilizzato oggi in tutti i dispositivi di calcolo.
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 funzionalità 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.
- Organizzazione di una parola a 32 bit secondo lo standard IEEE 754
- W. Kahan nel 1998 (credit Oberwolfach Photo Collection)
Risorse della lezione
Commento audio della slide n. 1
- Introduzione al sistema operativo Linux
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #1
- Il linguaggio di programmazione FORTRAN
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #2
- Il linguaggio di programmazione C
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #3
- Esercitazione 1: Algoritmi e programmi introduttivi alle strutture di controllo
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #4
- Esercitazione 2: Algoritmi e programmi di base con array 1-D
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #5
- Esercitazione 3: Algoritmi e programmi di ricerca e fusione
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #6
- Esercitazione 4: Algoritmi e programmi di ordinamento
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #7
- Esercitazione 5: Algoritmi e programmi su matrici
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #8
- Esercitazione 6: Algoritmi e programmi per la matematica computazionale
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #9
- Esercitazione 7: Algoritmi e programmi sull'aritmetica floating point
- Quiz: Laboratorio di Programmazione: strumenti e programmi - lez. #10
Immagine slide 3
Immagine slide 4
Immagine slide 5
Immagine slide 7
Immagine slide 8
Immagine slide 9
Immagine slide 10
Immagine slide 11
Immagine slide 12
Immagine slide 13
Immagine slide 14
Immagine slide 15
Immagine slide 16
Immagine slide 17
Immagine slide 18
Immagini slide 20
- Slide 2: Come nasce Linux
- Slide 3: Distribuzioni Linux
- Slide 4: Principali caratteristiche
- Slide 5: Principali caratteristiche/2
- Slide 7: Il comando pwd
- Slide 8: Il comando ls
- Slide 9: Il comando mkdir
- Slide 10: Il comando cd
- Slide 11: Il comando cp
- Slide 12: Il comando mv
- Slide 13: Il comando rm
- Slide 14: Il comando rmdir
- Slide 15: Il comando gedit
- Slide 16: Il comando cat
- Slide 17: Il comando fortran
- Slide 18: Il comando cc
Iscrizione al corso Laboratorio di Programmazione: strumenti e programmi
Benvenuto
Ti stai iscrivendo al corso Laboratorio di Programmazione: strumenti e programmi.
Se confermi l'iscrizione ti invieremo una email appena il corso sarà pronto per partire e potrai seguire i tuoi progress nella sezione You
A presto!
Il Team Federica
Benvenuto
Stai prenotando il corso Laboratorio di Programmazione: strumenti e programmi.
Se confermi la tua prenotazione ti avviseremo via mail appena il corso sarà pronto per partire.
A presto!
Il Team Federica
Benvenuto
Stai prenotando il corso Laboratorio di Programmazione: strumenti e programmi.
Se confermi la tua prenotazione ti avviseremo via mail appena il corso sarà pronto per partire.
A presto!
Il Team Federica
Benvenuto
Ti stai iscrivendo al corso Laboratorio di Programmazione: strumenti e programmi.
Il corso è già attivo per cui ti consigliamo di cominciare a seguire sin da subito le lezioni già pubblicate.
Buono studio!
Il Team Federica
Iscrizione al corso cancellata correttamente.
Grazie per aver dedicato un po' del tuo tempo ai corsi di Federica.EU.
Ci auguriamo di rivederti presto!
Il Team Federica
Benvenuto
Per iscriversi al corso Laboratorio di Programmazione: strumenti e programmi, è necessario effettuare prima il login.Se non sei registrato a Federica EU clicca sul bottone Procedi per creare il tuo account. Dopo la registrazione potrai completare l'iscrizione a questo corso.
A presto!
Il Team Federica

