Il software libero
Che cos'è il software libero? E perché molta gente vi contribuisce? Sono queste alcune delle domande che molta gente si pone e a cui cercheremo di dare una risposta, benché non esaustiva. Il software libero prende forma come movimento culturale attorno agli anni ottanta per merito di Richard Stallman, il padre fondatore del movimento GNU1 (acronimo ricorsivo che indica “GNU's Not Unix”, “GNU Non è Unix”), in risposta a un continuo proliferare di programmi proprietari e chiusi. Il movimento del software libero e il movimento GNU, nacquero per preservare le libertà dei programmatori e degli utenti, minacciate da questa pratica di chiusura delle informazioni, pratica che, attorno agli anni '60-'70, era poco utilizzata e i programmatori potevano scambiarsi idee e codice in tutta libertà. Il software libero è quindi un principio di libertà, non di prezzo. La libertà è la libertà dell'utente di eseguire, copiare, distribuire, studiare, modificare e migliorare il software. Nella definizione canonica di software libero, sono identificati quattro livelli di libertà:
- la libertà di eseguire il programma, per qualsiasi scopo (libertà 0);
- la libertà di studiare il programma e adattarlo alle proprie esigenze (libertà 1);
- la libertà di distribuire copie del programma per aiutare gli altri (libertà 2);
- a libertà di migliorare il programma e rilasciare liberamente le modifiche apportate, cosicché tutta la comunità ne tragga beneficio (libertà 3).
Un programma, per definirsi vero software libero, deve garantire tutte queste quattro libertà (è pratica comune degli informatici iniziare a contare da zero!). Lo sviluppo e la promozione del software libero sono compiti affidati alla Free Software Foundation (abbreviata in FSF), un'organizzazione no-profit fondata da Richard Stallman il 4 Ottobre 1985. La FSF gestisce molti progetti importanti per la difussione e lo sviluppo del software libero, come ad esempio la Licenza GPL, di cui parleremo in seguito.
L'aspetto "umano" del software libero
Molte persone si avvicinano per la prima volta per cercare di capire questa “cosa” chiamata software libero, e ne restano colpiti tanto da parteciparne attivamente. Ma che cosa fa scattare questa molla? Noi. È la nostra curiosità di capire come funzionano le cose, vedere da vicino e toccare “con mano” lo sviluppo di un progetto, aiutare altre persone nella risoluzione di problemi di qualsiasi natura, tecnica e non, a farci contribuire. Per molti è un fattore intrinseco: farlo per il semplice gusto di farlo, per aiutare altre persone e per far parte di questa comunità di persone. Queste persone valutano l'attività in quanto tale, per il divertimento o la sfida che questa attività implica o perché si sentono obbligate nel ricambiare la libertà che ricevono contribuendo alla vita stessa del software libero. Non sono da sottovalutare nemmeno gli aspetti economici che spingono delle persone a contribuire per il software libero: molte aziende di informatica assumo programmatori, e non solo, per lavorare attivamente in progetti legati al mondo del software libero. Il software libero non è secondo a nessuno, anzi, contribuisce ad allacciare rapporti tra le persone, anche di paesi e culture diverse dalle nostre, consentendo un libero scambio di idee e contribuendo così ad aumentare le nostre conoscenze e la nostra competenza. Il software libero è tutto questo, ma è anche molto di più: è una filosofia, è un pensiero, è una comunità, è una sensazione di libertà. Spiegare il software libero e il suo movimento non può essere fatto in poche semplici righe di testo, per capirlo profondamente bisogna viverlo. Anche noi siamo software libero.
Cosa rende migliore il software libero
Essendo un programma sviluppato secondo le "quattro libertà" (di cui sopra) modificabile da chiunque, qualsiasi sviluppatore o programmatore può apportare modifiche al programma, il che implica che il software sviluppato secondo questi "canoni" cresca e migliori in modo esponenziale in un arco di tempo relativamente breve, in quanto ognuno può modificarlo secondo le proprie esigenze, oltre a poter correggere errori nel programma. Ogni utente, infatti, ha la possibilità di segnalare eventuali errori nel codice: non appena uno sviluppatore o anche un comune utente (con le conoscenze adeguate) verrà a conoscenza di tale errore, il problema verrà risolto, rendendo il programma sempre migliore.
Licenza GPL
La GNU General Public License (o GPL) è una licenza per il software libero. La prima versione di tale licenza risale al 1989 e fu scritta da Richard Stallman ed Eben Moglen. Da allora la licenza ha subito molte modifiche tali da rendere necessario il rilascio di altre due versioni dopo la 1.0 dell 1989, ossia la GNU GPLv2 del 1991 la GNU GPLv3 del 2007. Alla base delle tre versioni e della GNU GPL ci sono le libertà di utilizzo, modifica, copia e distribuzione tipiche del software libero. L'aspetto che distingue la licenza GNU GPL dalle altre licenze per software libero (e quello che probabilmente ha reso tale licenza tra le più utilizzate) è quello commerciale, ossia la possibilità di poter distribuire il software sia gratuitamente che a pagamento. In ogni caso, la distribuzione del software obbliga chi lo distribuisce a rendere disponibilie il codice sorgente, ossia l'insieme d'istruzioni del linguaggio di programmazione utilizzato per la creazione del software.
GNU/Linux
Fin'ora abbiamo parlato del software libero sotto vari aspetti, ma cosa ha a che fare con GNU/Linux? La risposta è semplice: GNU/Linux è un sistema operativo libero. Questo significa che gode di tutte le proprietà relative al software libero, tanto da essere distribuito con una licenza GNU GPL. Il nome GNU/Linux deriva dal fatto che il sistama operativo è il risultato dell'interazione tra il progetto GNU con il kernel Linux. All'inizio il progetto GNU utilizzava un altro kernel, HURD, ma il fatto che si trattava di un kernel non ancora "pronto" ed affidabile (tutt'oggi il progetto è ancora considerato in fase sperimentale), fece cadere la scelta sul kernel sviluppato da Linus Torvalds, Linux, appunto.
Breve descrizione del kernel
Con il termine kernel si fa riferimento ad un particolare software in grado di gestire l’accesso all’hardware da parte dei processi di esecuzione sul computer. Dalla precedente definizione e’ chiaro che il kernel non e’ il sistema operativo, cosa che in molti erroneamente pensano. Il kernel, invece, e’ solo una parte del sistema operativo.
Chi è, e cosa fa Linux?
I programmi, per poter funzionare, hanno necessità di interagire con le parti fisiche del computer, con l'hardware: ad esempio bisogna "chidere" al processore di svolgere determinati calcoli, i cui risultati verranno memorizzati sull'hard disk. Il kernel è un software che ha il compito di fornire ai programmi in esecuzione sull'elaboratore un accesso sicuro e controllato all'hardware. Dato che possono esserne eseguiti simultaneamente più di uno, il kernel ha anche la responsabilità di ripartire le risorse hardware tra i programmi. Insomma si occupa di gestire i "problemi" di basso livello della macchina. Linux è il kernel di un sistema GNU/Linux. Anche Windows e i Mac hanno un proprio kernel (il kernel Mac, è un lontano cugino del kernel Linux). Il buon funzionamento del kernel, è alla base della stabilità della macchina nel suo complesso. Cosa succede se il kernel non funziona bene? I programmi si piantano, vi sono perdite di dati, si è costretti ad un lavoro sostanzialmente inefficiente sul nostro pc. Il kernel Linux si è dimostrato davvero stabile a studi scientifici: Coverity, che sviluppa strumenti per analizzare il codice sorgente, ha dimostrato che il kernel Linux (versione 2.6.12) presenta 985 difetti in 5,7 milioni di righe di sorgente, mentre in media, un software a codice chiuso delle stesse dimensioni presenta 171.000 bug. Non c'è paragone.
Perchè scegliere GNU/Linux?
Potete considerare la possibilità di sostituire il vostro sistema operativo Windows e passare a GNU/Linux se condividete le seguenti motivazioni:
- condividete i principi che sono alla base del Free Software, cioè le libertà che esso vi concede nel copiarlo, eseguirlo, modificarlo o redistribuirlo;
- siete stanchi di virus, worm, cavalli di troia ecc...;
- perchè è gratis (pur essendo free in quanto libero e non in quanto gratis questo è comunque un dato di fatto);
- perchè vi offre stabilità, sicurezza, aggiornamenti tempestivi, la possibilità di ricorrere ad un supporto gratuito rivolgendovi a forum, mailing list ecc...
Sappiate però che non siete assolutamente soli in questa "impresa". Gli utilizzatori di Linux spesso formano gruppi di ritrovo per condividere la loro passione, denominati Linux User Group (LUG). I LUG hanno base territoriale, solitamente a livello di provincia: prova a consultare questa pagina, per sapere qual'è il LUG a te più vicino. La troverai sicuramente gente ben felice di darti una mano nell'installazione, o nella risoluzione degli eventuali problemi che incontrerai. E' necessaria pazienza, soprattutto agli inizi; e' normale che per imparare ad utilizzare un nuovo strumento occorra un minimo di tempo. Bisogna però dire che al giorno d'oggi, un sistema GNU/Linux è alla portata di tutti; tanti sono stati i suoi cambiamenti al fine di rendere intuitivo il suo utilizzo. Una volta si utilizzava il pc con Linux prettamente comandando ad un terminale; oggi invece sono stati sviluppate numerosi programmi ed utility ad interfaccia grafica , che non hanno nulla a che invidiare a quelli presenti in altri sistemi operativi...pensate che sono addirittura disponibili distribuzioni esressamente rivolte ad un utenza anziana, in linea di massima a completo digiuno di informatica! (http://www.eldy.org).
Le distribuzioni
Nel linguaggio quotidiano, con l’espressione “io uso Linux”, non intendiamo solo dire che usiamo il kernel Linux, ma che stiamo utilizzando una distribuzione GNU/Linux. Le distribuzioni Linux (abbreviate in distro) sono dei sistemi operativi che condividono il kernel Linux. Le distribuzioni Linux attualmente esistenti sono tantissime. Questo e’ dovuto al fatto che ognuno puo’, secondo la licenza GNU GPL, modificarle e distribuirle. Ma cosa differenzia tra loro le distribuzioni? Le differenzia il cosidetto parco software, ossia tutti i softwares che la societa’ o la comunita’ che gestisce la distribuzione decidere di includere nella stessa. Tra le distribuzioni piu’ usate al momento vi e’ Ubuntu. La scelta di questa distro e’ consigliata soprattutto a chi entra per la prima volta nel mondo Linux. Questo perche’ sono presenti molti software che consentono di gestire quasi tutte le operazioni che compie un utente normale attraverso l’interfaccia grafica.
Per Ubuntu, come per altre distribuzioni, e’ presente una versione Live CD, che consente di provare il sistema operativo attraverso l’utilizzo di un CD, senza installare nulla e senza occupare spazio sul proprio hard disk.
Ubuntu
Ubuntu è un sistema operativo libero ed open source basato su GNU/Linux che parte dall'ampia base Debian e aggiunge: edizioni regolari (ogni sei mesi), un chiaro fuoco sull'utente e sulla facilità d'uso ("it should Just Work", TM) ed un impegno ad aggiornamenti di sicurezza con 18 mesi di supporto per ogni edizione (e con la 6.06 LTS si hanno 3 anni sui desktop e 5 sui server!). Ubuntu è rilasciato con la più recente edizione di GNOME ed una selezione di software per desktop e server che porta verso un'esperienza comoda sul desktop a partire da un unico CD d'installazione.
