Diapositiva 1

Transcript

Diapositiva 1
Corso di Sistemi Operativi
DEE - Politecnico di Bari
LINUX - Introduzione
1 di 26
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Cos’è LINUX?
ƒ
ƒ
Si tratta di un clone di UNIX
Più precisamente è il kernel del S.O.
Funzionalità di base
ƒ
ƒ
ƒ
ƒ
Scheduling dei processi
Gestione della memoria virtuale
Gestione dei file
Gestione dell’input/output
Funzionalità avanzate
ƒ
ƒ
ƒ
2 di 26
Editing e compilazione
Giochi, grafica e multimedialità
Supporto al networking
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Applicazioni
ƒ
ƒ
ƒ
ƒ
ƒ
3 di 26
Difficile fare classificazioni a valore generale
Gestione DataBase aziendali
Università (didattica e ricerca)
Server
1. Web server (Apache)
2. File e printer Server (Samba)
3. Sistemi multiprocessore
4. Cluster
Workstation
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Un po’ di storia
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Suo padre è Linus Torvalds che lo concepisce nel 1991
All’epoca Torvalds era studente all’università di Helsinki
Nasce come “costola” di UNIX liberamente distribuibile
Torvalds oggi lavora alla manutenzione del “suo” kernel
La prima versione è stata diffusa via Internet
Attualmente migliaia di sviluppatori lavorano al progetto
Circa 20 milioni di utenti LINUX nel mondo
Curiosità
ƒ
ƒ
4 di 26
E’ ispirato a MINIX di A. Tanenbaum
Era un tema d’anno neanche troppo promettente (!?)
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
La potenza della “community”
5 di 26
ƒ
ƒ
Gli hacker del kernel hanno adottato LINUX per primi
Migliaia di sviluppatori lavorano giornalmente al progetto
ƒ
ƒ
ƒ
Come avere un help on line sempre a disposizione
Supporto per la maggior parte dell’hardware
Traduzione degli applicativi più comuni in pacchetti LINUX
ƒ
La filosofia dell’open source applicata alla realtà
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Caratteristiche del sistema
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
6 di 26
Nota sui numeri di versione
Le funzionalità
Il kernel
Programmi di servizio
Elaboratori di testi e videoscrittura
Applicativi commerciali
Supporto alla programmazione
X Window
Il copyright
Filosofia progettuale
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
I numeri di versione (1/2)
ƒ
Sono due, diversi e riferiti a:
1. Distribuzione
2. Kernel
Cos’è una distribuzione
ƒ
ƒ
Si tratta del pacchetto completo comprendente:
1. LINUX (vale a dire il nucleo)
2. Applicativi
E’ sviluppata da una comunità indipendente dalle altre
Cos’è un kernel
ƒ
ƒ
ƒ
7 di 26
Si tratta dell’insieme delle routine di basso livello del S.O.
E’ dipendente in maniera lasca dalla distribuzione
Ogni sua modifica viene autorizzata da Torvalds in persona
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
Mappa delle distribuzioni
DEE - Politecnico di Bari
8 di 26
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
I numeri di versione (2/2)
ƒ
ƒ
ƒ
Versioning differente per kernel e distribuzione
E’ più recente Red Hat 5.2 o SuSE 6.0?
E’ più recente LINUX 2.4 o 2.6?
Numerazione del nucleo
ƒ
ƒ
ƒ
ƒ
Due o tre valori interi separati da un punto
Una release stabile è identificata dall’ultimo numero pari
Una release di sviluppo è identificata dall’ultimo numero dispari
Il terzo valore si chiama patch level
Punti fermi
ƒ
ƒ
ƒ
9 di 26
Una nuova distribuzione usa sempre il kernel più recente
Tutti gli applicativi hanno un proprio numero di versione
La compilazione dei pacchetti è molto flessibile
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Le funzionalità (1/2)
ƒ
ƒ
ƒ
ƒ
10 di 26
Multitasking e multiuser
Multiprocessing (fino a 16 processori paralleli)
Compatibilità con molte architetture di CPU
1. Intel x86 e Pentium
2. Sparc, Alpha, PowerPC
Compatibilità con i file system:
1. ISO 9660 (CD- ROM)
2. MS-DOS e Windows
3. OS/2, Apple, Amiga
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Le funzionalità (2/2)
ƒ
ƒ
ƒ
ƒ
ƒ
11 di 26
Compatibile con la maggioranza degli standard UNIX
Controllo diretto dei job in esecuzione
Console virtuale (modalità testuale)
Coesistenza con altri S.O.
Grande attenzione al networking
1. Driver per TCP/IP (client e servizi per FTP, Telnet,
SMTP, HTTP)
2. Driver per PPP
3. Driver per SLIP e PLIP
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Il kernel
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
12 di 26
E’ il codice che controlla l’interfaccia tra applicativi e HW
E’ monolitico (un unico modulo che serve le richieste)
Supporto ai driver caricabili e scaricabili dalla memoria
Emulazione della Floating Point Unit (FPU)
Supporto alla virtualizzazione della memoria
Utilizzo ottimizzato delle funzioni di libreria:
1. Gli eseguibili adoperano librerie condivise a linking
dinamico
2. Gli eseguibili sono più compatti
3. Ottimizzazione dell’uso della memoria
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Programmi di servizio (1/2)
ƒ
ƒ
ƒ
ƒ
13 di 26
Traduzione per LINUX di tutte le utility UNIX
Possibilità di replicare un certo ambiente operativo
1. Java Development Kit (JDK)
2. Perl
Editor di testo
1. vi e vim
2. Emacs e joe
Utility di compressione dati
1. tar, gzip e bzip2
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Programmi di servizio (2/2)
ƒ
14 di 26
SHELL
1. E’ il più importante programma di servizio
2. Interprete dei comandi utente
3. Job control
4. Cronologia dei comandi immessi
5. Funzione di completamento automatico
6. Ridirezione dell’input e dell’output
7. Utilizzo di script in linguaggio di shell
8. Esistono varie shell che differiscono per la sintassi
dei comandi
9. La più diffusa è Bourne Again SHell (BASH)
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Elaboratori di testo e videoscrittura (1/2)
ƒ
ƒ
15 di 26
Differenza tra elaboratori di testo e videoscrittura
Elaboratori di testo
1. Si introduce il testo in un linguaggio di
formattazione che ne descrive l’aspetto
2. Un esempio di linguaggio di formattazione è HTML
3. La formattazione avviene mediante un programma
distinto che converte i codici
4. Analogia con editing e compilazione
5. I più famosi sono TEX e il suo dialetto LATEX
6. Maggiore portabilità dei documenti
7. Riferimenti aggiornati automaticamente
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Elaboratori di testo e videoscrittura (2/2)
ƒ
16 di 26
Videoscrittura (WYSIWYG)
1. Interfaccia visuale
2. Editing di espressioni complesse (formule
matematiche)
3. Interfaccia grafica per disegnare figure e schemi
4. Lettura e scrittura di e-mail e news
5. Correttore ortografico interattivo
6. Generatore automatico di indici per documenti
7. Tool per la progettazione di font
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Applicativi commerciali (1/2)
ƒ
ƒ
ƒ
17 di 26
Attenzione crescente delle software house verso LINUX
Star Division ha prodotto Star Office
1. Videoscrittura
2. Foglio Elettronico
3. Editor HTML
4. Presentation Manager
5. Disponibile gratuitamente
6. In grado di leggere i formati più diffusi
Corel produce versioni LINUX di WordPerfect
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Applicativi commerciali (2/2)
ƒ
ƒ
ƒ
18 di 26
Caldera produce NetWare per LINUX. Esso consente di:
1. Fornire servizi di file server
2. Fornire servizi di print server
3. Condividere dati
4. Mantenere la compatibilità con client NetWare per
Windows, DOS, UNIX e Macintosh
Oracle e Informix hanno versioni LINUX dei loro DBMS
IBM produce una beta version di DB2 per LINUX
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Supporto alla programmazione (1/2)
ƒ
ƒ
ƒ
19 di 26
LINUX possiede strumenti di programmazione completi
1. Librerie standard
2. Compilatori
3. Debugger
C o C++ sono gli ambienti normalmente supportati
1. gcc è il compilatore C/C++ per LINUX
2. Vengono offerte funzionalità moderne e avanzate
Supporto completo per Java e JDK
1. Applet e servlet
2. Connettività a Database
3. Sistemi distribuiti IP based
4. Portabilità avanzata grazie a JVM
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Supporto alla programmazione (2/2)
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
20 di 26
Esistono traduzioni per LINUX di molti compilatori
1. SmallTalk
2. Pascal
3. Fortran
4. Lisp
Vari assembler per scrivere codice macchina
Linguaggi per scrivere script (Perl)
Tool di profiling
1. Statistiche di funzionamento
2. Prestazioni del software
Possibilità di accedere ai sorgenti e manipolare il kernel
Possibilità di creare applicazioni per sistemi UNIX
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
X Window (1/2)
ƒ
ƒ
ƒ
ƒ
ƒ
21 di 26
Si tratta dell’interfaccia grafica per macchine UNIX
Ha una elevata configurabilità
Si basa sull’utilizzo di dispositivi di puntamento generici
E’ distribuita gratuitamente
Il pacchetto X Window contiene molti applicativi
1. Giochi e software i documentazione
2. Tool per la grafica e la multimedialità
3. Strumenti per la programmazione
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
X Window (2/2)
ƒ
ƒ
ƒ
ƒ
ƒ
22 di 26
E’ presente anche un emulatore di terminale
L’aspetto grafico è controllato dal windows manager
Sono disponibili tutti i sorgenti
Esistono molti applicativi freeware in rete
Supporta quasi tutti gli hardware video
1. Schede grafiche
2. Adattatori e acceleratori grafici
3. Monitor
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Il copyright (1/2)
ƒ
ƒ
ƒ
ƒ
23 di 26
LINUX è coperto da una General Public License
La GPL stabilisce le norme per la diffusione e la modifica
LINUX è freeware open source
1. NON è detto che sia gratuito
2. I sorgenti sono liberamente modificabili
3. Non esistono limitazioni ai diritti di distribuzione
Un software free non è di pubblico dominio
1. Rimane la proprietà degli autori
2. Gli autori sono protetti dalle leggi sul copyright
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Il copyright (2/2)
ƒ
ƒ
ƒ
ƒ
ƒ
24 di 26
LINUX è freeware ma non shareware
1. Non è previsto invio di denaro per la diffusione
2. Si dispone da subito di una versione full
La licenza GPL si estende ai sorgenti modificati
1. Non è possibile introdurre licenze più restrittive
2. La diffusione può essere gratuita o a pagamento
La GPL pone ampi margini di scelta alle aziende venditrici
La GPL impone la diffusione dei sorgenti
Obiettivi della GPL
1. Incrementare la qualità del software
2. Non trarre profitto
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
La filosofia di LINUX (1/2)
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
25 di 26
Migliorare la qualità del software
Elevare le garanzie di controllo
1. Incrementare il numero di revisioni
2. Disporre di documentazione e reportistica avanzata
Rapida scoperta e soluzione dei bug
Un sistema operativo per hacker. Cioè per:
1. Programmatori appassionati
2. Utilizzatori interessati al miglioramento continuo
delle prestazioni
La community LINUX comunica per lo più via mailing list
Linus Torvalds mantiene un ruolo determinante
LINUX - Introduzione
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
La filosofia di LINUX (2/2)
ƒ
ƒ
ƒ
26 di 26
Per aggiungere o modificare funzionalità occorre
1. Rendere disponibile una versione alfa
2. Inviare un messaggio ad una delle mailing list degli
sviluppatori
3. Rispondere ai commenti o alle domande
4. Passare alla fase beta del codice
5. Passare alla versione definitiva
6. Chiedere a Linus di includere la modifica nel kernel
Il debugging avviene in poche ore
E’ uno dei più efficienti sforzi di sviluppo mai intrapresi
LINUX - Introduzione
G. Piscitelli - M. Ruta