Software libero

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Software Libero)

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.

Storia[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Storia del software libero.

L'idea di software libero nasce agli inizi degli anni ottanta, quando lo sviluppo del software cominciò a passare di mano dalle università alle aziende (software proprietario), ponendo un pesante freno alla collaborazione che caratterizzava il lavoro di gran parte dei programmatori e dei sistemisti dell'epoca, soprattutto con i patti di non divulgazione che le aziende facevano firmare ai programmatori che assumevano.

In realtà il software "commerciale" esisteva da sempre, ma i costi elevati dell'hardware facevano sì che il business delle aziende non fosse concentrato sul software, che era considerato una parte naturale del prodotto, ed i cui sorgenti erano in genere pubblici. Con il passare del tempo il software diventò sempre più complesso e difficile da realizzare e le aziende iniziarono a non distribuire i sorgenti e obbligare i propri dipendenti a non rivelare nulla per non avvantaggiare la concorrenza; inoltre con il crollo dei costi dell'hardware, lo sviluppo commerciale del software divenne un business notevole, ed il codice sorgente era divenuto un investimento prezioso che poteva da un lato far acquisire una fetta di tale mercato in rapida crescita e dall'altro legare i propri utenti al proprio software mantenendo il segreto sui metodi utilizzati per lo sviluppo di sistemi e applicazioni.

In questo modo le aziende cominciavano ad utilizzare la legge sul diritto d'autore per impedire ai concorrenti di leggere e modificare i loro prodotti, assicurandosi il controllo dei propri clienti che, senza più poter vedere e modificare il codice sorgente del software, non potevano più adattarlo alle loro esigenze ma dovevano chiedere alle aziende di farlo per loro.

Nel 1983 Stallman fondò il Progetto GNU con l'intenzione di creare un sistema operativo completamente libero. Grazie alla collaborazione di molti sviluppatori volontari, all'uso di Internet per la coordinazione del progetto e al kernel Linux di Linus Torvalds, nel 1991 nacque GNU/Linux, un clone di UNIX liberamente distribuibile e modificabile.

In Italia si riscontra una sempre maggiore attenzione per il software libero, vi sono associazioni che giornalmente dedicano molte attenzioni ed energie nella tutela e nel rispetto delle norme che regolano (o dovrebbero regolare) l'utilizzo del software libero nelle varie strutture pubbliche, come anche la Pubblica Amministrazione. Una delle più importanti sentenze registrate negli ultimi giorni riguarda l'Associazione per il Software Libero: con una sentenza a lungo attesa il Tribunale Amministrativo Regionale del Lazio riconosce ad Assoli il diritto di perseguire i suoi scopi statutari agendo anche in giudizio ove fosse necessario.

Caratteristiche[modifica | modifica sorgente]

Stallman durante il suo intervento a Wikimania 2005 (Francoforte sul Meno)

La parola libero non implica la possibilità di utilizzare tale software in maniera indiscriminata: il software libero è comunque soggetto ad una licenza d'uso, a differenza ad esempio del software di pubblico dominio.

Esso si contrappone quindi 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.[1]

Rispetto al software proprietario, la licenza d'uso del software libero permette di:

  • eseguire il programma per qualsiasi scopo;
  • accedere alla struttura interna del programma (codice sorgente), studiarla ed eventualmente modificarla;
  • ridistribuirlo in un numero di copie illimitato.

La licenza d'uso pone in genere i seguenti vincoli:

  • gli autori precedenti del software devono essere menzionati anche nelle versioni modificate, lasciando intatto il loro copyright;
  • in seguito ad una modifica, non è possibile applicare una licenza d'uso incompatibile con la licenza originaria o che vada contro le norme della licenza stessa. Per esempio chiunque può riemettere del software pubblicato sotto LGPL usando la licenza GPL (tale operazione è anche chiamata upgrade della licenza), mentre non è possibile fare il contrario (naturalmente se non si è il detentore unico del copyright);
  • normalmente, nella licenza, vi è una clausola che sancisce la non usabilità del software se non si rispetta la licenza d'uso o se una o più norme della stessa licenza non sono valide per termini di legge;
  • quando si distribuisce un codice binario occorre o distribuire insieme anche i sorgenti o garantire per iscritto la possibilità a tutti gli utenti di venirne in possesso dietro richiesta ed al solo costo del supporto

Le "quattro libertà"[modifica | modifica sorgente]

Secondo Richard Stallman e la Free Software Foundation da lui fondata, un software si può definire libero solo se garantisce quattro "libertà fondamentali"[2]:

  • Libertà 0: Libertà di eseguire il programma per qualsiasi scopo.
  • Libertà 1: Libertà di studiare il programma e modificarlo[3].
  • Libertà 2: Libertà di ridistribuire copie del programma in modo da aiutare il prossimo.
  • 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.

Licenze d'uso libere[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Licenza (informatica) e Licenza libera.

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[4]; 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[5]. 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.

Differenze rispetto all'open source[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Open source.

Essendo la disponibilità del codice sorgente uno dei requisiti fondamentali che accomuna il software libero ed il software open source, spesso si è indotti a considerare i due concetti equivalenti, ma in realtà non lo sono.

Un software è open source se i termini secondo i quali viene distribuito rispondono alla Open Source Definition dell'Open Source Initiative (OSI): in particolare, se una licenza rientra in tale definizione, allora tale licenza può essere dichiarata licenza open source. La definizione potrebbe cambiare nel tempo (nessuno garantisce che questo non possa accadere) e quindi è possibile che una licenza attualmente open source non lo sia nel futuro o viceversa. OSI è anche l'organizzazione che su richiesta certifica con il relativo marchio registrato il fatto che una licenza sia effettivamente aderente alla Open Source Definition. Recentemente l'OSI ha posto un freno al proliferare delle licenze dichiarando che cercherà di limitare il numero di licenze che nel futuro saranno ritenute licenze open source. Questo potrebbe, in linea teorica, far sì che una licenza ritenuta libera non venga ritenuta open source.

Una licenza invece è libera (o meglio, una versione di una licenza è libera) se e solo se rispetta le quattro libertà fondamentali. Pertanto se una versione di una licenza è libera, allora lo sarà per sempre. Naturalmente è sempre complesso, almeno per un cittadino "normale" (non esperto di leggi), stabilire se una licenza è libera o meno perché entrano in gioco i termini legali utilizzati nella stessa. Il progetto GNU si occupa tra l'altro anche di indicare se una licenza è libera o meno e se è compatibile con le licenze GNU o meno[6].

Il software libero inoltre non deve essere confuso con il software freeware, che è distribuibile gratuitamente, ma che non è né software libero né open source: il software libero infatti non è detto che sia gratuito ovvero può anche essere a pagamento e il termine free in inglese va inteso in italiano appunto come libero, nel senso dei principi suddetti, e non gratuito.

In ogni caso, gli insiemi di applicativi designati da software libero e open source coincidono a meno di poche eccezioni. La differenza fondamentale è nel tipo di approccio: parlando di software libero si pone l'accento sugli aspetti sociologici ed etici, che sono volutamente rimossi nella visione open source.

Aspetti filosofici e sociali[modifica | modifica sorgente]

Nel software libero il significato della parola libero ha un'accezione particolare. Si è già sottolineato che la libertà del software libero non è incondizionata, perché è soggetta ai precisi vincoli della licenza d'uso, come qualsiasi altra licenza d'uso, solo che in questo caso l'autore si "espropria" di alcuni diritti per cederli agli utenti. Questi vincoli sono studiati in maniera tale da favorire il tipo di libertà cosiddetta copyleft, ovvero che ha come obiettivo la condivisione del sapere. Pertanto il software libero parte da considerazione sociali e per molti aspetti è una forma di filosofia.

Le implicazioni sociali del software libero sono notevoli. La condivisione del sapere non permette a un gruppo ristretto di persone di sfruttare la conoscenza (in questo caso tecnologica) per acquisire una posizione di potere. Inoltre, è promossa la cooperazione delle persone, che tendono naturalmente ad organizzarsi in comunità, cioè in gruppi animati da un interesse comune.

Il modello del software libero si è naturalmente esteso ad altri campi del sapere. Chi crede nel modello copyleft pensa che questo possa essere applicato ad esempio alla musica o alla divulgazione. L'esempio più riuscito di applicazione di questo modello ad un campo differente dal software è oggi Wikipedia, che promuove la condivisione del sapere e la formazione di una comunità.

Differenti correnti di pensiero[modifica | modifica sorgente]

Tra i sostenitori del software libero, e più in generale del copyleft, vi sono diverse correnti di pensiero, che spaziano da una visione radicale ad una più moderata.

La visione più radicale tende ad un modello che si spinge molto oltre a quello del software libero, arrivando in alcuni casi ad auspicare una completa abolizione del software proprietario, considerato una limitazione inaccettabile della libertà e dei diritti dell'uomo. Questa ideologia è stata, erroneamente o almeno impropriamente, paragonata a correnti politiche quali il comunismo, sebbene solitamente i sostenitori del software libero non entrino in questioni politiche.

Chi è su posizioni più moderate considera il software libero un ideale a cui tendere, non negando la possibilità di esistere al software proprietario e più in generale allo sfruttamento commerciale del diritto d'autore, sfruttamento che può essere fatto anche usando software libero, come dimostrano vari casi di successo (es: MySQL).

La licenza LGPL è stata concepita per permettere una certa integrazione tra software libero e software non libero. C'è chi ritiene inopportuno un suo utilizzo perché permette l'integrazione, sotto determinate condizioni, di software libero da parte di software non libero[7]; tuttavia ogni autore di software può decidere liberamente che licenza scegliere e quindi sotto quali condizioni permettere l'uso del proprio lavoro.

Vantaggi del software libero[modifica | modifica sorgente]

A prescindere dalle implicazioni sociali, secondo i suoi sostenitori il software libero presenta numerosi vantaggi rispetto al software proprietario:

  • essendo possibile modificare liberamente il software, è possibile personalizzarlo ed adattarlo alla proprie esigenze
  • il codice sorgente è sottoposto ad una revisione da parte di moltissime persone, pertanto è più difficile che contenga bachi e malfunzionamenti. In ogni caso, è sempre possibile per chiunque tenere un indice pubblico dei problemi, in modo che gli utenti li conoscano
  • se viene scoperto un baco o una falla di sicurezza, la sua correzione di solito è molto rapida[8]
  • essendo il sorgente liberamente consultabile, è molto difficile inserire intenzionalmente nel software backdoor, cavalli di Troia o spyware senza che questi vengano prontamente scoperti ed eliminati, come invece è accaduto per alcune applicazioni commerciali (ad esempio il caso del database Firebird della Borland che conteneva una backdoor scoperta quando di tale software sono stati pubblicati i sorgenti)
  • non esistendo standard proprietari, le cui specifiche sono normalmente segrete, è molto più facile costruire software interoperabile
  • permettere a chiunque di modificare i sorgenti garantisce che ogni nuova funzionalità o copertura di un baco possa essere proposta da chiunque e immediatamente applicata dagli sviluppatori. Questo permette di avere rapidamente a disposizione un software che rispetta le esigenze di chi ha richiesto le modifiche in caso di necessità[8]
  • la complessità e le dimensioni di alcune applicazioni di software libero (ad esempio, dei sistemi operativi) è tale che è necessario il supporto commerciale di un'azienda; il software libero si presta a creare nuove opportunità di business nel campo della formazione e del supporto, oltre che della eventuale personalizzazione del software.
  • collaborando con sviluppatori volontari e utilizzando il lavoro della comunità, anche le piccole e medie imprese sono in grado di sviluppare e vendere prodotti di alta qualità, senza dover ampliare il loro organico.

Critiche al software libero[modifica | modifica sorgente]

Secondo alcuni il software libero avrebbe delle limitazioni e degli svantaggi rispetto al software proprietario:

  • essendo un lavoro volontario, lo sviluppo del software libero sarebbe più lento rispetto al software proprietario; tesi espressa da Bill Gates nella sua lettera aperta ai programmatori dilettanti[9]. Bill Gates ha inoltre particolarmente criticato la GPL in quanto licenza virale e non economicamente sostenibile[10].
  • alcune tipologie di software, soprattutto di nicchia, non sarebbero disponibili come software libero; infatti il software di nicchia non avrebbe abbastanza utenti per la creazione di una comunità che supporti lo sviluppo del software.
  • lo sviluppo del software libero avrebbe una struttura anarchica, che porta a risultati incoerenti e ad una mancanza di uniformità e consistenza[11].
  • nonostante il codice sorgente sia liberamente disponibile, non tutti sono in grado di apportarvi modifiche[12]

Alcune di queste critiche sono talvolta frutto di un'errata comprensione del software libero. Molte persone tendono infatti a considerare il software libero come prodotto esclusivamente da volontari, mentre sono molti i casi in cui è semplicemente un modello di sviluppo adottato a livello aziendale.

Applicazioni commerciali del software libero[modifica | modifica sorgente]

Il software libero non deve necessariamente essere sviluppato a titolo gratuito o a fondo perduto. Purché si rispettino i vincoli della licenza d'uso, è possibile vendere del software libero; all'interno dei documenti del progetto GNU, Stallman incoraggia la vendita di software libero. Stando alla GPL, però, il primo che compra un software libero ha il diritto di redistribuirlo gratis, è quello che succede ad esempio con REHL, CentOS, Suse, Canonical, ma semmai su servizi e assistenza. Il modello di business è quindi basato sul lavoro e non su licenze parassitarie.

Vi sono inoltre alcune aziende che adottano il modello di sviluppo del software libero per i propri prodotti commerciali. Il ritorno economico in questo caso può derivare dalla fornitura di assistenza e di know-how.

Un caso diverso è quello di alcuni esempi di software che vengono pubblicati con un sistema di "licenze multiple". In pratica lo stesso software viene licenziato sia come proprietario, sia come software libero. La versione libera talvolta dispone di meno funzionalità, o è limitata ad un numero ristretto di piattaforme. Esempi celebri di software a doppia licenza sono il database MySQL, di cui esiste una versione "Pro Certified Server" a pagamento e una versione "Community Edition" pubblicata con licenza GPL, e la libreria Qt[13].

Vi sono poi aziende che sono strutturate integralmente per la vendita e l'assistenza di un determinato software libero: esempi classici sono alcune distribuzioni di GNU/Linux, come Red Hat o SUSE. Queste aziende utilizzano come base il software sviluppato dalla comunità, aggiungendo una serie di tool di configurazione o sviluppo, curando gli aspetti più tecnici e dando agli utenti finali un'assistenza mirata.

Sfruttando le caratteristiche della licenza BSD, alcune aziende preferiscono invece partire da software libero per sviluppare un prodotto non libero. Per esempio il sistema operativo proprietario Microsoft Windows implementava, fino alla versione NT 4.0, lo stack di rete utilizzando codice sotto licenza BSD.

Note[modifica | modifica sorgente]

  1. ^ Perché l'Open Source manca l'obiettivo del Software Libero, di Richard Stallman
  2. ^ Definizione di Software Libero
  3. ^ a b L'accesso al codice sorgente ne è un prerequisito.
  4. ^ BSD License Problem. URL consultato il 23-12-2007.
  5. ^ Apache License Version 2.0 and GPL compatibility. URL consultato il 14-04-2009.
  6. ^ Various Licenses and Comment about Them. URL consultato il 23-12-2007.
  7. ^ Why you shouldn't use the Lesser GPL for your next library. URL consultato il 23-12-2007.
  8. ^ a b Use of Free and Open Source Software in the U.S. Department of Defence. URL consultato il 23-12-2007.
  9. ^ An open Letter to Hobbysts. URL consultato il 23-12-2007.
  10. ^ Gates: GPL will eat your economy, but BSD's cool. URL consultato il 23-12-2007.
  11. ^ Some Vulnerabilities of The Cathedral and the Bazaar. URL consultato il 23-12-2007.
  12. ^ Open Source Problems and Limitations. URL consultato il 23-12-2007.
  13. ^ Business Model. URL consultato il 23-12-2007.

Bibliografia[modifica | modifica sorgente]

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]