• Non ci sono risultati.

Come nasce Linux

N/A
N/A
Protected

Academic year: 2021

Condividi "Come nasce Linux"

Copied!
10
0
0

Testo completo

(1)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica

14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX

Marco Lapegna

Dipartimento di Matematica e Applicazioni Universita’ degli Studi di Napoli Federico II wpage.unina.it/lapegna

Marco Lapegna –

Laboratorio di Programmazione

14. Introduzione al s.o. Linux

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 UNIXsemplificando 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 GNUper 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 Linuxa partire da Minix e dai tools realizzati nel progetto GNU. Versione per processori Intel poi adottata da tutte le grandi industrie

(2)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. 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

Distrubuzioni Linux

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

• 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

La struttura da albero del file system di Linux

Principali caratteristiche

(3)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

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) e’ identificata con / (slash)

La directory corrente e’ identificata con . (punto)

La directory padre di quella corrente e’

identificata con .. (doppio punto)

Tipico desktop di una distribuzione Linux

Principali caratteristiche

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. 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

Esempio di esecuzione del comando pwd

Il comando pwd

(4)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

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 ls

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

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

Il comando mkdir

(5)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

Cambia la directory corrente di lavoro (cd = Change Directory)

• Un successivo comando pwd deve mostrare il nome dlla nuova directory di lavoro

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

Il comando cd

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

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 puo’ essere:

− Un file: viene creato un nuovo file o viene sovrascritto uno vecchio

− Una directory: il file viene copiato nella directory specificata

Esempio di esecuzione del comando cp

Il comando cp

(6)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

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 puo’ essere:

− Un file: viene rinominato il file

− Una directory: il file viene spostato nella directory specificata

Esempio di esecuzione del comando mv

Il comando mv

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

Elimina un file esistente (rm = ReMove)

• Un successivo comando ls non deve mostrare la presenza del file

• Obbligatorio specificare il nome del file

Esempio di esecuzione del comando rm

Il comando rm

(7)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

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

Esempio di esecuzione del comando rmdir

Il comando rmdir

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

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

Esempio di utilizzo del comando gedit

Il comando gedit

(8)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

Mostra il contenuto di un file Necessario specificare un nome

Se il file e’ molto lungo e’ possibile utilizzare il comando

less

che visualizza il contenuto del file una

pagina alla volta

Esempio di utilizzo del comando cat

Il comando cat

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

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

Esempio di compilazione di programma Fortran con gfortran

Il comando gfortran

(9)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

Comando per la compilazione di programmi in linguaggio C

Produce un file eseguibile di nome a.out

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

Il comando cc

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

Nel caso di output o stampe molto lunghe e’ possibile redirigere il risultato in un file con il carattere >

Analogamente per un input molto grande da fornire ad un programma in

esecuzione e’ possibile utilizzare il carattere <

Utilizzo della redirezione con >

Redirezione (caratteri > e < )

(10)

Marco Lapegna –

Laboratorio di Programmazione 14. Introduzione al s.o. Linux

Organizzazione di una parola a 32 bit secondo lo standard IEEE 754

W. Kahan nel 1998 (credit http://owpdb.mfo.de)

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

• 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

Riferimenti

Documenti correlati

Il programma elabora un file di testo, il cui nome `e passato come primo parametro sulla linea di comando, che contiene i dati di tutte le giocate fatte.. Tale file contiene un

L’attributo st mode contiene il file mode, cio` e una sequenza di bit ottenuti facendo l’OR bit a bit della stringa che esprime i permessi al file e una costante che determina il

Ogni entry può essere descritta da una o più classi e di conseguenza deve utilizzare almeno tutti gli attributi previsti come obbligatori della classi usate, mentre non

Si vuole creare un file bitmap quadrato di dimensioni 2Nx2N contenente il disegno di un quadrato di diagonale 2N nero su fondo bianco, orientato in modo che le diagonali siano

ls mostra il contenuto della directory corrente (ricordate? man ls) mkdir nomedir crea una nuova directory (ricordate? man mkdir) cp nomefile destinazione copia un file (ricordate?.

ls mostra il contenuto della directory corrente (ricordate? man ls) mkdir nomedir crea una nuova directory (ricordate? man mkdir) cp nomefile destinazione copia un file (ricordate?.

ls mostra il contenuto della directory corrente (ricordate? man ls) mkdir nomedir crea una nuova directory (ricordate? man mkdir) cp nomefile destinazione copia un file (ricordate?.

I Carabinieri dei 38 NAS hanno operato, dal 4 al 14 settembre 2018, un monitoraggio in campo nazionale presso istituti scolastici ed educativi (selezionati tra