Guida introduttiva al mondo GNU/Linux. * * Autor
Transcript
Guida introduttiva al mondo GNU/Linux. * * Autor
/************************************************************************** * * Guida introduttiva al mondo GNU/Linux. * * Autore: Salvatore "sNeo" Giugliano * Email: [email protected] * ICQ: 116699222 * IRC: server 'irc.azzurra.org'; nick 'sNeo' * * Ultimo aggiornamento: 19 Giugno 2004 **************************************************************************/ -- Indice 1] Intro 2] La storia 2.1] Unix e BSD 2.2] RMS e GNU 2.3] Linus 3] Mondo libero 3.1] Distribuzioni 4] Free Software 4.1] Le libertà 4.2] Categorie 5] Open Source 5.1] Open source VS Free Software 6] Licenze 6.1] BSD 6.2] GPL 7] Miti da sfatare 8] Mappa storica 9] Riferimenti -1] Intro Questa guida introduce il mondo GNU/Linux e quello del Free Software (software libero) delineando un po' la storia, le diverse licenze del software e i due principali movimenti "liberi", free software e open source. Siete liberi di copiare e ridistribuire come volete questo documento, prima però mi farebbe piacere saperlo. Andiamo subito al sodo! 2] La storia Prima che l'informatica diventasse di uso comune e che i pc si trasformassero in veri e propri elettrodomestici, i codici sorgenti erano accessibili a tutti, da hobbisti a dottoroni, da smanettoni a professori; siamo negli anni 70 e 80, epoca in cui si delineavano le prime linee guida di quello che sarà l'informatica del futuro, sempre più closed source e proprietaria. In questo periodo, mentre Bill Gates scriveva in una lettera per hobbisti il suo modello di software proprietario, Richard Stallman iniziò la sua crociata contro questo modello closed source. Sono questi due uomini ad iniziare due modelli contrapposti dell'informatica che sarà e che è adesso: il sistema proprietario e quello libero. Vediamo in dettaglio cosa è successo in quegli anni. 2.1] Unix e BSD Negli anni 70 la AT&T aveva sviluppato un sistema operativo, Unix. Le università erano i primi ad utilizzarlo. Questo Os (Sistema Operativo) veniva fornito alle università senza alcun supporto tecnico e ad un costo contenuto. Senza nessun sostegno da parte della softwarehouse, gli studenti delle università erano sollecitati e motivati alla cooperazione attorno a questo sistema operativo. Il luogo in cui si riscosse maggior popolarità attorno a questo Os fu a Berkeley in California, qui, infatti, un gruppo di studenti realizzarono una variante di Unix nominata BSD (Berkeley Software Distribution). Questa distribuzione veniva utilizzata solo in ambiente universitario e nelle aziende che avevano acquistato i diritti per utilizzare il codice sorgente di Unix originale. Fino a quando si decise di ripulire lo Unix BSD dal codice proprietario. Nacquero così alcune varianti libere che utilizzavano la licenza BSD.. come NetBSD, FreeBSD e OpenBSD. 2.2] RMS e GNU L'inizio della filosofia e quindi all'idea di libertà informatica è da attribuire a Richard Stallman. RMS (il suo diminutivo) fondò nel 1985 la FSF "Free Software Fondation" per diffondere la filosofia del software libero. RMS fu uno dei primi a capire che la concezione di software proprietario è antisociale. Motivato da queste iniziative diede vita al progetto GNU (GNU Is Not Unix). Voleva creare un sistema simile a Unix ma che non era Unix: uno Unix non proprietario, ma libero, con il codice visibile e modificabile da chiunque. Queste idee filosofiche si tradussero in pratica nella redazione di un contratto di licenza d'uso, la "GPL" General Public License, studiato appositamente per proteggere il software libero in modo che non potesse essere accaparrato da chi poi avrebbe potuto impedirne la diffusione libera. Per questo motivo, oggi il copyright di software protetto in questo modo, viene definito copyleft. RMS inseguito iniziò a creare i vari "pezzi" che compongono un sistema operativo: un compilatore (gcc (GNU C Compiler)), un editor di testo (emacs) e tanti altri. Infine l'unico pezzo che rimaneva per completare il sistema era il kernel. 2.3] Linus Al sistema GNU ora mancava soltanto il kernel. Agli inizi degli anni 90 in Finlandia c'era Linus Torvalds, giovane studente dell'università di Helsinki, che stava utilizzando il gcc per compilare il suo micro-kernel, che funzionava con l'aiuto di Minix, il quale poi, sarebbe diventato Linux. Minix è un sistema operativo didattico creato dal professore Andrew S. Tanenbaum. Dopo il primo rilascio di Linux (proprio con la licenza GPL), alcuni smanettoni non ci pensarono su due volte e aggiunsero il kernel Linux all'interno di GNU; il puzzle era stato completato, ed ecco spiegata anche la combinazione GNU/Linux. Con Linux, il kernel, e GNU, la piattaforma e la struttura ricca di software, era nato un sistema operativo completo e flessibile. 3] Mondo libero Linux non è solo un sistema operativo, è molto di più, alla base c'è un pensiero, un'etica, se vogliamo, una filosofia di affrontare l'informatica e il mondo del pc completamente "nuovo" e dinamico. La libertà che accennavo inizialmente è la possibilità di poter cambiare a proprio piacere il software, di modificarlo dato che si ha la possibilità di accedere ai sorgenti. Pensate a tutte le invenzioni scientifiche o a quelle matematiche, se non fossero accessibili a tutti non ci saremmo evoluti in quello che siamo oggi, la stessa cosa vale per l'informatica, se i sorgenti sono accessibili, tutti (anche quelli che non possono permettersi di comprare brevetti o addirittura intere software-house (come fa la Micro$oft), hanno la possibilità di potenziare il proprio software e quello degli altri. Linux, non è altro che il più grande progetto opensource, vedremo più avanti cosa significa. Attualmente collaborano migliaia di utenti al suo miglioramento, e pensare che Linus Torvalds voleva solo modificare minix per renderlo più confortevole, ma alla fine si rese conto che stava creando qualcosa di originale e altri insieme a lui lo aiutarono a svilupparlo. 3.1] Distribuzioni Grazie a questa libertà si è potuto realizzare svariate "versioni" chiamate distribuzioni GNU/Linux, come Slackware, Debian, Gentoo, ecc. Ma anche a livello commerciale come la Suse, Redhat, Mandrake, ecc. Le distribuzioni differiscono per molti aspetti: - gestione dei pacchetti (packet manager) - diversa scelta di pacchetti/programmi - l'utilizzo o meno di GUI per il configuramento del sistema - sistema di init Ogni distro cerca di creare un packet manager il più affidabile possibile. Cerchiamo di capire cosa sia effettivamente un pacchetto: non è altro che un file compresso contenente il o i binari di un determinato programma. Questi pacchetti vengono mantenuti e controllati da un sistema chiamato packet manager, apt sulla Debian, emerge su Gentoo, ecc. Altre distro invece non usano un tool simile, lasciando all'utente il pieno controllo su cosa si debba installare, come ad esempio la Slackware (anche se ultimamente ci sono vari progetti ma niente di ufficiale). Una distribuizione può inserire i programmi che vuole, infatti ci sono scelte molto diverse tra le distribuzioni di inserire o no un determinato software. Le distribuzioni le possiamo suddividire, secondo il mio punto di vista, in distro per "niubbi" e distro per "esperti". Le prime sono ricche di tool grafici "GUI" che aiutano l'utente a configurare o anche ad usare più semplicemente il sistema, dato che vengono in appoggio queste comode e intuitive GUI. Mentre le altre distro lasciano all'utente di configurare "a mano" il sistema utilizzando un unico strumento: la shell (riga di comando). 4] Free Software Il termine free software è stato coniato da Richard Stallman e deve essere inteso come software libero e non come software gratuito, non centra nulla con il prezzo, per essere definito libero il software deve attenersi a quattro tipi di libertà. 4.1] Le libertà Libertà 0 Libertà di eseguire il programma per qualunque scopo Libertà 1 Libertà di studiare il codice sorgente del programma e di adattarlo alle proprie esigenze Libertà 2 Libertà di ridistribuire il software Libertà 3 Libertà di modificare il software e rendere pubblico i miglioramenti Il free software quindi ha una massima libertà di poter essere studiato, modificato e ridistribuito; ma anche di essere commercializzato! Infatti software libero non vuol dire software non commerciale, ma può essere venduto a patto che mantenga le sue libertà. 4.2] Categorie Il software libero può essere di diversi tipi: Software di dominio pubblico Il software di dominio pubblico è software senza copyright. Questo tipo di software è libero, solo che, non avendo un copyright, non ha nemmeno una licenza e chiunque può farne quello che vuole, anche appropriarsi dei diritti. Questo implica che alcune copie, o varianti di questo software possono non essere più libere. Talvolta si usa il termine "dominio pubblico" in un'accezione vaga per intendere libero o "disponibile gratuitamente". Tuttavia "di dominio pubblico" è un termine legale che significa precisamente "senza copyright". Per chiarezza, si consiglia di usare "di dominio pubblico" solo con questo significato, e di usare altri termini per intendere gli altri significati. Software con permesso d'autore (copyleft) La parola copyleft (permesso d'autore) è un'invenzione di RMS e vuole rappresentare il copyright di chi, mentre difende il proprio diritto di autore, vuole difendere la libertà della sua opera, imponendo che questa e le sue derivazioni restino libere. In pratica, una licenza appartenente alla categoria «copyleft» impedisce che chi ridistribuisce il software (originale o modificato che sia) possa aggiungere delle restrizioni ulteriori. Il classico esempio di licenza di questo tipo è la licenza pubblica GNU-GPL Software senza permesso d'autore L'autore di software libero senza permesso d'autore dà il permesso di ridistribuire e modificare il programma, e anche di aggiungervi ulteriori restrizioni. Se un programma è libero, ma non ha permesso d'autore, alcune copie o versioni modificate possono non essere affatto libere. Un'azienda di software può compilare il programma, con o senza modifiche, e distribuire il file eseguibile come un prodotto software proprietario. 5] Open Source Nel 1998 Bruce Perens, Eric Raymond ed altri del mondo del software libero capirono che il termine free software creava delle ambiguità con il suo falso significato di gratuito, soprattutto nel campo degli affari. Decisero così di creare una definizione più chiara, evitando ogni riferimento etico-filosofico: Open Source. Nella (OSD) "open source definition" vengono stilati dieci punti dove si descrive questo nuovo modello di fare il software. Open source non significa solo "codice aperto" ma molto altro. Il software deve essere ridistribuito liberamente senza alcuna restrizione e deve includere il codice sorgente, quindi deve essere distribuito sia nella forma sorgente che in quella binaria. La licenza deve permettere le modifiche e i lavori derivati, e devono essere distribuiti sotto gli stessi termini della licenza del software originale. Per essere certificato opensource il software deve avere una licenza che rispetta le suddette caratteristiche, come ad esempio la GNU GPL, la LGPL, la licenza BSD, la licenza X Consortium, l'Artistic, la MPL e la QPL sono esempi di licenze che sono considerate conformi alla Open Source Definition. 5.1] Open Source VS Free Software L'open source e il free software sembrerebbero due movimenti identici ma in realtà sono molo differenti. Quello Free Software è un movimento etico filosofico che non ha niente a che vedere con quello Open Source che cura "soltanto" gli aspetti pratici del software. 6] Licenze In questa parte della guida parlerò soltanto di due licenze: la licenza BSD e la licenza GPL, dato che sono le due più utilizzate nell'ambiente freeSoftware-openSource. 6.1] BSD La licenza BSD è stata introdotta dall'università di Berkeley, questa particolare licenza è molto più permissiva della GPL, infatti permette la distribuzione dei sorgenti, questo è normale, ma permette anche a chi modifica i sorgenti di ridistribuire il software modificato sotto una licenza diversa quindi anche sotto una licenza non più libera! Ad esempio può succedere che un software che sia sotto questa licenza venga preso, modificato e messo in vendita rimuovendo le libertà! Questa licenza è un classico esempio di software libero senza copyleft. 6.2] GPL La GPL (General Public License) è intesa a garantire la libertà di condividere e modificare il software libero. Questa licenza fa si che il software pubblicato sotto GPL rimanga sempre, dopo eventuali modifiche al codice sorgente fatto da terzi, sotto la stessa licenza. È possibile anche che il software venga commercializzato a patto che le libertà vengano rispettate. È un classico esempio di software libero con copyleft. 7] Miti da sfatare Il software libero è gratuito Falso. Libero come già detto in precedenza non significa gratuito anche se la maggior parte del software libero viene rilasciato a costo zero. Il software gratuito è libero Falso. Il software gratuito, definito freeware, non ha niente a che vedere con la libertà infatti molti programmi proprietari vengono distribuiti gratuitamente. Il software libero è privo di copyright Falso. Il software è di pubblico dominio e ha una licenza, e può avere un copyleft nel caso della GPL o di molte altre licenze. 8] Mappa storica 2004 Linus rilascia Linux 2.6 2001 Linus rilascia Linux 2.4 1998 Viene creata la definizione di Open Source Linus rilascia Linux 2.110 che ha 1.5 milioni righe di codice 1997 Linus rilascia Linux 2.1 che ha 800.000 righe di codice 1995 Linus rilascia Linux 1.2 che ha 250.000 righe di codice 1993 Linus rilascia Linux 0.99 che ha 100.000 righe di codice 1992 Linus rilascia Linux 0.96 che ha 40.000 righe di codice 1991 Linus Torvalds rilascia Linux 0.01, il kernel per il sistema GNU 1990 Il sistema GNU è quasi completo manca solo il kernel 1985 Richard Stallman fonda la FSF 1983 Richard Stallman lascia il MIT per dedicarsi allo sviluppo di GNU 1976 Bill Gates scrive la sua lettera sul modello proprietario 9] Riferimenti Codice Libero - http://www.italios.it/linux/codice_libero.pdf Linux, solo per divertimento - http://linux.html.it/libri/just_for_fun.htm Appunti di informatica libera - http://it.tldp.org/AppuntiLinux/ Free Software - http://www.gnu.org/philosophy/free-sw.it.html Licenza BSD - http://www.opensource.org/licenses/bsd-license.php Licenza GPL - http://www.gnu.org/copyleft/gpl.html