Cosa si intende per open source?

L'open source è un modello di produzione decentralizzato che consente a chiunque di modificare e condividere la tecnologia poiché la sua progettazione è accessibile pubblicamente. Il termine è nato nel contesto dello sviluppo di software per indicare che il programma è conforme a determinati criteri di distribuzione libera. Oggi il termine open source way designa un insieme di valori più ampio che si basa sui principi del libero scambio di informazioni, della prototipazione rapida e dello sviluppo collaborativo. Chiunque può contribuire con nuove idee e migliorare ulteriormente la tecnologia in modo che si evolva organicamente.

Perché open source è importante?

L'idea di open source è emersa dalla community della tecnologia. Le innovazioni tecnologiche necessitano di collaborazione globale per evolvere. Per esempio, immaginiamo che un team di programmazione negli Stati Uniti sviluppi una nuova tecnologia open-source per un'applicazione finanziaria. Un altro team di programmazione in Australia modifica la tecnologia con nuove funzionalità più adatte al settore sanitario. Un terzo team in Asia sviluppa poi nuovi prodotti open-source che utilizzano la tecnologia originale come componente fondamentale.

Una simile condivisione di conoscenze e innovazione collettiva avvantaggiano l'intera community. Bloccare la tecnologia con brevetti, copyright e licenze costose limita il progresso. Molti progetti open-source popolari hanno condotto a un avanzamento tecnologico rapido in tutto il mondo nelle ultime decadi.

Quali sono i principi di open source?

I principi fondamentali dietro qualsiasi progetto open-source sono i seguenti:

Community

Una community open-source è un gruppo di persone che si unisce per raggiungere un obiettivo comune. I loro valori e scopi condivisi guidano la presa di decisioni e portano avanti il progetto open-source.

Trasparenza

I progetti open-source assicurano che tutti nella community abbiano accesso alle informazioni e ai materiali necessari per lavorare al meglio. Nella consapevolezza del quadro più ampio, i membri del team prendono decisioni più efficaci e mettono a frutto le reciproche idee e scoperte.

Collaborazione aperta

I progetti di community incoraggiano il lavoro in team, così un gruppo risolve i problemi che gli individui non possono risolvere da soli. Per esempio, i membri di qualsiasi iniziativa open-source contribuiscono alle modifiche per migliorare ciò che qualcun altro ha costruito. Si possono anche stabilire delle regole, affinché gli altri possano modificare la soluzione come necessario in futuro.

Prototipazione rapida

Un progetto open-source segue un approccio iterativo, nel quale i membri del team creano e condividono prototipi a intervalli frequenti. La prototipazione rapida incoraggia la cultura della sperimentazione. Si possono migliorare e portare avanti delle modifiche che funzionano e scartare quelle che non funzionano.

Meritocrazia inclusiva

Il movimento open-source incoraggia prospettive e conversazioni differenti. La comunità prende decisioni attraverso il consenso ma privilegia il successo. Le migliori idee ricevono un maggior supporto e sforzo da parte della community open-source.

 

Quali sono le caratteristiche di un software open-source?

Le caratteristiche di qualsiasi software open-source si allineano da vicino con i valori del movimento open-source.

Open source

Il software open-source deve essere rilasciato sotto licenza open-source che incontri determinati criteri di distribuzione, come i seguenti:

  • Nessuna restrizione sulla vendita o cessione del software come componente di una distribuzione software globale
  • Deve includere e permettere la distribuzione del codice sorgente
  • Deve permettere modifiche e opere derivate
  • I diritti associati al programma devono valere per tutti, senza discriminazioni

Progettazione aperta

La progettazione aperta garantisce un processo trasparente e aperto per la progettazione e pianificazione del software. Si tratta di permettere alla community di guidare la progettazione del software e la tabella di marcia delle caratteristiche. Ciò può essere complesso, perché ricevere il consenso della community può essere un processo dispendioso. Tuttavia, il progetto approvato dalla community conduce a un prodotto migliore che incontra più efficacemente i bisogni dell'utente.

Sviluppo aperto

Lo sviluppo aperto è l'adozione di processi di sviluppo inclusivi e trasparenti, che permettono a tutti di partecipare come pari. I servizi pubblicamente accessibili portano visibilità alle attività di sviluppo. Per esempio, i progetti open-source adottano tipicamente una serie di standard che stabiliscono chiaramente i parametri con i quali un contributo verrà valutato. Ciò permette che tutti gli aggiornamenti del software siano considerati equamente, sia che l'aggiornamento provenga da un contributore esordiente sia che provenga da uno sviluppatore esperto.

Community aperta

La community aperta assicura che la community di sviluppo del software sia un ambiente inclusivo dove tutte le voci sono ascoltate e chiunque può arrivare a posizioni di leadership. Essa bilancia i bisogni di sviluppatori e utenti, stabilendo scopi comuni e costruendo forti connessioni.

Cos'è un software open-source?

Un software open-source è un software con codice sorgente che chiunque può esaminare, modificare e potenziare. Il codice sorgente è la parte del software che i programmatori informatici manipolano per modificare il modo di funzionare di un'applicazione funziona o per aggiungere nuove caratteristiche. Chiunque con un accesso a un codice sorgente del software può migliorare o personalizzare l'applicazione, aggiungendo caratteristiche o correggendo errori esistenti. Il software open-source appare in molte applicazioni web e dispositivi utilizzati oggi. Alcuni esempi di software open-source sono Linux, un sistema operativo open-source, e Mozilla Firefox, un browser Internet open-source.

Qual è la differenza tra software open-source e altri tipi di software?

A volte le organizzazioni o le persone che creano software preferiscono controllarli per ragioni commerciali. Essi mantengono diritti di proprietà esclusivi sul codice sorgente, in maniera tale che solo essi possano modificare il codice per correggere errori o aggiungere nuove caratteristiche. Un software di questo tipo è chiamato software proprietario o software closed-source. I prodotti Adobe Photoshop e Norton AntiVirus sono esempi di software proprietari.

Software open-source vs. Software closed-source

Le tre principali differenze tra software open-source e software closed-source, o proprietario, sono le seguenti:

Affidabilità

Il software proprietario si affida a una sola organizzazione o a un solo sviluppatore che controlla il codice per mantenerlo aggiornato, esente da errori e operativo. D'altro canto, il software open source viene mantenuto da una community più ampia. Alcuni dei progetti open source più noti vedono la collaborazione di migliaia di persone in tutto il mondo che testano in maniera approfondita modifiche vecchie e nuove. Per questo motivo, il codice open source è spesso più affidabile.

Sicurezza

Qualsiasi codice sorgente può avere delle falle di sicurezza che lo rendono vulnerabile ai cyberattacchi. In ogni caso, il software open-source possiede il vantaggio di correzioni rapide. Una volta che la community riporta una vulnerabilità della sicurezza, i progetti open-source rilasciano un aggiornamento di codice in uno o due giorni. Se le aziende sviluppano software open-source, l'alta visibilità crea l'urgenza di risolvere i problemi e potrebbe persino condurre a software originali migliori.

Al contrario, un software proprietario ha cicli di aggiornamento più lunghi per queste ragioni:

  • Il venditore potrebbe avere meno personale che lavora a un dato progetto.
  • Il venditore potrebbe privilegiare le considerazioni finanziarie rispetto alle falle di sicurezza.
  • Il venditore potrebbe ritardare il rilascio dell'aggiornamento di sicurezza perché preferisce unificare diverse modifiche e rilasciarle tutte insieme.

Opzioni di licenza

Le aziende in genere vendono software closed-source sotto una licenza proprietaria che definisce l'uso legalmente concesso del software. Nessuno può visualizzare, editare o modificare il codice proprietario senza permesso. Per esempio, la licenza proprietaria potrebbe concedere il permesso per uso personale o aziendale, ma non per la rivendita. Essa potrebbe anche bloccarti con contratti specifici di vendita per un tempo prestabilito.
 
D'altro canto, il software open-source è disponibile sotto licenza open-source, quindi è possibile utilizzarlo, modificarlo e redistribuirlo gratuitamente. I contratti di vendita bloccati sono inesistenti o molto flessibili. Gli sviluppatori possono scaricare il software da un sito web pubblico e visualizzare l'intero codice open-source nel proprio computer. Le licenze open-source permettono inoltre agli utenti di fare ciò che segue:
 
  • Modificare il codice sorgente per progetti personali.
  • Redistribuire il codice modificato, se gli utenti continuano a permettere ad altri di visualizzare le proprie modifiche.

Quali sono le tipologie di licenza di un software open-source?

Sebbene una licenza open-source sia meno restrittiva di una licenza proprietaria, il livello e la fascia di permessi variano per tipologia. Di seguito sono riportate alcune tipologie comuni di licenze open-source.

Licenza di pubblico dominio

La licenza di pubblico dominio indica che chiunque può modificare, utilizzare o commercializzare il software senza restrizioni. In molti casi, i creatori del software open-source di pubblico dominio hanno deciso intenzionalmente o volontariamente di non apporre copyright al software.

Licenza permissiva

Le licenze open-source permissive contengono requisiti minimi per come è possibile modificare o distribuire il software. Alcuni esempi di questa tipologia di licenza sono la Licenza Apache e la licenza Berkeley Source Distribution (BSD). Sebbene il software originale sia protetto da copyright e open-source, gli utenti possono commercializzarlo e redistribuirne versioni modificate.

Lesser General Public License

La Lesser General Public License (LGPL) permette di utilizzare le componenti open-source senza restrizioni. Queste componenti sono spesso accessibili come moduli di codice chiamati librerie, che si possono inserire nei codici e utilizzare. Se si usa un codice sorgente LGPL nella propria applicazione, è possibile commercializzare l'applicazione. In ogni caso, se si modifica il codice LGPL esistente, lo si deve ridistribuire nuovamente sotto la stessa licenza.

Licenze copyleft

Le licenze copyleft sono le licenze open-source più comuni, e la General Public License (GPL) ne è un esempio famoso. I termini di licenza copyleft tentano di limitare la commercializzazione:
 
  • Se si modificano le componenti open-source copyleft, è necessario rilasciare l'intero nuovo codice sorgente insieme all'applicazione. Tuttavia, non è necessario fare ciò se si usa l'applicazione solo internamente e non la si rilascia al pubblico.
  • Si possono vendere le proprie modifiche GPL, ma l'acquirente può redistribuirle ulteriormente se lo desidera.
  • Si devono riconoscere i crediti a tutti gli autori del codice precedenti nelle proprie dichiarazioni di copyright sul codice.

Chi regola un software open-source?

L'Open Source Initiative (OSI) è un'organizzazione globale, no profit, che sostiene tutti i tipi di software open-source e istruisce su di essi. Come ente di standardizzazione, esso detiene la Open Source Definition, un documento che definisce legalmente le condizioni che rendono qualsiasi software open source.

Seguendo l'Open Source Definition dell'organizzazione, è possibile ottenere il marchio di licenza approvato OSI. Il marchio crea fiducia ed incoraggia altri a contribuire e collaborare. L'OSI detiene una lista di licenze approvate e approva nuove licenze nella community open-source. Regola inoltre i requisiti degli standard aperti per il software.

Cosa sono gli standard aperti?

Gli standard aperti sono regole di sviluppo software che supportano uniformità e interoperabilità nella tecnologia. Essi sono disponibili liberamente per l'implementazione, l'adozione e gli aggiornamenti. Come risultato, essi rendono più comodi e pratici molti aspetti della nostra vita quotidiana.

Per esempio, gli standard permettono a tutti i tipi di macchine di connettersi a tutti i tipi di router wireless. Si può utilizzare il proprio laptop per connettersi a Internet da casa propria o dal proprio bar preferito, a prescindere dal router utilizzato. Senza standard, sarebbe necessario trovare un bar con un router compatibile con il proprio laptop.

Open-source vs. standard aperti

Gli standard sono le regole, le linee guida e le specificazioni per scrivere determinati tipi di codice sorgente, anziché il codice stesso. Gli standard del software devono seguire determinate regole per essere classificati come open-source. Per esempio, se si richiede a una tecnologia proprietaria di implementare determinati standard, allora quegli standard non sono open-source.

Perché esistono versioni commerciali di software open-source?

Creatori e altre aziende hanno monetizzato molti progetti open-source vendendo componenti aggiuntive, come statistiche o sicurezza, che attirano le aziende più grandi. Le aziende private possono commercializzare l'intero software nel pubblico dominio includendo questi programmi open-source nel proprio codice di applicazione. Essi possono anche rilasciare differenti versioni dello stesso software sotto licenze differenti.

Per esempio, immaginiamo che un'azienda rilasci un sistema di gestione database sia sotto la General Public License (GPL) che sotto una licenza proprietaria. Chiunque può utilizzare la versione GPL per lo sviluppo del software purché rendano il nuovo codice open-source. Al contrario, la versione proprietaria offre servizi software aggiuntivi, come i seguenti:

  • Un servizio di database completamente gestito
  • Un servizio di backup dati di livello enterprise
  • Crittografia di sicurezza aggiuntiva
 
Si può acquistare il software commerciale per uso interno o pagare supplementi per utilizzarlo nei propri prodotti e servizi.

Un software open-source è uguale a un software gratuito?

Il termine software gratuito si riferisce a un movimento sociale, anche detto movimento free software, con lo scopo di ottenere e garantire determinate libertà agli utenti del software. Questo movimento lavora per far sì che gli utenti abbiano la libertà di:

  • Eseguire il software.
  • Studiare il software.
  • Modificare il software.
  • Condividere copie del software.
 
Il movimento open-source ha le sue origini nel movimento free software, cominciato nei primi anni '80. Alcuni gruppi volevano concentrarsi sulle applicazioni pratiche della tecnologia e credevano che il termine free software fosse poco chiaro e scoraggiasse l'adozione aziendale. Essi hanno proposto il termine open source e lo hanno infine reso popolare e standardizzato stabilendo l'Open Source Initiative (OSI).

Software open-source vs. software gratuito

Oggi software gratuito si riferisce alle licenze open-source nel dominio pubblico. Il software open-source include adesso più tipi di licenze e può imporre delle restrizioni agli utenti, a differenza del movimento free software. Dal momento che i termini freeware e software gratuito sono utilizzati in modo interscambiabile, è meglio riferirsi ai software gratuiti come software di pubblico dominio.

Software open-source vs. freeware

Il termine freeware significa semplicemente un prodotto altrimenti commerciale, che è disponibile per un tempo limitato. Il freeware può anche consistere in versioni di prova gratuite o versioni con funzionalità limitate di un prodotto che altrimenti richiede costi di abbonamento. Anche se si ottiene accesso al freeware, non si avrà diritto di rivenderlo, condividerlo o modificarlo in alcun modo.

Come AWS contribuisce al software open-source?

In AWS, crediamo che l'open source sia utile a tutti. Ci impegniamo per portare i valori dell'open source ai nostri clienti e l'eccellenza operativa di AWS alle community open-source. Gli ingegneri AWS sviluppano regolarmente software open-source e contribuiscono in migliaia di community open-source su GitHub, Apache, Linux Foundation e altre. Ecco qualche altro modo in cui supportiamo l'open-source:

  • Abbiamo lavorato duro per assicurare che i clienti potessero utilizzare e rendere operativi i propri software open-source preferiti nel cloud. AWS supporta una più vasta gamma di tecnologie open-source rispetto ad altri provider di cloud.
  • Abbiamo diversi progetti a lungo termine nella community open-source. Contribuiamo continuamente alle riparazioni di bug, alla sicurezza, alla scalabilità, alla performance e al potenziamento delle caratteristiche di questi progetti.
  • Siamo soci affiatati con aziende leader open-source (da HashiCorp a MongoDB fino a Confluent e a Red Hat) e li aiutiamo a superare le aspettative dei clienti.

Ulteriori informazioni sui nostri progetti open source in Open source at AWS o esplora più di 1.200 progetti open source guidati da Amazon in GitHub.

Inizia a usare open source in AWS creando un account gratuito oggi stesso.

Passaggi successivi su AWS

Scopri ulteriori risorse correlate al prodotto
Ulteriori informazioni sull'open source 
Servizi AWS inclusi nel piano gratuito

Visualizza i servizi AWS inclusi nel piano gratuito

Visualizza i servizi gratuiti 
Inizia subito nella console

Inizia subito a costruire con AWS nella Console di gestione AWS.

Accedi