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