Linux & Open Source - Lezione 2

27
Linux Linux & Open Source Open Source Lezione DUE Lezione DUE Linux Using Linux Using Mazza Dario Merlino Sebastiano

description

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.

Transcript of Linux & Open Source - Lezione 2

Page 1: Linux & Open Source - Lezione 2

LinuxLinux&

Open SourceOpen SourceLezione DUELezione DUE

Linux UsingLinux Using

Mazza Dario Merlino Sebastiano

Page 2: Linux & Open Source - Lezione 2

“Sei fortunato a non essere un mio studente. Non prenderesti un buon voto per un tale progetto.”

Andrew S. Tanenbaumparlando a Linus Torvalds e riferendosi al suo progetto: Linux

Mazza Dario – Merlino Sebastiano 2

Page 3: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 4: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 5: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 6: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 7: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 8: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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

Linus Torvalds

Tux, mascotte delKernel Linux

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.

ma con il passare del tempo è divenuta sempre più evidente la necessità di un'interfaccia grafica

Page 9: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 10: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 11: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 11

Debian

Red Hat

Slackware

SUSE

OpenSUSE

Gentoo

Fedora

Ubuntu

Page 12: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 13: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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).

Page 14: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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 gestionebasati 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

Page 15: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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).

Page 16: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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

Page 17: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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).

Page 18: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 19: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 20: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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

Page 21: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 22: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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 SUSE e Kubuntu.

Konqui, mascotte KDE

Page 23: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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.

Page 24: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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● Kwin● Compiz

● Fluxbox● Blackbox● Window Maker

Page 25: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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 desktopenvironment 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.

Page 26: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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

Page 27: Linux & Open Source - Lezione 2

Mazza Dario – Merlino Sebastiano 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).