La filosofia di LINUX (1/2) - SisInfLab

Transcript

La filosofia di LINUX (1/2) - SisInfLab
Corso di Sistemi Operativi
DEE - Politecnico di Bari
LINUX - Introduzione
1 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Cos’è LINUX?
E' il kernel del S.O. GNU/Linux
Sviluppato a partire dal kernel creato da Linus Torvalds nel 1991
Fornisce un'iterfaccia tra hardware e programmi-utente
(alternativa a Windows, Mac OS, MS-DOS, Solaris, …)
Si tratta di un clone di UNIX
Un po' di storia
All’epoca Torvalds era studente all’università di Helsinki
Linux è ispirato a Minix, S.O. UNIX-like sviluppato da Andrew
Tanenbaum
Nasce dall'idea di sviluppare un S.O. che tenga conto del
feedback degli utenti
2 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Free software & Open source
Richard Stallman: GNU (GNU's Not Unix) Project
Un programma è software libero se gli utenti del programma
godono delle quattro libertà fondamentali:
1. Libertà di eseguire il programma, per qualsiasi scopo.
2. Libertà di studiare come funziona il programma e di
modificarlo in modo da adattarlo alle proprie necessità.
L'accesso al codice sorgente ne è un prerequisito.
3. Libertà di ridistribuire copie in modo da aiutare il prossimo.
4. Libertà di migliorare il programma e distribuirne
pubblicamente i miglioramenti apportati, in modo tale che tutta
la comunità ne tragga beneficio. L'accesso al codice sorgente ne
è un prerequisito.
3 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
L'incontro
Linus Torvalds:
“Sadly, a kernel by itself gets you nowhere. To get a
working system you need a shell, compilers, a library etc.”
Richard Stallman:
“The GNU Hurd is not ready for production use. Fortunately,
another kernel is available. [It is called] Linux.. So combining the
necessary programs provided by GNU in Cambridge, Massachusetts
and a kernel, developed by Linus Torvalds in Helsinki, Finland, Linux
was born. Due to the physical distances involved […] Linux is an
operating system that came to life on the Internet. The Internet
would also be crucial in Linux's subsequent development as the
means of coordinating the work of all the developers that have made
Linux into what it is today.”
4 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
L'evoluzione
Nasce come “costola” di UNIX liberamente distribuibile
Inizialmente fu accessibile solo per gli “addetti ai lavori” (Anni '90)
Sono stati sviluppati programmi e driver specifici
Nascono compagnie, come la Red Hat, che portano Linux al livello di
qualsiasi altro S.O. user-friendly
Stabile e versatile
Può essere installato su home PC e server di rete
Maggiore affidabilità, minor costo
Torvalds oggi lavora alla manutenzione del “suo” kernel
Attualmente migliaia di sviluppatori lavorano al progetto
Oltre 20 milioni di utenti LINUX nel mondo
Ad oggi, è il S.O. che cresce più velocemente (numeri di versione)
5 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Free distribution → Sviluppo di numerose versioni
Come orientarsi?
Distribuzione: versione del S.O. pubblicamente disponibile per
l'uso. Soddisfa particolari esigenze (O.S. per desktop PC, web
server, gps device, smart phone, firewall, piattaforme Windows e
Macintosh, etc.)
Si tratta del pacchetto completo comprendente:
1. LINUX (vale a dire il nucleo)
2. Applicativi
E’ sviluppata da una comunità indipendente dalle altre
6 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
La potenza della “community”
Migliaia di sviluppatori lavorano giornalmente al progetto
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 Documentation Project
7 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
I numeri di versione (1/2)
Sono due, diversi e riferiti a:
1. Distribuzione
2. Kernel
Versioning differente per distribuzione e kernel:
E’ più recente Red Hat 5.2 o SuSE 6.0?
E’ più recente LINUX 2.4 o 2.6?
Punti fermi
Una nuova distribuzione usa sempre il kernel più recente
Tutti gli applicativi hanno un proprio numero di versione
8 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
I numeri di versione (2/2)
Il kernel è l’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
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
8 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Distribuzioni desktop più diffuse
Fedora (http://www.linux.org/article/view/distro-fedora)
Ubuntu (http://www.linux.org/article/view/distro-ubuntu)
Linux Mint
(http://www.linux.org/article/view/distro-mint)
Distribuzioni server più diffuse
Red Hat
Debian
OpenSUSE
Slackware
CentOS
10 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Il copyright (1/2)
LINUX è coperto da una GNU General Public License
La GPL stabilisce le norme per l'uso, 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
11 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Il copyright (2/2)
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
12 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Installazione
Dual boot:
Partizione
Virtual machine
WUBI (Windows-based Ubuntu Installer)
Live cd:
Avvio del S.O. da cd
Consente di provare differenti distribuzioni
http://www.ubuntu.com/download/desktop
13 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Caratteristiche del sistema
Le funzionalità
Il kernel
Programmi di servizio
Elaboratori di testi e videoscrittura
Applicativi commerciali
Supporto alla programmazione
X Window
Filosofia progettuale
14 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Funzionalità di base
Scheduling dei processi
Gestione della memoria virtuale
Gestione dei file
Gestione dell’input/output
Funzionalità avanzate
Editing e compilazione
Giochi, grafica e multimedialità
Supporto al networking
15 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Le funzionalità di base (1/4)
Multiuser:
più utenti possono interagire contemporaneamente (da
terminali diversi) con il sistema senza interferenze.
Ogni utente è individuato univocamente da un nome logico
(username).
Gli utenti sono suddivisi in gruppi, individuabili univocamente
mediante groupname.
L'utente root, amministratore di sistema, non ha alcuna
limitazione nell'accesso alle risorse del sistema stesso.
16 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Le funzionalità di base (2/4)
Multitasking:
il suo nucleo può supportare la contemporanea esecuzione
di più processi gestiti a divisione di tempo.
Compatibilità con molte architetture di CPU
1. Intel x86 e Pentium
2. Sparc, Alpha, PowerPC
3. Multiprocessing (fino a 16 processori paralleli)
17 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Le funzionalità di base (3/4)
Compatibilità con i file system:
1. ISO 9660 (CD- ROM)
2. MS-DOS e Windows
3. OS/2, Apple, Amiga
18 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Le funzionalità di base (4/4)
Compatibile con la maggioranza degli standard UNIX
Controllo diretto dei job in esecuzione
Console virtuale (modalità testuale)
Coesistenza con altri S.O.
Portabile (linguaggio C)
Grande attenzione al networking (integrazione di sistema)
1. Driver per TCP/IP (client e servizi per FTP, Telnet,
SMTP, HTTP)
2. Driver per PPP
3. Driver per SLIP e PLIP
19 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Applicazioni
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
20 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Il kernel
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
21 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Programmi di servizio (1/2)
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
22 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Programmi di servizio (2/2)
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)
23 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Elaboratori di testo e videoscrittura (1/2)
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
24 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
25 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Elaboratori di testo e videoscrittura (2/2)
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
26 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Applicativi commerciali (1/2)
Attenzione crescente delle software house verso LINUX
Sun Microsystem Inc. ha prodotto OpenOffice
1. Videoscrittura (Writer)
2. Foglio Elettronico (Calc)
3. Database (Base)
4. Editor scientifico (Math)
5. Presentation Manager (Impress)
disponibile gratuitamente e in grado di leggere i
formati più diffusi
Corel produce versioni LINUX di WordPerfect
27 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Applicativi commerciali (2/2)
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
28 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Supporto alla programmazione (1/2)
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
29 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
Supporto alla programmazione (2/2)
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
30 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
X Window (1/3)
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 di documentazione
2. Tool per la grafica e la multimedialità
3. Strumenti per la programmazione
31 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
X Window (2/3)
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
32 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
X Window (3/3)
Tutte le distribuzioni usano X Window creato da XFree86
1. Basato su X11R6 (X11 release 6)
2. E’ nella directory usr/X11R6
Deve essere configurato
1. Mediante un file testuale (xf86Config)
2. Mediante un programma a menu (XConfigurator)
E’ stratificato e modulare
1. X Server
2. Window Manager
3. Desktop Manager (KDE, Gnome)
33 di 35
LINUX – Graphical User Interface
G. Piscitelli - M. Ruta
Corso di Sistemi Operativi
DEE - Politecnico di Bari
La filosofia di LINUX (1/2)
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
34 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini
Corso di Sistemi Operativi
DEE - Politecnico di Bari
La filosofia di LINUX (2/2)
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 L. Torvalds di includere la modifica nel
kernel
Il debugging avviene in poche ore
E’ uno dei più efficienti sforzi di sviluppo mai intrapresi
35 di 35
LINUX - Introduzione
G. Piscitelli - M. Ruta - S. Giannini