Open source

Da Unipedia.

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:

  1. Libero utilizzo e studio del software
  2. Possibilità di modificare il software
  3. Possibilità di ridistribuire copie del software
  4. Possibilità di distribuire le proprie modifiche

L’approccio open source è basato sulla trasparenza e sulla collaborazione, alla cooperazione tra sviluppatori, utenti e istituzioni. [1]

Origini e contesto storico[modifica]

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[modifica]

Fino alla fine degli anni Sessanta, il software veniva condiviso liberamente tra gli addetti ai lavori e distribuito insieme all’hardware [2]: i programmi venivano considerati infatti strumenti accessori e non prodotti con un proprio valore commerciale. IBM [3], per esempio, forniva il software insieme alle macchine senza costi aggiuntivi permettendo agli utenti finali di studiarlo, condividerlo, modificarlo e adattarlo alle proprie esigenze.
Questo approccio favoriva un ambiente collaborativo tra ricercatori, 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[modifica]

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.
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 per tutelare i diritti degli sviluppatori, facendo sì che l’utilizzo di programmi informatici fosse soggetto a licenze e restrizioni d’uso.

Nei primi anni, la protezione giuridica del software si basava quasi esclusivamente sul diritto d’autore, soprattutto nei paesi europei, come l’Italia, dove il software è tuttora considerato alla stregua di un'opera dell’ingegno, assimilabile ai testi o alle composizioni artistiche. Negli Stati Uniti, invece, a partire dagli anni Ottanta, si è assistito a un crescente uso del brevetto come strumento di tutela del software, in particolare per proteggere algoritmi, processi e funzionalità implementate nei programmi. Questa differenza ha avuto un impatto profondo sull’evoluzione del settore: mentre il copyright tutela l’espressione del codice (cioè la forma con cui è scritto), il brevetto si concentra su funzionalità tecniche o idee implementative originali, purché soddisfino criteri di novità e utilità industriale. In Italia, e più in generale in Europa, l’approccio rimane orientato al diritto d’autore, e i brevetti software sono ammessi solo in casi molto specifici e con maggiore cautela rispetto al contesto statunitense. [4]

Prima distribuzione di software “libero” (anni Ottanta)[modifica]

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 [5] 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 [6], venne distribuito liberamente insieme al codice sorgente.
Unix [7], sviluppato inizialmente nei laboratori Bell [8], 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”[modifica]

La creazione di internet[9] 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. In precedenza 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 amplificare l’impatto del Free Software, trasformando queste piattaforme in veri e propri hub per la gestione collaborativa dei progetti software.[10]

L’open source oltre il software: sfide nei contesti educativi[modifica]

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. [11]

Caratteristiche principali[modifica]

Four freedoms[modifica]

L’espressione “four freedoms” si riferisce ai quattro principi fondamentali dell’open source, definiti da Richard Stallman.[1]

  • La libertà 0 (cioè la libertà di eseguire il programma come si desidera) implica libertà per qualsiasi persona od organizzazione di utilizzare il programma open source su qualsiasi tipo di sistema informatico, per qualsiasi tipo di attività e senza dover successivamente comunicare con lo sviluppatore o con qualche altra entità specifica. Tale condizione favorisce lo scopo individuale dell’utente, che però non potrà imporre le proprie intenzioni iniziali a un eventuale utente a cui è stato ridistribuito. Un codice imperfetto, che comprometterebbe l’utilità di un programma, può essere ulteriormente modificato da altri utenti. La libertà di eseguire un programma include, per necessità di cose, la libertà di non eseguirlo.
  • La libertà 1 (cioè la libertà di studiare il codice sorgente e di apportare modifiche), per essere in vigore, prevede che sia libero l’accesso al codice sorgente. Il programma deve quindi eseguire incondizionatamente le modifiche apportate da ciascun utente. Per rispettare la condizione posta, è necessario che si possano includere nel programma anche moduli già esistenti, anche se l’utente che apporta le modifiche non ne detiene il copyright. Stabilire il valore delle modifiche in quanto migliori o peggiori contribuisce quindi a non rendere libero un programma, ma in accordo alla libertà 1 è prevista la possibilità di cancellare un programma.
  • La libertà 2 (cioè la libertà di ridistribuire copie da altri utenti), implica la libertà di distribuire gratuitamente o addebitando costi di distribuzione, senza chiedere o concedere alcun tipo di permesso, che dall’altra parte permette di conservare e utilizzare privatamente le proprie modifiche per qualsiasi scopo. La libertà di ridistribuire copie deve includere la possibilità di includere forme binarie o eseguibili del programma, che si tratti o no di versioni modificate, nel caso queste non vi siano ancora implementate.
  • La libertà 3 (cioè la libertà di distribuire pubblicamente le proprie modifiche), comprende in sé condizioni analoghe a quanto stabilito per la libertà 2. Contiene però all’interno dei suoi principi il rilascio di una licenza libera, da cui deriveranno naturalmente altre versioni libere arricchite da ulteriori modifiche.

Regola sulla produzione di pacchetti, sulla distribuzione e sull'esportazione[modifica]

Sono anche accettabili regole su come pacchettizzare una versione modificata, purché non limitino in modo determinante la libertà di distribuire versioni modificate o di produrre versioni modificate, aumentando quindi la complessità. Risulta più controverso un contesto in cui una licenza richiede di cambiare il nome con cui il programma sarà chiamato da altri programmi. Ciò impedisce il rilascio della versione modificata in modo che possa sostituire l'originale quando chiamata dagli altri programmi. Risulta possibile una conciliazione solo con lo scopo di aliasing, cioè una funzionalità che permette di specificare il nome originario del programma come alias della versione modificata.

Licenze e possibilità legali[modifica]

Se lo sviluppatore di un software ha il potere di revocare la licenza o di sostituirla con una più restrittiva, il programma non può essere considerato libero. Questo vale anche se la revoca avviene per una violazione da parte dell’utente. Inoltre, una licenza libera non può subordinare la sua validità al rispetto delle licenze di altri programmi non liberi. Se, per esempio, una licenza imponesse all’utente di rispettare anche le condizioni di tutti gli altri programmi che utilizza, allora l’uso di software non libero renderebbe obbligatorio il rispetto anche di licenze proprietarie. In tal caso, la licenza in questione non potrebbe più essere considerata libera, perché l’esercizio dei diritti da essa concessi sarebbe subordinato a vincoli esterni, cioè a condizioni imposte da altri programmi e non dalla licenza stessa.
È considerato accettabile che una licenza di software libero indichi quale giurisdizione legale si applica, o in quale sede territoriale si risolveranno eventuali controversie. Questo tipo di clausole non limita la libertà del software, ma serve solo a regolare aspetti legali pratici. La maggior parte delle licenze di software libero si fonda su principi giuridici che variano a seconda del contesto normativo: negli Stati Uniti prevalgono i meccanismi di tutela tramite brevetto, mentre in Italia (e in generale in Europa) il software è protetto principalmente dal diritto d’autore. Questo comporta dei limiti: da un lato, il diritto d’autore impone restrizioni sull’uso e la distribuzione del software; dall’altro, la licenza libera interviene per neutralizzare o superare quei limiti, concedendo specifiche libertà all’utente. Tuttavia, proprio perché la licenza opera nel contesto del diritto d’autore o del brevetto, essa stessa è soggetta a certi vincoli legali. Se una licenza, pur basata sul diritto d’autore, rispetta le condizioni designate da Stallman nella sua teorizzazione delle four freedoms, è improbabile, anche se non impossibile, che si possa incorrere in qualche problema di natura legale. Ciò nonostante, alcune licenze di software libero sono basate su contratti, i quali possono imporre una maggiore quantità di restrizioni: vi sono quindi molti modi possibili di infrangere quanto stabilito dalle condizioni di libertà di una licenza, rendendo complesso il processo di stipulazione di un contratto. Se una licenza fondata su un contratto legale introduce restrizioni ai diritti dell’utente che non rispettano i criteri fondamentali del software libero, tali clausole rappresentano una violazione della libertà garantita dalla licenza. In altre parole, anche se il contratto è valido sul piano giuridico, non può limitare le libertà essenziali dell’utente, come l’uso, lo studio, la modifica o la ridistribuzione del software.[12]

Esempi noti di software open source[modifica]

GNU[modifica]

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[13] (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, in seguito 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).
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[modifica]

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. Linux è un kernel sviluppato 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. [14]
Linux è un kernel monolitico, quindi tutti i driver devono avere una parte eseguita in kernel mode; 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[modifica]

Si tratta di una piattaforma server web sviluppata dalla Apache software foundation e diventa la più diffusa nella sua categoria 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[15], con l'aggiunta di alcune correzioni. La prima versione di Apache, la 0.6.2, fu pubblicata nell’aprile del 1995. 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[16] fu autrice di un’indagine statistica nell’ottobre del 2006, che portò i seguenti risultati: su 75 milioni di siti web, circa 60 milioni utilizzavano Apache. 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. [17]

Android[modifica]

Un esempio particolarmente rilevante di progetto open source su larga scala è Android, il sistema operativo per dispositivi mobili sviluppato inizialmente da Android Inc. e acquisito da Google nel 2005. Basato sul kernel Linux e rilasciato con licenza Apache 2.0, Android ha reso possibile l'espansione di un intero ecosistema di applicazioni e dispositivi, promuovendo la diffusione del modello open source anche nel mercato consumer. Sebbene Google mantenga un forte controllo sullo sviluppo delle versioni ufficiali tramite l’Android Open Source Project (AOSP), produttori hardware e comunità indipendenti hanno potuto personalizzare il sistema operativo secondo le proprie esigenze. Questa apertura ha favorito l’innovazione e la diversificazione, ma ha anche evidenziato alcune tensioni tra apertura e controllo centralizzato, soprattutto in merito alla presenza di servizi proprietari Google preinstallati su molti dispositivi. Android rappresenta quindi un caso emblematico di come l’open source possa funzionare come infrastruttura abilitante, pur dovendo confrontarsi con logiche commerciali e modelli di organizzazione dei processi decisionali, della partecipazione della comunità e della distribuzione delle responsabilità ibridi.

Contributi pubblici e privati su progetti open source[modifica]

Contributi pubblici[modifica]

Il progetto 18F[18] funge da esempio di investimento statale nell’industria dell’open source. Il governo statunitense, a marzo 2014, 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)[19] 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[20] 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[21], utilizzata in ambiti urbanistici, scientifici ed educativi.

Contributi privati[modifica]

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)[22] 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[23], 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[24], ovvero una distribuzione Linux community-driven, servita come base sperimentale per il sistema operativo Red Hat Enterprise Linux (RHEL).

Note[modifica]

  1. 1,0 1,1 1,2 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
  2. Definizione di Hardware, Treccani, https://www.treccani.it/enciclopedia/hardware/
  3. Sito dell'azienda IBM, https://www.ibm.com/it-it
  4. Is software protected by copyrights or patents?, Miller IP, https://lawwithmiller.com/blogs/patents/is-software-protected-by-copyrights-or-patents
  5. 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/.
  6. Knuth, D. E. (n.d.), Fletcher Jones Professor of Computer Science, Emeritus. Stanford University. http://www-cs-faculty.stanford.edu/~knuth/
  7. Pavel, Misha. (1982). Introduction to Unix. Behavior Research Methods & Instrumentation. 14. 135-136. 10.3758/BF03202142.
  8. Nokia. (2025). Nokia Bell Labs, https://www.nokia.com/bell-labs/
  9. 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
  10. How the Internet transformed the software industry’’, Anthony I. Wasserman, https://jisajournal.springeropen.com/articles/10.1007/s13174-011-0019-x
  11. Si veda Kelty, Christopher M., Two Bits: The Cultural Significance of Free Software, Duke University Press, 2008.
  12. Open Source Initiative (2025), Old Licenses Category, https://opensource.org/licenses-old/category
  13. Free Software Foundation, Free Software Foundation, https://www.fsf.org/
  14. Hogan, B. P. (2021, 16 settembre), A Brief History of Linux, DigitalOcean, https://www.digitalocean.com/community/tutorials/brief-history-of-linux
  15. National Center for Supercomputing Applications (NCSA), (1997, 10 dicembre), Hoohoo Homepage (archiviata), https://web.archive.org/web/19971210170647/http://hoohoo.ncsa.uiuc.edu/
  16. Netcraft (2025), Netcraft, https://www.netcraft.com/
  17. Apache Software Foundation (2025), Apache HTTP Server Project, https://httpd.apache.org/
  18. 18F (2025), 18F, https://github.com/18F
  19. Susnjara, S., & Smalley, I. (2024, 10 settembre), What Is Platform as a Service (PaaS)?, IBM – Think Topics, https://www.ibm.com/think/topics/paas
  20. Next Generation Internet, NGI Projects, https://www.ngi.eu/ngi-projects/
  21. NASA WorldWind (2025), NASA WorldWind, https://github.com/NASAWorldWind
  22. Cloud Native Computing Foundation (CNCF), 2025, Kubernetes, https://www.cncf.io/projects/kubernetes/
  23. Microsoft (2025), Microsoft Visual Studio Code, https://github.com/microsoft/vscode
  24. Fedora Project (2025), Fedora Project, https://fedoraproject.org/it/

Bibliografia[modifica]

  • 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.