Seconda lezione del corso. Vengono qui introdotti i maggiori sistemi operativi alternativi a Windows. Viene brevemente illustrata la storia delle distribuzioni Linux (con maggiore accento all'ascendenza di Ubuntu). Vengono, infine, mostrate le possibilità di scelta, su un sistema linux, in merito ad ambienti grafici.
1. Mazza Dario Merlino Sebastiano
Linux
&
Open Source
Lezione DUE
Linux Using
2. “Sei fortunato a non essere un mio studente. Non prenderesti un
buon voto per un tale progetto.”
Andrew S. Tanenbaum
parlando a Linus Torvalds e riferendosi al suo progetto: Linux
Mazza Dario – Merlino Sebastiano 2
3. Sistemi Operativi
● Il sistema operativo è quel componente software responsabile
del controllo e della gestione dell'hardware del computer e
dei programmi che su questo vengono eseguiti.
● Il sistema operativo fornisce un'astrazione della macchina
sottostante ossia fornisce un'interfaccia software
(generalmente grafica) per accedere alle risorse del sistema
(come dischi, schermo, tastiera ecc)
● Il compito principale del sistema operativo è quello di
permettere all'utente di interagire con la macchina.
Mazza Dario – Merlino Sebastiano 3
4. Componenti principali di un
Sistema Operativo
● KERNEL: Il kernel è il cuore di un sistema operativo e fornisce ai
componenti del sistema operativo e ai programmi le funzioni
fondamentali per un accesso controllato all'hardware (evitandogli
dettagli sulla sua gestione).
● FILE SYSTEM: Il file system definisce come i file vengono
immagazzinati e organizzati su un dispositivo di archiviazione
(hard disk, CD, ecc). Vi sono diversi tipi di file system che si
differenziano sulla politica di gestione dei file. I principali tipi di
file system sono Ext3 (usato dai sistemi Linux), HFS (usato dai
sistemi Mac OS), NTFS e FAT32 (usati dai sistemi Windows)
● INTERFACCIA GRAFICA: che permette agli essere umani di
interagire con il sistema.
Mazza Dario – Merlino Sebastiano 4
5. Mac OS X
Mac OS X è un sistema operativo sviluppato dalla Apple Inc. Questo sistema
operativo non è semplicemente la decima versione di Mac OS ( in uso sui
computer Macintosh dal 1984) ma è un sistema completamente nuovo che
unisce il nucleo Darwin, di derivazione Unix (FreeBSD) e rilasciato sotto
licenza open source, ad un'interfaccia grafica all'avanguardia chiamata
Acqua. Quest'ultima è considerata da molti utenti Mac OS X la migliore
interfaccia grafica esistente ed è stata imitata da molti.
Mac OS X è in grado di eseguire anche
programmi GNU/Linux previa compilazione.
Le maggiori caratteristiche di Mac OS X
sono legate ad Aqua: Exposè (miniaturizza
sullo schermo tutte le finestre), Spaces (per
generare desktop virtuali), Dashboard (per
piccole applicazioni richiamabili con un
tasto) e molto altro.
Mazza Dario – Merlino Sebastiano 5
6. Solaris & OpenSolaris
Solaris è un sistema operativo per computer Sun Microsystems (anche se ora
può essere utilizzato anche su altri computer) ed è certificato come versione
di Unix. Si tratta di un sistema operativo proprietario quindi a codice chiuso,
ma dall'inizio del 2005 alcuni componenti vengono rilasciati sotto licenza
open source (CDDL) all'interno del progetto OpenSolaris.
OpenSolaris è basato in gran parte sul codice sorgente di Solaris ma tenta di
venire incontro agli utenti Linux fornendogli strumenti a loro familiari a
partire dall'interfaccia grafica e dalla shell dei comandi. Tutto il codice
sorgente di OpenSolaris è rilasciato sotto licenza
open source CDDL.
Mazza Dario – Merlino Sebastiano 6
7. FreeBSD
FreeBSD è un sistema operativo libero di tipo Unix derivato dallo Unix
dell'Università di Berkley (California). È stata la prima distribuzione ad
uscire su CD-ROM nel 1994.
FreeBSD è particolarmente utilizzato nei server per la sua stabilità e sicurezza
ma è anche usato per PC. Una sua particolarità è il sistema dei Port. Per
utilizzare un programma si scarica il codice sorgente del programma stesso e
di altri programmi da questo dipende ed in seguito i sorgenti vengono
compilati per generare l'eseguibile del programma. I port sono organizzati in
una struttura ad albero per mettere in evidenza le
dipendenze tra i vari programmi. Questo sistema è stato
superato dal sistema dei pacchetti introdotto da Debian e
ripreso da Ubuntu (in quanto derivata da Debian).
La figura rappresenta la mascotte di FreeBSD chiamato
Beastie.
Mazza Dario – Merlino Sebastiano 7
8. Linux & GNU/Linux
Linux è il nome del kernel sviluppato dal Linus Torvalds a
partire dal 1991. Il sistema operativo su cui si basano tutte le
distribuzioni è detto GNU/Linux in quanto si tratta
dell'integrazione del kernel Linux con software del sistema GNU
e altro software rilasciato sotto licenza GNU GPL. Inizialmente il
sistema fondava l'interazione con l'utente sulla shell dei comandi
ma con il passare del tempo è divenuta sempre Tux, mascotte del
Kernel Linux
più evidente la necessità di un'interfaccia grafica
basata sulle finestre (come quella usata da Windows).
Il nome Linux, a dispetto dell'evidente assonanza con il nome del
suo principale sviluppatore (LINUs uniX), è da attribuire al nome
della cartella in cui era contenuta la prima versione scaricabile
del server. Il nome scelto da Linus Torvalds per la sua creatura
era Freax. In compenso è quasi sicuro che il nome della mascotte
sia dovuto allo sviluppatore TUX=Torvalds UniX.
Linus Torvalds
Mazza Dario – Merlino Sebastiano 8
9. Storia di Linux
Il giovane programmatore Linus Torvalds non era soddisfatto del sistema
operativo Minix, sviluppato dal prof. Andrew Tanenbaum a fini didattici.
Torvalds inizio a sviluppare del software per meglio comprendere il
funzionamento del suo computer. Ogni volta che si rendeva necessaria
l'aggiunta di una nuova funzionalità questa veniva sviluppata: alla fine di
questo processo Torvalds ottenne un intero kernel capace di supportare un
sistema operativo. Inizialmente Linux si basava su alcuni componenti di
Minix ma Torvalds non era soddisfatto della licenza di quest'ultimi che li
rendeva disponibili esclusivamente per usi didatti. Così le parti Minix
furono sostituite da componenti software GNU e Linux passò sotto la
licenza GPL. Non passo molto tempo prima che il sistema GNU/Linux
superasse in funzionalità Minix.
Ad oggi Linus Torvalds dirige ancora la sviluppo del kernel Linux ma gli
altri componenti sono sviluppati separatamente. Il compito di rilasciare un
sistema integrato, che unisca il kernel e gli strumenti di base con l'interfaccia
grafica e i software applicativi, è delegato alle distribuzioni.
Mazza Dario – Merlino Sebastiano 9
10. Distribuzione Linux
Una distribuzione Linux, detta anche distro, è una collezione di programmi
rilasciati come un unico pacchetto che include il kernel Linux e un insieme
di strumenti e programmi.
Società come Red Hat, Novel (con SUSE) e Canonical (con Ubuntu) e
progetti come Debian, Slackware e Gentoo assemblano e testano i vari
componenti e periodicamente rilasciano, la maggior parte delle volte
gratuitamente, la distribuzione.
Il successo delle distribuzioni è dovuto alla semplicità con cui permettono di
istallare sul proprio computer un sistema operativo funzionante. In questo
momento si contano più di 300 distribuzioni attive. Questo proliferare di
distribuzioni è basato sul fenomeno delle fork, ossia distribuzioni basate in
gran parte su altre e che si limitano ad estenderne o modificarne il
contenuto. Ubuntu è una fork di Debian ma ormai si è affrancata da ogni
vincolo di dipendenza dalla distribuzione madre.
La più vecchia distribuzione attiva è Slackware seguita subito da Debian: la
prima è stata fondata nel luglio 1993 mentre la seconda nell'agosto 1993.
Mazza Dario – Merlino Sebastiano 10
11. Ubuntu
Debian
Gentoo
Red Hat
Fedora
Slackware
SUSE
OpenSUSE
Mazza Dario – Merlino Sebastiano 11
12. Debian
Debian è una distribuzione Linux largamente usate e composta esclusivamente
da Software Libero. Ogni componente è sviluppato da una comunità di
volontari sparsi in tutto il mondo. Lo slogan ufficiale della distribuzione è
“Debian: the Universal Operating System”.
Il progetto Debian è stato fondato da Ian Murdok nel 1993 che insoddisfatto
della distribuzione SLS tentò all'inizio di modificarla ma poi decise di creare
una nuova distribuzione da zero. La prima versione stabile risale al 1996.
Debian è conosciuta per la sua aderenza alle filosofie di GNU e software libero,
per le rigide politiche sulla qualità dei pacchetti
rilasciati, il modo aperto di sviluppare e testare il
software ma soprattutto per la libertà di scelta
lasciata all'utente.
L'ultima release di Debian contava circa 23.000
pacchetti software contenuti nei 5 DVD scaricabili
gratuitamente dal sito www.debian.org.
Mazza Dario – Merlino Sebastiano 12
13. APT e pacchetti deb
Debian è anche conosciuta per il suo sistema di gestione dei pacchetti e di APT
(Advanced Packaging Tool). Questo programma integra un sistema di
risoluzione delle dipendenze (ossia pacchetti necessari all'istallazione) con la
possibilità di eseguire aggiornamenti e
di istallare pacchetti di versioni
differenti. Questo sistema, oltre a
permettere all'utente di creare un
sistema ibrido, rende il processo di
istallazione, aggiornamento e
rimozione dei software molto
semplice ed intuitivo (e richiede
raramente il riavvio del computer). I
pacchetti sono riuniti in archivi detti
repository che possono essere online
oppure offline (ad esempio i CD e i
DVD di distribuzione).
Mazza Dario – Merlino Sebastiano 13
14. Ubuntu
Ubuntu è una distribuzione basata su Debian e finanziata dalla Canonical.
Tutto il sistema è rilasciato sotto licenza GNU GPL. Il nome della
distribuzione deriva da un antico vocabolo zulu che significa “io sono ciò che
sono per merito di ciò che siamo tutti”: un inno alla filosofia open source.
Come si evince già dal motto “Linux per gli esseri umani”, Ubuntu mira
moltissimo sulla semplicità di utilizzo, l'ottimo riconoscimento e supporto
dell'hardware. Inoltre può vantare un vasto parco software costantemente
aggiornato tramite APT ed una notevole quantità di sistemi di gestione
basati su interfaccia grafica che sollevano l'utente
dall'utilizzo della shell. La versione desktop è stata
realizzata per rispondere alle più frequenti necessità
dell'utente medio come navigazione internet, gestione
immagini e documenti, svago e comunicazione.
Microsoft ha la fetta più grossa del mercato dei nuovi PC
desktop. Questo è un bug, e Ubuntu è concepito per risolverlo.
Mark Shuttleworth, ideatore di Ubuntu
Mazza Dario – Merlino Sebastiano 14
15. Ubuntu
Ubuntu è una fork di Debian ed applica anche lei la filosofia del software
libero fornendo solo pacchetti di questo tipo. Generalmente i pacchetti che si
trovano in Ubuntu derivano dal ramo instabile di Debian in modo da
bypassare il lungo iter di “stabilizzazione” del pacchetto tipico della
distribuzione madre. Ubuntu e Debian collaborano attivamente per lo sviluppo
e la risoluzione dei bug. Inoltre Ubuntu deriva integralmente da Debian il
sistema dei pacchetti, l'APT e la sua interfaccia grafica, il Synaptic.
Ubuntu ha delle sotto distribuzioni come Kubuntu (con l'ambiente desktop
KDE), Edubuntu (dedicata all'apprendimento e ai
bambini), Ubuntu Mobile/Server/Netbook (versioni
ottimizzate per supporti diversi dal PC desktop).
Mazza Dario – Merlino Sebastiano 15
16. Perché usare Linux?
I motivi per cui usare un sistema GNU/Linux sono molteplici e
generalmente sono molto personali ma si possono identificare 3
punti principali.
✔ Stabilità del Sistema
✔ Supporto della Comunità
✔ Motivazioni Etiche
Mazza Dario – Merlino Sebastiano 16
17. Stabilità del Sistema
Generalmente un sistema GNU/Linux risulta essere più stabile: i crash di
sistema sono praticamente inesistenti ed i crash delle applicazioni sono
isolati. Inoltre la frequenza dei crash dipende da che tipo di pacchetto e che
distribuzione si utilizza: un pacchetto un po' meno aggiornato ma
ampiamente testato assicura una maggiore stabilità.
Il sistema GNU/Linux inoltre ha delle performance “stabili” cioè non
subisce pesantemente il passare del tempo come succedeva con Windows:
possiamo istallare e rimuovere pacchetti quante volte vogliamo senza
rallentare il sistema, possiamo muovere quanti dati vogliamo senza dover
deframmentare il disco ecc.
Inoltre il sistema GNU/Linux è quasi immune al problema virus. Infatti il
sistema di sicurezza multi-utente rende più difficile accedere a parti vitali
del sistema operativo. Non essendo un sistema operativo molto usato GNU/
Linux non è stato oggetto di interesse ed inoltre ogni bug critico di sicurezza
in questi sistemi viene risolto in tempi brevissimi (a differenza di quanto
accade con Windows).
Mazza Dario – Merlino Sebastiano 17
18. Supporto della Comunità
La comunità GNU/Linux e Open Source è estremamente attiva e
presente. Ogni problema un utente riscontri sicuramente è stato
già affrontato, e possibilmente risolto, da altri utenti della
comunità. Inoltre tramite un servizio di Bug-Report è possibile
comunicare direttamente con gli sviluppatori.
La possibilità di poter leggere il codice permette di chiedere
consigli anche ad esperti esterni allo sviluppo del programma
per risolvere eventuali problemi.
Il 90% dei problemi riscontrati su un sistema GNU/Linux viene
risolto da una semplice ricerca su internet, consultando i Forum,
i Blog e le pagine tenute da sviluppatori o utenti GNU/Linux.
Mazza Dario – Merlino Sebastiano 18
19. Motivazioni Etiche
Le motivazioni etiche sono le stesse che ci spingono ad usare il software
libero e con codice sorgente aperto. Il prodotto software, come ogni
prodotto, deve essere intellettualmente proprietà di tutti: non deve succedere
che una conoscenza non venga condivisa con gli altri.
Ogni riga di codice scritta viene condivisa con la comunità per accrescerne
la conoscenza ma anche per ottenere un aiuto dalla comunità stessa:
l'appartenenza alla comunità richiede la condivisione della conoscenza ma ci
permette di sfruttare la conoscenza di tutti gli altri membri.
Utilizzare sistemi GNU/Linux toglie potere ai colossi dell'informatica che si
possono permettere qualsiasi cosa perché hanno un monopolio: far vedere
che una comunità può tranquillamente sviluppare software migliore di
quello prodotto dalle grandi software house ci permetterà di ridimensionare i
rapporti con queste ultime.
Mazza Dario – Merlino Sebastiano 19
20. Desktop Environmet
Con il nome Desktop Environmet, o anche Ambiente Desktop, è
l'interfaccia grafica che permette l'utilizzo di un computer attraverso oggetti
grafici, come icone e finestre. I sistemi operativi proprietari generalmente
utilizzano un solo Desktop Environment e vengono spesso identificati con il
sistema operativo stesso.
I sistemi basati su X Window System (il motore grafico dei sistemi Unix,
compreso Linux) permettono di cambiare desktop environment ma anche di
mischiarli per ottenere un sistema unico. Questo è possibile perché questo
tipo di desktop environment sono composti da un window manager e di altri
componenti software ( come applicazioni e librerie) per la
gestione del desktop.
Gli ambienti Desktop più diffusi sono i seguenti:
● GNOME
● KDE
● Xfce
Mazza Dario – Merlino Sebastiano 20
21. GNOME
GNOME (GNU Network Object Model Environment) è un desktop environment
creato inizialmente con l'obiettivo di un ambiente desktop e di sviluppo libero per
il sistema GNU/Linux. Per l'ottima qualità del lavoro è diventato l'ambiente
desktop ufficiale del progetto GNU. Gnome è al momento alla versione 2 e offre
un'enorme quantità di librerie e di applicazioni per semplificare la gestione del
sistema operativo.
GNOME è stato criticato da Linus Torvalds
perchè la sua struttura è unicamente orientata
alla semplicità d'uso a scapito dell'effettiva
possibilità di interagire con il sistema
operativo. È da notare comunque che questa
polemica è da sempre viva nella comunità
open source divisa tra chi vuole sacrificare la
configurabilità del software per renderlo più
usabile e chi vuol aumentare la configurabilità
rendendo il software molto poco usabile.
Mazza Dario – Merlino Sebastiano 21
22. KDE
KDE (K Desktop Environment) è un ambiente desktop grafico per postazioni
Unix. KDE è molto ricco di effetti grafici ed è caratterizzato da un aspetto
molto accattivante e da un elevato grado di personalizzazione. KDE e
GNOME sono i due principali ambienti desktop e sono in diretta concorrenza
tra di loro. KDE funziona sulla maggior parte dei sistemi di GNU/Linux ma
esiste anche una versione per Microsoft Windows. KDE viene concepito come
un desktop environment orientato prevalentemente ad utenti medio-avanzati,
per via dell'alta configurabilità dell'ambiente e dei suoi programmi(motivo per
cui è molto apprezzato da Linus
Torvalds). Tuttavia, grazie alla
notevole facilità d'uso e alla sua
ottima usabilità, KDE è istallato di
base da alcuni sistemi operativi come
Konqui, mascotte
SUSE e Kubuntu.
KDE
Mazza Dario – Merlino Sebastiano 22
23. Xfce
Xfce è un ambiente desktop per i sistemi GNU/Linux e
FreeBSD che richiede meno risorse dei più noti GNOME e KDE
e può quindi rivelarsi un compromesso tra leggerezza e
funzionalità. È abbastanza difficile trovare Xfce istallato di base
in una distribuzione ma vi sono rari casi come Xubuntu.
Mazza Dario – Merlino Sebastiano 23
24. Window Manager
Un window manager è un componente software che controlla la posizione e
l'aspetto delle finestre in un interfaccia grafica. Generalmente è un
componente di un desktop environment e lavora a stretto contatto con il
Window System, che si occupa di dialogare con la scheda grafica e lo
schermo. Gli elementi associati generalmente con un window manager sono
legate all'apertura, chiusura, allargamento, riduzione ad icona, spostamento e
ridimensionamento delle finestre e al mantenimento di una traccia per
ognuna di queste finestre.
I compositing window manager, come Compiz, consentono di creare e
disegnare le finestre come oggetti separati per poi riunirli: grazie a questo
possiamo ottenere effetti 2D e 3D molto avanzati.
Importanti window manager sono:
● Metacity ● Fluxbox
● Kwin ● Blackbox
● Compiz ● Window Maker
Mazza Dario – Merlino Sebastiano 24
25. Metacity-Kwin-Compiz
Metacity è il window manager di base di GNOME ma non è necessario per il
funzionamento di GNOME (in quanto possiamo usare altri window manager).
Metacity è fornito di poche opzioni di configurazione ed è considerato da molti
troppo semplicistico: per questo motivo la sua scelta come window manager di
base per GNOME non è ben vista da tutti.
Kwin è il window manager di KDE, è integrato in questo desktop environment
ed è ampiamente personalizzabile. Le ultime versioni di Kwin si sforzano di
rendere il sistema meno pesante dal punto di vista delle prestazioni.
Sia Metacity che Kwin possono essere usati indipendentemente dai loro
desktop environment.
Compiz è un compositing window manager e non è incluso in nessun desktop
environment ma può essere inserito in tutti. É stato il
primo a permettere di sfruttare tutta la potenza delle
schede video moderne per realizzare effetti visivi molto
suggestivi.
Mazza Dario – Merlino Sebastiano 25
26. Window Maker-Blackbox
Window Maker, o più semplicemente Wmaker, è un window manager
molto essenziale ma al contempo efficace, veloce ed efficiente. È spesso
usato in computer datati.
Blackbox è un window manager veloce e leggero con un'impostazione
grafica simile a Window Maker. Blackbox è molto semplicistico ma anche
molto flessibile e personalizzabile; si limita a gestire le finestre mentre icone
e altri strumenti sono delegate a terze parti. Blackbox si basa su tre punti:
● Fare una cosa e farla bene: gestire le finestre
● Mantenere tutto di dimensioni ridotte, semplice e veloce
● Seguire gli standard e utilizzare solo software che li seguano anch'essi.
Un desktop con WMaker Un desktop con Blackbox
Mazza Dario – Merlino Sebastiano 26
27. Fluxbox
Fluxbox è un window manager basato su Blackbox ma con un
grado di personalizzabilità ancora più alto e funzionalità
aggiuntive. La caratteristica principale di Fluxbox è la sua
leggerezza e la sua buona performance (così come per Blackbox)
ma questo si paga in termini di poche funzionalità disponibili al
momento dell'istallazione; per risolvere questo problema sono
disponibili tanti pacchetti satellite che
rendono disponibili funzioni come le
icone sul desktop. Il menù di sistema è
interamente personalizzabile, così come
tutto il sistema, agendo su semplici file di
testo (anche se è disponibile FluxConf,
un'interfaccia grafica per la configurazione).
Mazza Dario – Merlino Sebastiano 27