Open source
L’open source è un modello di sviluppo del software basato sulla libera condivisione del codice sorgente. Questo modello prevede quattro principi fondamentali (“four freedoms”) definiti da Richard Stallman:
- Libero utilizzo e studio del software
- Possibilità di modificarlo
- Poter ridistribuire copie del software
- Poter distribuire le proprie modifiche
L’approccio open source è basato sulla trasparenza e la collaborazione, le libertà sopra elencate hanno posto una nuova visione della produzione software, orientata alla cooperazione tra sviluppatori utenti e istituzioni. [1]
Origini e contesto storico
Il movimento del “free software”, da cui deriva il concetto di open source, nasce negli Stati Uniti all'inizio degli anni Ottanta su iniziativa di Richard Stallman. Solo alla fine degli anni Novanta, per motivi soprattutto comunicativi e strategici, si diffonde il termine “open source software” per indicare un modello simile, ma con un’enfasi maggiore sugli aspetti pratici e collaborativi dello sviluppo. [1]
La definizione di software fino agli anni Sessanta
Fino alla fine degli anni Sessanta, il software veniva condiviso liberamente tra gli addetti ai lavori e distribuito insieme all’hardware [2], infatti i programmi venivano considerati come strumenti accessori e non prodotti con un proprio valore commerciale. IBM [3], ad esempio, forniva il software insieme alle macchine senza costi aggiuntivi, solo quelli di manutenzione hardware, permettendo agli utenti finali di studiarlo, condividerlo, modificarlo e adattarlo alle proprie esigenze.
Questo approccio favoriva un ambiente collaborativo tra ricerca, ingegneri e sviluppatori, in particolare all’interno delle università. Si trattava di fatto di una prassi che anticipava gran parte dei principi dell’open source, nonostante non vi fosse una formalizzazione ideologica e giuridica.
Separazione hardware e software, l’inizio del copyright
Il modello di software proprietario nasce con la separazione tra hardware e software, nel 1969, quando IBM annuncia la separazione di alcuni software dal catalogo principale, vendendoli separatamente rispetto all’hardware.
Dalla concezione quindi di accessorio del hardware, il software in quel momento ha assunto un proprio valore economico e commerciale. Questo cambiamento aprì la strada alla nascita dell'industria del software indipendente, in cui numerose aziende cominciarono a sviluppare e commercializzare programmi destinati a funzionare su hardware prodotto da terzi. Questa evoluzione rese necessaria la definizione di leggi specifiche sul copyright al fine di tutelare i diritti degli sviluppatori, facendo si che l’utilizzo di programmi informatici fosse soggetto a licenze e restrizioni d’uso.
Prima distribuzione di software “libero” (anni Ottanta)
Nonostante la vendita di software proprietario fosse ormai una prassi già a metà degli anni Settanta, alcuni programmi, già agli albori degli anni Ottanta, vengono distribuiti in modo simile al concetto che oggi chiamiamo FOSS (Free Open Source Software). Tra questi i nomi che spiccano maggiormente sono:
- SPICE (Simulation Program with Integrated Circuit Emphasis)
- TeX
- Unix
SPICE, sviluppato da Donald O. Pederson [4] presso l’Università della California, era un software ideato come supporto didattico per l’insegnamento della progettazione di circuiti integrati. Già nel 1973 il programma e il codice sorgente erano disponibili pubblicamente per volere dell’autore, in modo da permettere il libero accesso a studenti e ricercatori.
In maniera analoga, TeX, un sistema di composizione tipografica e markup sviluppato da Donald Knuth [5], venne distribuito liberamente insieme al codice sorgente.
Unix [6], sviluppato inizialmente nei laboratori Bell [7], fu distribuito tra le istituzioni accademiche negli anni Settanta, favorendone lo sviluppo e la collaborazione tra ricercatori.
Questi tre esempi rappresentano le prime manifestazioni del concetto di software libero, ponendo le basi per la cultura della condivisione e della collaborazione nel campo dello sviluppo software.
L’avvento di Internet e il suo impatto sul “free software”
La creazione di internet[8] e la sua diffusione all’interno delle università ha rappresentato una svolta fondamentale nella diffusione del free software.
Internet infatti rese più facile la collaborazione e la condivisione del codice sorgente su scala globale. Prima infatti la circolazione del software libero avveniva principalmente tramite supporti fisici in ambienti accademici ristretti; con internet, invece, divenne possibile distribuire gli aggiornamenti dei programmi, la documentazione e gli strumenti di sviluppo necessari.
Fu inoltre possibile una più ampia diffusione dei principi promossi dalla Free Software Foundation (FSF), del relativo manifesto e delle iniziative legate al movimento open source. La nascita di portali come SourceForge, GitHub e GitLab contribuì significativamente ad amplificarne l’impatto, trasformando queste piattaforme in veri e propri hub per la gestione collaborativa dei progetti software.
L’open source oltre il software: sfide nei contesti educativi
Perché un progetto open source abbia successo, soprattutto in contesti non specialistici come quelli educativi o accademici, è necessario che adatti le sue caratteristiche distintive — come la collaborazione aperta, la modificabilità del contenuto e l’uso di licenze libere — alle pratiche consolidate di altri settori. Questo comporta l’allineamento con criteri di valutazione della qualità, sistemi di reputazione, modelli di attribuzione del merito e differenti regimi di proprietà intellettuale.
Un esempio significativo è quello della piattaforma Connexions, poi evoluta in OpenStax CNX (attiva fino al 31 dicembre 2022), creata per offrire e distribuire contenuti educativi aperti. Il progetto richiedeva che gli autori pubblicassero i materiali sotto licenza Creative Commons, così da permetterne la visualizzazione, la distribuzione e la derivazione, a condizione di una corretta attribuzione. Tuttavia, il trasferimento delle pratiche tipiche dell’open source (come il riuso e la modifica libera) in ambiti con consuetudini più conservative ha mostrato dei limiti, specie quando mancava una cultura condivisa intorno al concetto di riutilizzo.
La libertà di accedere e modificare il codice sorgente, elemento cardine nel software open source, si basa su un equilibrio tra norme tecniche (come i sistemi di versionamento quali Git) e norme culturali (come il consenso sui modi corretti di contribuire). Tuttavia, in altri ambiti mancano regole chiare su cosa costituisca un riuso legittimo, su come si debba documentare una modifica o su come distribuire meriti e compensi. Questo genera incertezza sia per gli autori, che temono di perdere il controllo sul proprio lavoro, sia per gli utenti, che non sanno fino a che punto possano intervenire sui contenuti.
Connexions ha sperimentato direttamente queste criticità. L’assenza di linee guida consolidate per la modifica e la mancanza di una cultura diffusa sul riuso, unite a vincoli tecnici, hanno contribuito al progressivo abbandono delle logiche open source all'interno della piattaforma stessa.
Nonostante queste difficoltà, la diffusione degli ideali del free software ha inciso profondamente sulle modalità di produzione della conoscenza: ha ridefinito il ruolo dell’autore, rimesso in discussione le gerarchie del sapere e promosso modelli di cooperazione fondati su coordinazione tecnico-sociale. Questa ha portato alla nascita di pubblici ricorsivi, ovvero comunità capaci di sviluppare software e licenze che garantiscano la propria stessa sopravvivenza. È proprio questa flessibilità, legata alla pianificazione condivisa e alla possibilità di proporre alternative operative, che permette ai progetti open source di adattarsi e prosperare.
Esempi noti di software open source
GNU
Acronimo ricorsivo di GNU' Not Unix, si tratta di un sistema operativo Unix-like, ideato inizialmente nel 1984 da Richard Stallman e inserito nei principali progetti della Free Software Foundation[9] (sempre di creazione di Stallman). Stallman teorizzò un sistema operativo open source come risposta ai cambiamenti avvenuti all’inizio degli anni Ottanta all’interno del suo laboratorio di intelligenza artificiale e, più in generale, nel contesto della diffusione di dati tra programmatori: se all’inizio, negli anni Settanta, aveva luogo un grande scambio di dati nell’ambiente, secondo una logica simile a quella dell’attuale software libero ma senza norme connaturate tra gli operatori, avvenne un progressivo rimpiazzo di tali dinamiche in favore dell’ascesa del software proprietario, che aumentò la privatizzazione nell’ambito della ricerca. Dunque Stallman lasciò la sua posizione lavorativa al MIT e il 27 settembre 1983 e pubblicò la prima versione del manifesto GNU. Due anni dopo, per sostenere e coordinare lo sviluppo del progetto GNU e promuovere il software libero, Stallman fondò insieme ai suoi collaboratori la Free Software Foundation (FSF). La FSF contribuì alla creazione di numerosi componenti fondamentali del sistema operativo GNU, come la shell Bash e la libc (una libreria C contenente macro e tipi di base necessari per scrivere programmi in C).
All'inizio degli anni Novanta, quando il progetto GNU era già ricco di strumenti ma ancora privo di un kernel funzionante, il kernel Linux, sviluppato da Linus Torvalds nel 1991, venne adottato come componente mancante. Da questa combinazione nacque la base di molti sistemi operativi liberi moderni, comunemente conosciuti come GNU/Linux. Furono ampliati i finanziamenti perché lo scopo di Stallman e della FSF era la creazione di un software completo, che non riguardasse solo specifici settori tecnici.
Nel 1986 è cominciato lo sviluppo del kernel GNU Hurd, inizialmente lavorato sulla base di TRIX ma dal 1988 continuato sulla base di Mach. Lo sviluppo di GNU Hurd viene tuttora portato avanti dalla FSF, ma non è ancora reputato utilizzabile nell’ambiente di produzione. Nel 1991 venne deciso di abbinare il software GNU al neonato kernel Linux, per poi essere con il passare degli anni anche abbinato ai kernel XNU, netBSD, freeBSD e Solaris.
Linux
Si tratta di un kernel creato da Linus Torvalds nel 1991 come alternativa libera ispirata al sistema Unix. Inizialmente distribuito con una licenza che non consentiva la redistribuzione commerciale, fu rilasciato nel 1992 sotto la licenza GPLv2, diventando a pieno titolo software libero.
Sebbene alcune distribuzioni del kernel includano firmware proprietari per supportare hardware specifico, il cuore di Linux è libero.
La combinazione del kernel Linux con gli strumenti del progetto GNU ha dato origine al sistema operativo conosciuto come GNU/Linux.
Torvalds, studente universitario a Helsinki, aveva iniziato a programmare il kernel su un'architettura MINIX, come documentato dal messaggio da lui scritto il 25 agosto 1991, unito al lancio della versione 0.01 del kernel. Da subito molti collaborarono al progetto, tanto che il 5 ottobre 1991 venne pubblicata la versione 0.02, che ebbe però meno successo della precedente. Il 19 gennaio 1992 fu creato il newsgroup alt.os.linux, diventato comp.os.linux il 31 marzo dello stesso anno. Il 14 marzo 1994 fu pubblicato Linux 1.0.0, con 176.250 linee di codice. [10]
Linux è un kernel monolitico, quindi tutti i driver devono avere una parte eseguita in kernel mode e, trattandosi di un caso di open source, il codice sorgente è pubblico e modificabile nei punti che non ne compromettono il funzionamento primario. Sebbene non fosse stato progettato per essere portabile, Linux è uno dei kernel di sistema operativo dotati di maggiore portabilità, dunque in grado di funzionare su un'ampia gamma di sistemi. Successivamente è stato rilasciato Linux-libre, variante completamente libera di Linux, da cui sono nate conseguenti distribuzioni completamente libere. L’ultima versione rilasciata, nella data 20 gennaio 2025, è la 6.13.
Linux ha un’organizzazione gerarchica flessibile, in cui Linus Torvalds occupa il ruolo di leader che accetta però modifiche apportate da qualsiasi utente: è così che la gestione si è evoluta per incorporare contributi mantenendo una certa coerenza progettuale. L’ascesa di Linux ha segnato un punto di svolta nell’ambito della programmazione perché ha reso possibile l’esecuzione di sistemi operativi potenti su hardware economici.
Apache HTTP Server
Si tratta di una piattaforma server web libero sviluppato dalla Apache software foundation, la più diffusa, grazie alla sua possibilità di operare su una grande varietà di sistemi operativi. Si occupa del trasporto di informazioni e offre funzioni di controllo per la sicurezza.
Il progetto partì dopo la creazione alla fine di febbraio del 1995 di una mailing list costituita da otto persone (Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau ed Andrew Wilson). Inizialmente il progetto si basava sulla versione 1.3 del daemon HTTP NCSA[11], con l'aggiunta di alcune correzioni e fu rilasciata la prima versione di Apache ad aprile 1995, la 0.6.2. Poco dopo nella versione 0.8.8 fu integrata una nuova architettura server, a cui fu dato il nome Shambala. La versione 1.0 fu pubblicata il 1º dicembre 1995 e nel giro di un anno la sua diffusione aveva superato quella del server NCSA da cui era iniziato il progetto.
La società di monitoraggio della rete internet Netcraft[12] fu autrice di un’indagine statistica, che portò i seguenti risultati: su 75 milioni di siti web, circa 52 milioni utilizzavano Apache e ad ottobre 2006 il numero era salito a 60 milioni. A oggi Apache web server viene utilizzato dal 51,01% del totale dei domini italiani registrati. Il web server Apache è caratterizzato da un'architettura modulare: per questo ad ogni richiesta del client vengono svolte funzioni specifiche da ogni modulo, il cui controllo è gestito dal core. Un demone esegue un ciclo di polling sopra al core e attraverso esso vengono interrogate continuamente le linee di codice da cui arrivano i messaggi di richiesta. Il core trasporta ogni richiesta ai vari moduli, usando i parametri di uscita di un modulo come parametri di accesso per il successivo. Apache usa un sistema di votazione tra gli sviluppatori per selezionare le modifiche altrui da includere. Funge quindi da esempio di coordinamento democratico, in cui gli sviluppatori discutono e testano qualsiasi eventuale patch. Apache ricopre un ruolo importante nel contesto dello sviluppo web perché ha permesso a numerosi siti web, anche amatoriali, di installare server web gratuitamente e facilmente e, insieme al kernel Linux, fa parte di un insieme di esperimenti riusciti che dimostrano come la coordinazione adattiva sostituita ad un approccio incentrato sulla pianificazione possa non solo funzionare, ma presentare modelli produttivi all’avanguardia, in cui la priorità è la creatività, a scapito delle necessità commerciali di un’azienda tradizionale e dei conseguenti ritmi di produzione imposti. [13]
Contributi pubblici e privati su progetti open source
Contributi pubblici
Il progetto 18F[14] funge da esempio di investimento statale nell’industria dell’open source. Il governo statunitense aveva infatti creato un’unità digitale interna chiamata 18F che sviluppasse software open source con lo scopo migliorare i servizi pubblici digitali. Proprio alla creazione di 18F è dovuta la nascita di software tra cui Cloud.gov, una piattaforma Platform as a Service (PaaS)[15] open source che aiuta le agenzie governative a comprare e creare servizi di cloud. Anche l’Unione Europea è responsabile di un importante contributo pubblico nel settore, che ha come risultato la creazione del programma NGI[16] che finanzia progetti open source con lo scopo di migliorare la privacy e la sicurezza online, nonché di incentivare la decentralizzazione di risorse. Tra i programmi e le iniziative si possono trovare:
- NGI Taler: che promuove sistemi di pagamento digitali sicuri e affidabili
- NGI Zero Commons Fund: sostiene lo sviluppo di beni comuni digitali e tecnologie open source.
- NGI Mobifree: supporta un ecosistema mobile aperto e tecnologie free e open source.
- NGI Exploratory Actions: finanzia progetti di ricerca e sviluppo su tecnologie innovative per l'Internet del futuro.
- NGI Assure: incentrato sulla sicurezza e la resilienza di Internet.
- NGI Atlantic: volto a promuovere la cooperazione internazionale nella ricerca e innovazione su Internet.
Tra gli investimenti fatti da agenzie governative uno dei casi più noti di contributi nel settore open source riguarda la NASA[1], che ha rilasciato una piattaforma open source di visualizzazione geospaziale 3D chiamata Worldwind[17], utilizzata in ambiti urbanistici, scientifici ed educativi.
Contributi privati
Uno dei primi contributi portati da aziende nell’open source è la creazione di Kubernetes nel 2014, un progetto open source per l’orchestrazione di container realizzato grazie a Google. Il progetto è stato però successivamente donato all’azienda CNCF (Cloud Native Computing Foundation)[18] Anche l’azienda informatica Microsoft[2] ha dato un notevole contributo al settore, in particolare con il rilascio del codice sorgente su Github di Visual Studio Code[19], un editor di testo a oggi molto utilizzato dagli sviluppatori grazie alla sua versatilità e alle estensioni rese disponibili anche dagli utenti stessi, risultando quindi molto utile nel settore informatico per utenti dotati di qualsiasi livello di competenza. La società di sviluppo software Red Hat[3] ha investito in Fedora[20], ovvero una distribuzione Linux community-driven, servita come base sperimentale per il sistema operativo Red Hat Enterprise Linux (RHEL).
Note
- ↑ 1,0 1,1 J. M. Gonzalez-Barahona, A Brief History of Free, Open Source Software and Its Communitie, Computer, vol. 54, no. 02, pp. 75-79, Feb. 2021, https://doi.ieeecomputersociety.org/10.1109/MC.2020.3041887
- ↑ Definizione di Hardware, Treccani, https://www.treccani.it/enciclopedia/hardware/
- ↑ Sito dell'azienda IBM, https://www.ibm.com/it-it
- ↑ David A. Hodges and A. Richard Newton, Donald O. Pederson (1925–2004). Biographical Memoirs, National Academy of Sciences. https://www.nasonline.org/directory-entry/donald-o-pederson-nuhefs/.
- ↑ Knuth, D. E. (n.d.), Fletcher Jones Professor of Computer Science, Emeritus. Stanford University. http://www-cs-faculty.stanford.edu/~knuth/
- ↑ Pavel, Misha. (1982). Introduction to Unix. Behavior Research Methods & Instrumentation. 14. 135-136. 10.3758/BF03202142.
- ↑ Nokia. (2025). Nokia Bell Labs, https://www.nokia.com/bell-labs/
- ↑ Leiner, B. M., Cerf, V. G., Clark, D. D., Kahn, R. E., Kleinrock, L., Lynch, D. C., Postel, J. B., Roberts, L. G., & Wolff, S. S. (2003). A Brief History of the Internet. https://groups.csail.mit.edu/ana/A%20brief%20history%20of%20the%20internet%20-%20p22-leiner.pdf
- ↑ Free Software Foundation, Free Software Foundation, https://www.fsf.org/
- ↑ Hogan, B. P. (2021, 16 settembre), A Brief History of Linux, DigitalOcean, https://www.digitalocean.com/community/tutorials/brief-history-of-linux
- ↑ National Center for Supercomputing Applications (NCSA), (1997, 10 dicembre), Hoohoo Homepage (archiviata), https://web.archive.org/web/19971210170647/http://hoohoo.ncsa.uiuc.edu/
- ↑ Netcraft (2025), Netcraft, https://www.netcraft.com/
- ↑ Apache Software Foundation (2025), Apache HTTP Server Project, https://httpd.apache.org/
- ↑ 18F (2025), 18F, https://github.com/18F
- ↑ Susnjara, S., & Smalley, I. (2024, 10 settembre), What Is Platform as a Service (PaaS)?, IBM – Think Topics, https://www.ibm.com/think/topics/paas
- ↑ Next Generation Internet, NGI Projects, https://www.ngi.eu/ngi-projects/
- ↑ NASA WorldWind (2025), NASA WorldWind, https://github.com/NASAWorldWind
- ↑ Cloud Native Computing Foundation (CNCF), 2025, Kubernetes, https://www.cncf.io/projects/kubernetes/
- ↑ Microsoft (2025), Microsoft Visual Studio Code, https://github.com/microsoft/vscode
- ↑ Fedora Project (2025), Fedora Project, https://fedoraproject.org/it/
Bibliografia
- OpenSource.org, https://opensource.org/
- Raymond, Eric S., The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary, O’Reilly Media, 2001.
- Weber, Steven, The Success of Open Source, Harvard University Press, 2004.
- Kelty, Christopher M., Two Bits: The Cultural Significance of Free Software, Duke University Press, 2008.
- Moody, Glyn, Rebel Code: Linux and the Open Source Revolution, Basic Books, 2002.
- Stallman, Richard M., Free Software, Free Society: Selected Essays of Richard M. Stallman, GNU Press, 2002.