Il software libero è software pubblicato con una licenza che permette a chiunque di utilizzarlo e che ne incoraggia lo studio, le modifiche e la redistribuzione.
Per le sue caratteristiche, si contrappone al software proprietario ed è differente dalla concezione open source, incentrandosi sulla libertà dell'utente e non solo sull'apertura del codice sorgente, che è comunque un pre-requisito del software libero.
Le "quattro libertà"
Secondo Richard Stallman e la Free Software Foundation da lui fondata, un software si può definire libero solo se garantisce quattro "libertà fondamentali"[2]:
1. Libertà 0
Libertà di eseguire il programma per qualsiasi scopo.
2. Libertà 1
Libertà di studiare il programma e modificarlo[3].
3. Libertà 2
Libertà di ridistribuire copie del programma in modo da aiutare il prossimo.
4. Libertà 3
Libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio[3].
Un programma è software libero se l'utente ha tutte queste libertà. In particolare, se è libero di ridistribuire copie, con o senza modifiche, gratis o addebitando delle spese di distribuzione a chiunque ed ovunque.
Essere liberi di fare queste cose significa (tra l'altro) che non bisogna chiedere o pagare nessun permesso.
Buona parte del software libero viene distribuito con la licenza GNU GPL (GNU General Public License), scritta da Richard Stallman e Eben Moglen per garantire legalmente a tutti gli utenti le quattro libertà fondamentali. Dal punto di vista dello sviluppo software, la licenza GPL viene considerata una delle più restrittive, poiché impone che necessariamente ogni prodotto software derivato - ovvero, che modifica o usa codice sotto GPL - venga a sua volta distribuito con la stessa licenza. Anche MediaWiki, il software usato per Wikipedia, è distribuito con licenza GPL.
Una licenza simile, ma meno restrittiva, è la GNU LGPL (GNU Lesser General Public License), che permette di utilizzare il codice anche in software proprietario e sotto altre licenze opensource, purché le parti coperte da LGPL - anche se modificate - vengano comunque distribuite sotto la medesima licenza. In genere è utilizzata per librerie software.
Non tutte le licenze ritenute libere sono compatibili tra di loro, cioè in alcuni casi non è possibile prendere due sorgenti con due licenze libere ed unirle per ottenere un prodotto unico. Questo avviene quando non esista e non sia possibile creare una licenza che possa soddisfare i requisiti delle licenze originali. Ad esempio la licenza BSD originale, pur essendo considerata licenza di software libero, è incompatibile con la GPL; per ovviare al problema è stato necessario creare una "licenza BSD modificata" compatibile con la GPL.
Un'altra licenza degna di nota è l'Apache License, prodotta dalla Apache Software Foundation; la versione 2 di questa licenza è compatibile con la GPL versione 3 ma non con la GPL versione 2 . L'Apache License considera un prodotto derivato alla stregua della LGPL, ma è più liberale nella concessione delle proprietà intellettuali.
Le varie licenze libere possono contenere ulteriori limitazioni per alcune situazioni particolari; per esempio la GPL prevede che si possa esplicitamente vietare l'uso del software nelle nazioni dove tale licenza non è valida o dove dei brevetti software impediscono la distribuzione di tale software.
Le licenze d'uso non vietano in genere di vendere software libero e di solito non stabiliscono minimamente il possibile prezzo di vendita.
Licenze approvate dalla OSI o giudicate free dalla FSF.
Licenza Approvata
OSI Giudizio
della FSF
GNU General Public License (GPL) OS GPL
GNU Lesser General Public License (LGPL) OS GPL
license of the iMatix Standard Function Library GPL
licenza BSD originale OS free
licenza BSD modificata GPL
licenza MIT OS GPL
Qt Public License OS free
Expat license (MIT License) OS GPL
Standard ML of New Jersey Copyright License GPL
Cryptix General License GPL
license of ZLib, libpng OS GPL
license of Guile GPL
GNU Ada compile GPL
PHP License 2.02 free
PHP License 3.01 OS free
license of Python 1.6a2 and earlier versions OS GPL
license of Python 2.0.1, 2.1.1, and newer versions OS GPL
license of Python 1.6b1 and later versions, through 2.0 and 2.1 OS free
license of Perl GPL
Original Artistic License OS no
Clarified Artistic License GPL
Artistic License 2.0 GPL
LaTeX Project Public License free
Arphic Public License free
Apache License 1.0 OS free
Apache License 1.1 OS free
Zope Public License free
license of xinetd free
OpenLDAP License 2.3 free
Intel Open Source License OS GPL
Ricoh Source Code Public License
OS
Nokia Open Source License OS free
IBM Public License 1.0 OS free
Apple Public Source License OS no
Apple Public Source License v.2.0
free
Common Public License 0.5 OS free
Eiffel Forum License OS GPL (compatibile solo dalla v2)
Phorum License 1.2 free
license of Netscape Javascript GPL
Sun Industry Standards Source License 1.0 OS free
Sun Public License OS free
Sun Community Source License no
Sun Solaris Source Code (Foundation Release) License 1.1 no
Netscape Public License free
Mozilla Public License OS free
Mozilla Public License 1.1
OS
GPL per casi particolari
relativi alla sezione 13
Netizen Open Source License 1.0 free
W3C Software Notice and License OS GPL
Interbase Public License 1.0 free
Berkeley Database License (Sleepycat Software Product License) OS GPL
Motosoto License
OS
Vovida Software License 1.0
OS
Jabber Open Source License 1.0 OS free
FreeType license free
Open Compatibility License free
MITRE Collaborative Virtual Workspace License
OS
Nethack General Public License
OS
X.Net License
OS
Open Group Test Suite License
OS
Sintesi storica.
- 1978 UNIX e BSD
- I primi utenti di UNIX sono state le università, a cui in particolare questo sistema operativo veniva fornito a costo contenuto, con i sorgenti, ma senza alcun tipo di supporto tecnico, né alcuna garanzia. Proprio questa assenza di sostegno da parte della casa che lo aveva prodotto, assieme alla presenza dei sorgenti, stimolava la cooperazione tra gli utenti competenti, in pratica tra le università. Il maggior fermento intorno a UNIX si concentrò presso l'università della California a Berkeley, dove a partire dal 1978 si cominciò a distribuire una variante di questo sistema operativo: BSD (Berkeley software distribution). Per il software prodotto in questo modo, nacque una licenza d'uso che rimane il progenitore della filosofia del software libero: la licenza BSD.
- 1984 progetto GNU
- Nel 1984, Richard Stallman inizia il progetto GNU (Gnu's not Unix), per la realizzazione di un sistema operativo libero; libertà intesa come la possibilità data agli utenti di distribuire e modificare il software a seconda delle proprie esigenze e di poter distribuire anche le modifiche fatte. Il progetto parte da un compilatore C. Il progetto GNU darà vita così a una grande quantità di software utilizzabile anche sulla maggior parte delle piattaforme Unix, indirizzando implicitamente il software libero nella direzione dei sistemi di questo tipo.
- 1985 Free software foundation
- Nel 1985, Richard Stallman fonda la FSF, Free software foundation, con lo scopo preciso di creare e diffondere la filosofia del «software libero», finanziando in particolare il progetto GNU.
- 1990 sistema Minix
- Alla fine degli anni 1980, il professor Andrew S. Tanenbaum sviluppa Minix, un sistema operativo in stile Unix per elaboratori x86-16, realizzato specificamente per uso didattico. Era sufficiente acquistare il libro a cui era abbinato e si otteneva un sistema completo di sorgenti. Tuttavia, Minix poteva essere usato, distribuito e modificato, solo per fini didattici.
- 1990 sviluppo del kernel Hurd
- Nel 1990, il progetto GNU inizia lo sviluppo del kernel Hurd.
- 1991 sviluppo del kernel Linux
- Linus Torvalds inizia lo studio delle funzionalità di multiprogrammazione dei microprocessori x86-32, cercando di applicare queste conoscenze alla realizzare di un sistema simile a Minix, lavorando inizialmente proprio su un sistema Minix. Nel 1991, Linus Torvalds arriva a ottenere un sistema operativo minimo, composto da una primissima edizione del kernel Linux, autonomo da Minix, sfruttando il lavoro del progetto GNU. Da quel punto inizia il progetto di sviluppo del kernel Linux. Il sistema GNU/Linux è il sistema GNU con il kernel Linux.
- 1992 BSD senza codice UNIX
- A partire dal 1992 appaiono le prime edizioni di un sistema BSD libero dal codice originale UNIX. I primi tentativi con 386BSD sono ostacolati da battaglie legali e da quel punto si sviluppano diverse varianti libere del sistema BSD (NetBSD, FreeBSD, OpenBSD), mentre 386BSD scompare.
- 1998 definizione Open Source
- Nel 1998 nasce la definizione Open Source, con l'intenzione di sostituire la definizione di «software libero»; tuttavia, Open Source e «software libero» (secondo FSF) non sono esattamente la stessa cosa.
- 2000 sistema GNU/Hurd
- Intorno al 2000 inizia la distribuzione del sistema GNU/Hurd (sistema GNU basato su kernel Hurd).
- 2000 cambia la licenza Minix
- Nell'anno 2000, la licenza del sistema Minix viene modificata diventando molto simile alla licenza BSD.
- 2007 pubblicata la versione 3 delle licenze GNU GPL e LGPL
- La versione 3 delle licenze GNU GPL e LGPL prende in considerazione il problema dei brevetti