Ci siamo accorti che, ancora oggi, termini come open source e software libero sono spesso utilizzati come se fossero interscambiabili. In realtà sono due concetti diversi e il loro utilizzo scorretto fa spesso infuriare i sostenitori del free software.
In breve, il termine open source si riferisce a un modello di sviluppo del software in cui il codice sorgente del programma è reso pubblicamente disponibile e accessibile a chiunque. Si ha a che fare con uno schema di pubblicazione e distribuzione del software che permette agli utenti di studiare il funzionamento del programma, proponendo eventuali migliorie e modifiche.
Il concetto di software libero, invece, si concentra sulla libertà accordata agli utenti di eseguire, copiare, distribuire, studiare, modificare e migliorare il software. Sono le quattro libertà fondamentali del software libero, così come definite dalla Free Software Foundation (FSF).
Il software open source: quali sono i vantaggi e dove si trova
Abbiamo detto che avere a che fare con un programma contraddistinto da codice sorgente aperto, permette agli sviluppatori e ai tecnici di esaminare come funziona il software. Un enorme vantaggio in termini di trasparenza che gli sviluppatori del software open source accordano a tutti gli utenti. Un beneficio che si concretizza, ovviamente, in un maggiore controllo sul software e sulla risoluzione di eventuali problemi.
Si prenda il file eseguibile di un software proprietario o qualunque altro componente compilato: quando ci si trova davanti un file binario già sottoposto quindi a compilazione (non necessariamente un eseguibile…), non è affatto semplice verificarne attentamente il funzionamento, se non previa effettuazione di attività di reverse engineering (spesso vietate dagli sviluppatori che creano e distribuiscono programmi compilati).
Le realtà che mettono a disposizione programmi open source, possono anche offrire simultaneamente versioni già compilate. Condividono però gli strumenti che gli utenti possono eventualmente sfruttare per accertarsi che il file eseguibile e gli altri binari siano derivati dallo stesso codice sorgente disponibile pubblicamente.
Poiché il software open source è spesso gratuito o a basso costo, le organizzazioni possono risparmiare notevolmente sui costi di licenza e sulle spese di implementazione. Il fatto che un programma sia open source, tuttavia, non esclude il rispetto di eventuali licenze d’uso (ne parliamo più avanti) e non preclude, per gli sviluppatori, il rilascio di versioni commerciali che, ad esempio, integrino il supporto tecnico e l’assistenza dedicata come servizi a pagamento.
GitHub è una delle più grandi piattaforme di sviluppo collaborativo al mondo, che ospita milioni di progetti open source. Gli sviluppatori possono pubblicare, scoprire e contribuire a una vasta gamma di progetti. Il modello di sviluppo favorisce la collaborazione e l’innovazione continua attraverso il contributo di persone con diverse prospettive e competenze.
Cos’è il software libero
A settembre 2023, Free Software Foundation ha festeggiato i primi 40 anni di GNU e software libero. Era infatti il 1983 quando l’informatico Richard Stallman annunciò la volontà di creare un sistema operativo incentrato sulle libertà fondamentali degli utenti. Quel sistema fu chiamato GNU, acronimo di GNU’s Not Unix, e gettò le basi per assicurare agli utenti quattro libertà fondamentali, anche negli anni a venire:
- Libertà di esecuzione: La libertà di eseguire il programma come si desidera, per qualsiasi scopo.
- Libertà di studio e modifica: La libertà di studiare il funzionamento del programma e di adattarlo alle proprie esigenze.
- Libertà di distribuzione: La libertà di redistribuire copie del software in modo da poter aiutare altri utenti.
- Libertà di distribuire le modifiche: La libertà di distribuire modifiche applicate sul software così da contribuire alla sua crescita e a quella della comunità.
Lo storico articolo “Perché l’open source manca l’obiettivo del software libero“, firmato dallo stesso Stallman, racchiude la differenza tra open source e software libero. Il programmatore, informatico e attivista statunitense indugia sul fatto che open source è una metodologia di sviluppo mentre il software libero è un movimento sociale.
In inglese, l’espressione “software libero” è tradotta con “free software“: purtroppo, l’aggettivo “free” ha due significati ovvero “libero” ma anche “gratuito” (in italiano il problema non esiste). Ancora una volta, il termine “free software” non si riferisce al prezzo, alla gratuità, bensì alle libertà concesse agli utenti.
Il tema delle licenze
In generale, tutto il software libero ad oggi esistente è anche open source. Inoltre, quasi tutto il software open source rilasciato sotto forma di codice sorgente è anche software libero. Ci sono però delle eccezioni importanti, come ricorda Stallman, che sposta l’attenzione sul già citato (e scottante) argomento delle licenze.
Alcuni software, dei quali è condiviso pubblicamente il codice sorgente, usano licenze troppo restrittive: in certi casi, per esempio, i termini di licenza non permettono di sviluppare versioni private e usarle nei vari contesti (commerciali e privati).
Quindi, mentre il software open source può essere distribuito con varie licenze, alcune delle quali possono non garantire tutte le quattro libertà del software libero, quest’ultimo è sempre accompagnato da una licenza che garantisce tali libertà. La stella polare, il vero e proprio riferimento per il software libero, è la licenza GNU GPL (General Public License).
È una delle licenze più usate in assoluto per il software libero e impone che tutte le versioni modificate del software siano anch’esse rilasciate sotto la stessa licenza, garantendo così il massimo grado di libertà agli utenti finali.
La licenza GNU GPL
La “madre” di tutte le licenze permissive utilizzate per veicolare software libero è GNU GPL. Originariamente stesa da Stallman nel 1989, è presentata come una licenza fortemente copyleft. Come accennato in precedenza, impone che tutte le versioni modificate o derivate del software siano rilasciate sotto la stessa licenza. Questo garantisce che il software rimanga libero e che le libertà degli utenti siano protette anche nelle versioni modificate del programma. Il concetto di copyleft è posto in posizione antitetica rispetto a quello di software proprietario, le cui licenze restrittive riducono le libertà degli utenti.
Quando si parla di “open source”, spesso si ritiene – sbagliando – che si tratti di software “non distribuito con licenza GNU GPL“. In realtà GNU GPL è anche una licenza open source; la maggior parte delle licenze open source sono anche licenze di software libero. Com’è possibile verificare sul sito ufficiale di FSF, ci sono molte altre licenze libere oltre alla GNU GPL: alcune sono compatibili con la GNU GPL, altre no.
Licenze compatibili e incompatibili
Ad esempio, la Licenza MIT è una licenza ampiamente usata per il software open source: consente la modifica e la redistribuzione del codice sorgente, ma non richiede che le modifiche siano rilasciate sotto la stessa licenza (è “senza copyleft”). Ciononostante, FSF la ritiene compatibile con la filosofia della GNU GPL originale, seppure consigli prodotti basati sulla licenza Apache 2.0, che mette al riparo da eventuali “tranelli in materia di brevetti“.
Basti ricordare che nel 1991 Linus Torvalds presentò la primissima versione del kernel Linux, pubblicato proprio sotto licenza GNU GPL. Ecco perché FSF ricorda che per riferirsi a Linux bisognerebbe usare il termine GNU/Linux: il sistema operativo, infatti, combina il kernel Linux con le varie utilità e applicazioni del sistema fornite dal progetto GNU.
Utilizzando il termine “GNU/Linux“, si sottolinea l’importanza del contributo del progetto GNU e si rende omaggio alla sua missione di creare un sistema operativo completamente libero e open source. La pagina “software GNU” contiene una lista esaustiva di tutti i software integrati a livello di sistema operativo GNU/Linux, sviluppati seguendo l’idea di copyleft.
La violazione delle condizioni di licenza può essere contestata anche nelle aule di tribunale: è di marzo 2024 la condanna di un operatore di telecomunicazioni che non ha rispettato la licenza GNU GPL.
Convergenza e intersezione
A dispetto di alcuni importanti differenze, appare chiaro che open source e software libero non sono mutuamente esclusivi. Come abbiamo visto, spesso i due concetti convergono e si sovrappongono in molte aree.
Se il focus filosofico, le licenze associate e gli obiettivi possono essere in molti casi differenti, open source e software libero condividono comunque l’obiettivo comune di promuovere la collaborazione, la trasparenza e l’innovazione.
Non è quindi un errore scrivere che un certo programma è un “software libero e open source“. D’altra parte, tanti sviluppatori presentano in questo modo le loro realizzazioni. Di solito si intende che da un lato è disponibile e distribuito pubblicamente il codice sorgente del programma; dall’altro che la licenza compatibile con GNU GPL (che non deve essere necessariamente GNU GPL) garantisce agli utenti le quattro libertà fondamentali fissate dalla FSF.
Credit immagine in apertura: iStock.com – gilaxia