Loading AI tools
filosofia di libero accesso al codice sorgente di un software, oltre all'uso, modifica e distribuzione Da Wikipedia, l'enciclopedia libera
Con open source (in italiano sorgente aperta[1]), in informatica, si indica un software distribuito, generalmente in via gratuita, sotto i termini di una licenza open source, che ne concede lo studio, l'utilizzo, la modifica e la redistribuzione. Questo modello si pone in contrapposizione con l'idea di software proprietario che permette le sopracitate concessioni solo secondo i termini dettati dal detentore del Copyright. Vedi anche FOSS.
Negli anni quaranta il problema della condivisione del codice si poneva in termini molto diversi da quelli attuali. Esistevano pochi computer, costruiti spesso in un unico esemplare e con specifiche hardware molto diverse e non compatibili. Basti pensare che solo nel 1951 una ditta metterà a listino un modello di computer, il Ferranti Mark 1. Di conseguenza anche il software che veniva sviluppato caso per caso non poteva essere trasportato su altre macchine e aveva standard di riferimento a cui attenersi. D'altra parte, le conoscenze di programmazione venivano liberamente condivise in quanto erano considerate più simili alle conoscenze scientifiche che a quelle industriali.
Verso la fine degli anni cinquanta, e soprattutto negli anni sessanta, è stato possibile riusare lo stesso codice e distribuirlo anche se in modo oggi ritenuto piuttosto artigianale, ovvero con nastri e schede perforate. Questo fenomeno diventò evidente soprattutto quando si affermò il vantaggio di usare una stessa porzione di codice, il che presupponeva di avere macchine uguali e problemi simili.
Fino a tutti gli anni settanta, anche se in misura decrescente, la componente principale e più costosa di un computer era l'hardware, il quale era comunque inutile in assenza di software. Da ciò la scelta dei produttori di hardware di vendere il loro prodotto accompagnato da più software possibile e di facilitarne la diffusione, fenomeno che rendeva più utili le loro macchine e dunque più concorrenziali. Il software, tra l'altro, non poteva avvantaggiare la concorrenza in quanto funzionava solo su un preciso tipo di computer e non su altri, spesso neanche su quelli dello stesso produttore. Un altro fattore che favorì lo sviluppo di software condiviso fu la diffusione di linguaggi di programmazione. Specie in ambito scientifico un programma scritto in Fortran poteva essere scambiato tra diversi ricercatori. La disponibilità del codice sorgente era indispensabile per apportare le piccole modifiche rese necessarie dai "dialetti" adottati dalle varie ditte per il linguaggio di programmazione.
Lo sviluppo dei sistemi operativi[2] rese i programmi sempre più portabili, in quanto lo stesso sistema operativo, con gli stessi compilatori veniva offerto dal produttore sui suoi diversi modelli di hardware. La presenza di sistemi operativi funzionanti per macchine di differenti produttori hardware ampliava ulteriormente le possibilità di usare lo stesso codice in modo relativamente indipendente dall'hardware usato. Uno di questi sistemi operativi era Unix, iniziato nel 1969 come progetto all'interno di un'impresa delle telecomunicazioni, la AT&T. Una famosa causa antitrust contro la AT&T le vietò di entrare nel settore dell'informatica. Questo fece sì che Unix venisse distribuito ad un prezzo simbolico a buona parte delle istituzioni universitarie, le quali si ritrovarono ad avere una piattaforma comune, ma senza alcun supporto da parte del produttore. Si creò spontaneamente una rete di collaborazioni attorno al codice di questo sistema operativo, coordinata dall'Università di Berkeley, da dove sarebbe poi uscita la versione BSD di Unix, che diventa da un lato un centro di sviluppo ed innovazione, dall'altro è la base di partenza per numerosi fork.
Considerato che la condivisione del codice è nata insieme all'informatica, piuttosto che di origini dell'Open Source potrebbe essere più appropriato parlare, invece, di origine del software proprietario, ed esaminare il contesto storico in cui questa origine ha avuto luogo.
L'utilità principale delle licenze restrittive consiste nella possibilità di rivendere un programma più volte, se necessario con alcune modifiche purché non rilevanti. Questo presuppone che esistano clienti diversi con esigenze simili, oltre che l'esistenza di più computer sul quale poter far eseguire il programma. Queste condizioni cominciano a determinarsi negli anni sessanta, grazie al fatto che esisteva un maggior numero di utilizzatori con esigenze standardizzabili come lo erano quelle delle organizzazioni economiche nell'area della contabilità, la logistica o delle statistiche.
L'introduzione dei sistemi operativi rese inoltre possibile l'utilizzo dello stesso programma anche su hardware differente aumentando così le possibilità di riutilizzo dello stesso codice e dunque l'utilità nell'impedire la duplicazione non autorizzata dei programmi.
La suddivisione della AT&T in 26 società, le cosiddette Baby Bell, permise alla AT&T di usare logiche prettamente commerciali nella distribuzione del suo sistema operativo Unix, innalzando notevolmente i costi delle licenze e impedendo la pratica delle patch. Il 1982 fu anche l'anno della divisione delle diverse versioni commerciali di Unix, portate avanti dai singoli produttori di hardware. Questi ultimi, effettuando delle piccole modifiche alla propria versione del sistema operativo, impedirono ai propri utenti l'utilizzo di altri sistemi, facendo in modo che i programmi scritti per la propria versione di Unix non funzionassero su versioni concorrenti.
Al MIT la sostituzione dei computer fece sì che i programmatori non potessero accedere al sorgente del nuovo driver di una stampante Xerox per implementarvi una funzionalità gradita in passato: la segnalazione automatica che vi erano problemi con la carta inceppata. Contemporaneamente, società private cominciarono ad assumere diversi programmatori del MIT, e si diffuse la pratica di non rendere disponibili i sorgenti dei programmi firmando accordi di non divulgazione.
In questo contesto molti programmatori, fra i quali Richard Stallman - che sarebbe diventato il portabandiera del software libero -, si rifiutarono di lavorare per una società privata. Stallman fondò nel 1985 la Free Software Foundation (FSF), una organizzazione senza fini di lucro per lo sviluppo e la distribuzione di software libero. In particolare lo sviluppo di un sistema operativo completo, compatibile con UNIX, ma distribuito con una licenza permissiva, con tutti gli strumenti necessari altrettanto liberi. Si tratta del progetto nato l'anno precedente, ovvero GNU, acronimo ricorsivo per contemporaneamente collegarsi e distinguersi da UNIX, ovvero "GNU's Not UNIX".
«L'obiettivo principale di GNU era essere software libero. Anche se GNU non avesse avuto alcun vantaggio tecnico su UNIX, avrebbe avuto sia un vantaggio sociale, permettendo agli utenti di cooperare, sia un vantaggio etico, rispettando la loro libertà.»
Tale progetto, finanziato dalla FSF, venne pertanto portato avanti da programmatori appositamente stipendiati. I principali contributi vennero da Stallman stesso: il compilatore gcc e l'editor di testo Emacs. Furono sviluppate anche altre componenti di sistema UNIX, alle quali si sono aggiunte varie applicazioni e veri e propri giochi. Questi programmi furono distribuiti per circa 150$ che oltre a coprire i costi di riproduzione garantivano un servizio di supporto al cliente. L'unica condizione era che tutte le modifiche eventualmente effettuate su tali programmi venissero notificate agli sviluppatori.
Nacque così la GNU General Public License (GPL), il preambolo del cui manifesto comincia con:
«Le licenze per la maggioranza dei programmi hanno lo scopo di togliere all'utente la libertà di condividerlo e di modificarlo. Al contrario, la GPL è intesa a garantire la libertà di condividere e modificare il free software, al fine di assicurare che i programmi siano "liberi" per tutti i loro utenti.»
Gli anni ottanta sono caratterizzati da alcuni eventi importanti, tra i quali l'introduzione nel mercato di quello che verrà chiamato Personal Computer (PC), ovvero un elaboratore con un proprio processore concepito per essere utilizzato da un solo utente alla volta. Il prodotto di maggior successo, il PC della IBM, si differenziava dai progetti precedenti in quanto non utilizzava componenti IBM, ma sia per il software che per l'hardware si affidava alla produzione da parte di terzi. Ciò rese possibile da un lato ad altre imprese di clonare il PC IBM, abbattendone notevolmente i costi, dall'altro permise a parecchie società di produrre dei software applicativi standard, in concorrenza gli uni con gli altri, basandosi su un unico sistema operativo, anche se inizialmente i principali produttori di software erano identificabili con prodotti per specifiche applicazioni.
Il notevole ampliamento del mercato rese possibili economie di scala e si instaurò una sorta di sinergia tra quelli che sarebbero diventati i principali attori del settore: il produttore dei processori Intel e il produttore del sistema operativo e di applicativi per ufficio Microsoft. La maggiore potenza dei processori rese possibile lo sviluppo di programmi più complessi, la maggiore complessità degli applicativi e del sistema operativo richiesero processori più potenti instaurando in un certo modo un circolo vizioso di aggiornamenti continui.
Sia il sistema operativo che gli applicativi furono subito caratterizzati dall'essere destinati ad utenti con conoscenze informatiche relativamente scarse e dall'avere licenze d'uso strettamente commerciali, vietando da un lato agli utenti di farne delle copie, dall'altro agli sviluppatori di vedere o modificare il codice.
Sempre negli anni ottanta vennero introdotte le workstation, ovvero un sistema basato su terminali (i client) e computer centrali (i server). Si tratta di sistemi derivati concettualmente dai mainframe e basati essenzialmente su sistemi operativi UNIX proprietari. L'hardware stesso varia sul lato server dai mainframe ai PC, mentre su lato client vengono impiegati soprattutto i PC. Ciò favorì lo sviluppo di software sia per i client, utilizzati spesso da persone con scarse conoscenze informatiche, che per i server, il cui funzionamento viene solitamente garantito da personale informatico particolarmente qualificato.
Benché Internet avesse visto la luce già negli anni settanta, è soltanto agli inizi degli anni novanta, con la diffusione del protocollo HTTP e la nascita dei primi browser, che cominciò ad essere diffuso prima in ambito accademico e poi in modo sempre più capillare anche tra semplici privati.
All'inizio degli anni novanta, il progetto GNU non aveva ancora raggiunto il suo obiettivo principale, mancando di completare il kernel del suo sistema operativo (GNU Hurd). Per sopperire a tale mancanza, William e Lynne Jolitz riuscirono ad effettuare il porting di UNIX BSD su piattaforma Intel 386 nel 1991. Purtroppo, negli anni successivi tale porting si trovò ad affrontare problemi di natura legale USL v. BSDi che ne ritardarono temporaneamente lo sviluppo.
Nello stesso anno, Linus Torvalds, studente al secondo anno di informatica presso l'Università di Helsinki, decise di sviluppare un proprio sistema operativo imitando le funzionalità di Unix su un PC con un processore Intel 386. Tale processore venne scelto per il suo minor costo e per la sua maggiore diffusione rispetto alle piattaforme hardware per le quali erano disponibili i sistemi operativi Unix. Torvalds era spinto dall'insoddisfazione riguardante alcuni applicativi di Minix (un sistema Unix-like su piattaforma PC), dal desiderio di approfondire le proprie conoscenze del processore Intel 386, e dall'entusiasmo per le caratteristiche tecniche di Unix.
Torvalds distribuì il proprio lavoro tramite Internet e ricevette immediatamente un ampio riscontro positivo da parte di altri programmatori, i quali apportarono nuove funzionalità e contribuirono a correggere errori riscontrati. Nacque così il kernel Linux, il quale fu subito distribuito con una licenza libera.
Internet dal canto suo, rende possibile la comunicazione tra persone molto distanti in tempi rapidi e a basso costo. Inoltre rende possibile la distribuzione di software direttamente dalla rete, riducendo ulteriormente i costi di duplicazione e le difficoltà a reperire il software stesso. La diffusione dei CD-ROM come supporto privilegiato di raccolte di software rese possibile il fenomeno delle cosiddette distribuzioni.
Linux può essere considerato come il primo vero progetto "open source" cioè come il primo progetto che faceva affidamento essenzialmente sulla collaborazione via Internet per progredire; fino ad allora, infatti, anche i progetti di software libero come Emacs erano stati sviluppati in maniera centralizzata seguendo un progetto prestabilito da un ristretto numero di persone, in base cioè ai principi 'standard' di ingegneria del software. Si assumeva valida anche per i progetti open source la 'legge di Brooks', secondo cui "aggiungere sviluppatori a un progetto in corso di implementazione in realtà rallenta il suo sviluppo", legge che ovviamente non è applicabile a un progetto di sviluppo open source.
Agli inizi degli anni novanta, l'idea delle licenze liberali era rappresentata soprattutto da Richard Stallman e la sua FSF, ovvero le licenze liberali per eccellenza erano la GPL e la LGPL che però venivano ritenute "contagiose", in quanto a partire da un codice licenziato con la GPL qualsiasi ulteriore modifica deve essere distribuita con la stessa licenza. Le idee stesse di Stallman venivano viste con sospetto dall'ambiente commerciale statunitense, il che non facilitava la diffusione del software libero. Per favorire dunque l'idea delle licenze liberali nel mondo degli affari, Bruce Perens, Eric S. Raymond, Ockman e altri cominciarono nel 1997 a pensare di creare una sorta di lobby a favore di una ridefinizione ideologica del software libero, evidenziandone cioè i vantaggi pratici per le aziende e coniarono il termine "Open Source". Ciò anche al fine di evitare l'equivoco dovuto al doppio significato del termine "free" nella lingua inglese, visto che spesso veniva interpretato come "gratuito" invece che come "libero". L'iniziativa venne portata avanti soprattutto da parte di Raymond che, in occasione della liberalizzazione del codice sorgente di Netscape, voleva utilizzare un tipo di licenza meno restrittivo per le aziende di quanto fosse la GPL.
La scelta a favore dell'open source da parte di alcune importanti imprese del settore come la Netscape, l'IBM, la Sun Microsystems e l'HP, facilitarono inoltre l'accettazione del movimento Open Source presso l'industria del software, facendo uscire l'idea della "condivisione del codice" dalla cerchia ristretta nella quale era rimasta relegata fino ad allora. Venne cioè accettata l'idea che l'open source fosse una metodologia di produzione software efficace, nonostante nel suo famoso saggio La cattedrale e il bazaar, Eric S. Raymond avesse esplicitamente criticato i tradizionali metodi di ingegneria del software, metodi che fino a quel momento avevano dato buoni frutti. Va notato come i primi programmi 'liberi', come il GCC, seguivano ancora il modello a cattedrale; solo successivamente progetti come EGCS adottarono il modello a bazaar.
Un software open source è reso tale per mezzo di una licenza attraverso cui i detentori dei diritti favoriscono la modifica, lo studio, l'utilizzo e la redistribuzione del codice sorgente. Caratteristica principale dunque delle licenze open source è la pubblicazione del codice sorgente (da cui il nome). Il fenomeno ha tratto grande beneficio da Internet, perché esso permette a programmatori distanti di coordinarsi e lavorare allo stesso progetto.
Alla filosofia del movimento open source si ispira il movimento di contenuto aperto: in questo caso, ad essere liberamente disponibile non è il codice sorgente di un software, ma contenuti editoriali quali testi, immagini, video e musica. Wikipedia è un chiaro esempio dei frutti di questo movimento. Attualmente, l'open source tende ad assumere rilievo filosofico, consistendo in una nuova concezione della vita, aperta ed ostile a qualsiasi appannaggio esclusivo, che l'open source si propone di superare mediante la condivisione della conoscenza.
Open source e software libero, seppure siano sovente utilizzati come sinonimi, hanno definizioni differenti: l'Open Source Initiative ha definito il termine "open source" per descrivere soprattutto libertà sul codice sorgente di un'opera.[3] Il concetto di software libero descrive più generalmente le libertà applicate ad un'opera ed è prerequisito che il suo codice sia consultabile e modificabile, rientrando generalmente nella definizione di open source.[4]
Lo sviluppo open source ha tra le sue caratteristiche quello di essere spesso gratuito, tanto da creare confusione tra alcuni che credono che "open source" e "gratuito" siano sinonimi (nonostante il termine inglese 'free' non abbia una connotazione precisa relativamente al costo, ma solo alla libertà di utilizzo). Ci si potrebbe chiedere perché delle persone si dedichino allo sviluppo di progetti talvolta semplici, talvolta impegnativi e complessi, senza una remunerazione. In realtà, ci possono essere delle forme di guadagno (anche se non sempre) e si può ricorrere ad una o più strategie per questo scopo. Nella seguente lista, con "sviluppatore" si può intendere sia uno o più soggetti privati, sia un'azienda che crea ed eventualmente si occupa di fare evolvere/manutenere il programma o prodotto software:
Questi modelli di business tipici non sono al momento distinti da una tassonomia condivisa. È anche possibile, dunque, che un certo progetto Open Source venga iniziato sotto un certo modello di business, ma poi prosegua sotto un altro.
OSPA (Open Studies for Public Administration) è un gruppo di lavoro dell'Associazione Concreta-Mente orientato a studiare il tema dell'innovazione organizzativa e tecnologica nella Pubblica Amministrazione. Integra competenze verticali di origine accademica e professionale con l'obiettivo di formulare proposte concrete e presentarle ai decisori istituzionali nel contesto di eventi pubblici. Il gruppo di lavoro OSPA organizza annualmente dal 2008 un convegno nel quale sono presentati e discussi con interlocutori di diverse estrazioni i risultati delle ricerche sull'innovazione nelle Pubbliche Amministrazioni. Ad oggi ha coinvolto nelle sue attività: 6 Università e Centri di Ricerca Nazionali, più di 50 aziende del settore privato, oltre 250 Amministrazioni Pubbliche sia locali che centrali.
OSPA 2008 è stato il primo momento in Italia di incontro e confronto tra PA, imprese e università sul tema dell'open source nelle Pubbliche Amministrazioni. L'iniziativa dei convegni OSPA è poi proseguita negli anni successivi.
A partire dagli spunti raccolti nel corso della prima edizione, il convegno OSPA 2009 è stato dedicato a verificare l'esistenza di interrelazioni tra cambiamento organizzativo e adozione di soluzioni open in 16 diverse amministrazioni, e ad approfondirne la natura. I casi di studio esaminati, i risultati della ricerca e le discussioni attivate sono stati raccolti nel volume Open Source nella Pubblica Amministrazione - OSPA '09.
L'edizione OSPA 2010[7] è stata orientata all'approfondimento verticale su due temi di grande rilevanza per la promozione e valutazione dell'innovazione nella PA: il Riuso di soluzioni software tra amministrazioni diverse, e il Total Cost of Ownership, come strumento per supportare le decisioni di adozione. Anche in questo caso, i risultati delle ricerche presentati al convegno e le riflessioni degli esperti intervenuti sono stati raccolti in un volume, OSPA 10 - Strumenti per l'Innovazione nella PA , che si può anche scaricare gratuitamente.
I software applicativi open source attualmente più diffusi sono Firefox, VLC, Gimp, 7-Zip, OpenOffice, LibreOffice, Rufus oltre ad un gran numero di progetti rivolti non all'utente finale ma ad altri programmatori.[5] Sono inoltre degne di nota le famiglie di sistemi operativi BSD, GNU, Android e il kernel Linux i cui autori e fautori hanno contribuito in modo fondamentale alla nascita del movimento. La comunità open source è molto attiva, comprende decine di migliaia di progetti,[6] numero tendenzialmente in crescita.
Per quanto riguarda il web, oltre l'80%[7] dei siti utilizza linguaggi di programmazione lato server o lato client open source, come PHP o JavaScript. I server web più diffusi sono open source.[8][9]
MediaWiki, il software utilizzato da Wikipedia, è un software libero e rientra nella definizione di open source.[10]
L'attività della “Commissione per il software a codice sorgente aperto nella Pubblica Amministrazione”, detta anche “Commissione Meo”, ha prodotto, nel maggio 2003, la pubblicazione dell'"Indagine conoscitiva sul software open source" che, accanto ad un quadro generale, contiene interessanti proposte per la diffusione del software open source nella PA italiana. La più rilevante tra le proposte è che le PP.AA. non devono vietare né penalizzare l'utilizzo di pacchetti open source: il criterio che deve valere al momento della selezione di una qualsivoglia soluzione software è quello del “value for money” (rapporto qualità-prezzo).
Queste conclusioni hanno fortemente orientato il legislatore italiano. La prima ricaduta legislativa, esito diretto dell'indagine conoscitiva sui programmi informatici a codice sorgente aperto, è la cosiddetta “Direttiva Stanca”: il 19 dicembre 2003 l'allora Ministro per l'Innovazione e le Tecnologie, On. Stanca, adottava la direttiva “Sviluppo ed utilizzazione dei programmi informatici da parte delle pubbliche amministrazioni” il cui contenuto sostanziale veniva successivamente trasfuso nel D. Lgs. 82/05 (Codice dell'amministrazione digitale) con l'intenzione di comportare vantaggi nella scelta dei programmi più efficienti e convenienti, ma anche risparmi derivanti dalla condivisione conseguente al riuso all'interno delle amministrazioni pubbliche.
I principali contenuti della "Direttiva Stanca” sono i seguenti (in particolare derivanti dagli articoli 3, 4 e 7):
Oltre alla Direttiva menzionata, altri sono gli interventi legislativi che considerano l'Open Source come meritevole di attenzione economica e tecnica come, ad esempio, il già citato Decreto Legislativo 7 marzo 2005, n. 82, art. 68, comma 1, lettera d) “Codice dell'amministrazione digitale” e le successive integrazioni e modificazioni (Decreto Legislativo 4 aprile 2006, n. 159 “Disposizioni integrative e correttive al decreto legislativo 7 marzo 2005, n. 82, recante codice dell'amministrazione digitale”) e, recentemente, la Legge 27 dicembre 2006, n.296 - Disposizioni per la formazione del bilancio annuale e pluriennale dello Stato (legge finanziaria 2007). Quest'ultima istituiva un Fondo di 10 milioni di Euro (comma 892) al fine di sostenere la realizzazione di progetti per la società dell'informazione, la cui destinazione prioritaria era rivolta a progetti che "utilizzano o sviluppano applicazioni software a codice aperto".
Recentemente vi è stata la riproposizione della Commissione Open Source 2007, sempre presieduta dal Prof. Angelo Raffaele Meo, presso il Dipartimento per l'innovazione e le tecnologie è stata istituita la Commissione Nazionale per il software Open Source nella PA. Il decreto ministeriale istitutivo della Commissione (16 maggio 2007), a firma del Ministro Nicolais, ha definito tre obiettivi prioritari:
I lavori della Commissione, presieduta dal prof. Meo, si sono svolti essenzialmente in modalità on-line supportati dall'Osservatorio OSS del CNIPA. Si sono svolte anche attività di audizione, in particolare la Commissione ha supportato l'organizzazione del convegno Open Source Open Ideas for Public Administration - OSPA 2008 promosso dall'Associazione Concreta-Mente. Nell'aprile 2008 la Commissione ha prodotto una prima bozza di Relazione.[11]
Nel 2007 il tema dell'open source è stato portato autorevolmente presso il Parlamento italiano. La commissione cultura della Camera ha ascoltato, nella forma di una audizione, il prof. Arturo Di Corinto, Richard Stallman e Bruce Perens[12] in un'audizione ufficiale dalla commissione cultura della Camera dei deputati. Anche il convegno Condividi la conoscenza (organizzato in più edizioni) ha tentato di allargare la base di adesione del mondo accademico sull'open source e sull'Open content con l'obiettivo di fare ascoltare la propria voce anche dal mondo politico.
Nel 2023 la bozza della direttiva UE Cyber Resilience Act è stata definita da alcuni operatori del settore, come, per esempio, Linux Foundation, "dissuasiva" nei confronti dei programmatori e metterebbe a rischio la programmazione dei software open source perché trasferisce in capo ai programmatori la responsabilità di eventuali vulnerabilità informatiche.[13]