Accedi / Registrati Account

Open source

Cos'è il software open source?

Il software open source viene rilasciato con una tipologia specifica di licenza che rende il codice sorgente legalmente fruibile dagli utenti finali. Esistono svariati tipi di licenze software fruibili in tal senso, ma in linea generale un software è considerato open source se:

  • È disponibile in forma di codice sorgente senza costi aggiuntivi; l'utente potrà quindi visualizzare il codice del software e modificarlo in base alle sue esigenze.
  • Il codice sorgente può essere reimpiegato in nuovi software; chiunque potrà quindi usarlo per creare e distribuire nuovi programmi.

Una licenza open source prevede anche altre caratteristiche. Se, ad esempio, qualcuno trasforma il tuo codice sorgente in un nuovo software, potrai chiedere che il rilascio del nuovo prodotto avvenga con la stessa licenza (come previsto dalla Licenza Pubblica Generica (GPL) GNU), o con una licenza diversa (come invece consente la Licenza Pubblica Generica Attenuata (LGPA) GNU).

Il software open source è gratuito?

Il fatto che un software sia open source non significa necessariamente che il software eseguibile sia ceduto gratuitamente, ma implica la disponibilità gratuita del codice sorgente.

Il codice sorgente di Red Hat® Enterprise Linux®, ad esempio, è disponibile gratuitamente per tutti (come puoi vedere qui), ma per trasformare tale codice in codice eseguibile occorrono competenze, tempo e server. Le organizzazioni che intendono utilizzare il codice production ready di Red Hat Enterprise Linux senza ricostruirlo dal codice sorgente, possono richiedere una sottoscrizione.

Il software open source viene spesso associato al movimento del software libero, il che può creare confusione rispetto al significato della gratuità. Il movimento del software libero è frutto della cultura degli hacker degli anni '70; fu ufficialmente fondato da Richard Stallman nell'ambito del Progetto GNU e della Free Software Foundation, un'associazione senza scopo di lucro. Con "libero" si intendeva sottolineare la libertà dei diritti degli utenti finali del software, ma il significato è stato spesso frainteso come "libero da ogni costo."

In realtà, né il software libero né quello open source hanno alcun significato associato al loro costo, ed entrambi possono essere legalmente venduti o ceduti. La principale differenza tra i due è invece legata alla condivisione. Nel caso del software libero, se apporti modifiche al codice sorgente e desideri condividerle, devi condividerle anche con la community del progetto originale, una limitazione che non vale per il software open source.

Malgrado alcune differenza pratiche, i due tipi di software condividono valori comuni. Di fatto, i due termini vengono spesso combinati nella frase “software libero e open source" e indicati con l'acronimo FOSS (Free and Open Source Software).

FOSS e software proprietario

La differenza principale tra software proprietario e software FOSS è data dalla disponibilità del codice sorgente. Software proprietari o commerciali, come Microsoft Windows e Adobe Photoshop non sono disponibili agli utenti finali come codice sorgente. Al contrario, software liberi come il kernel Linux® (su cui si fonda Red Hat Enterprise Linux) e software open source come Google Chromium (la base del browser web Chrome) sono disponibili come codice sorgente tramite le rispettive licenze.

Essendo Linux un software libero, Red Hat è tenuta a riportare ogni modifica eseguita su Red Hat Enterprise Linux alla community open source. Chromium è invece un software open source e Google pertanto non è tenuta a condividere con la community le modifiche apportate per creare Chrome.

Il concetto di software open source è legato alle licenze software. L'Internet moderno e il modello sempre più diffuso di cloud computing a cui oggi siamo abituati sarebbero profondamente diversi se le loro origini non risalissero al software open source. In generale, l'open source è emerso anche come movimento che ha trasformato il modo di collaborare e di organizzarsi per conseguire obiettivi comuni. 

L'importanza cruciale del software open source

Rispetto a un modello closed source, un software open source offre a tutti — e non solo ai programmatori — la possibilità di contribuire all'innovazione con la propria creatività. Ad esempio, le community open source collaborano a progetti open source, aperti a chiunque voglia condividere le proprie competenze contribuendo alla creazione di codice. Come accade per i realizzatori di software proprietari, anche i gruppi open source aderiscono a standard relativi alla contribuzione ai loro progetti, lasciando però i processi accessibili a chiunque desideri prenderne parte.

Da questo modello di sviluppo open source hanno avuto origine alcune delle più importanti applicazioni e piattaforme cloud attualmente in adozione. La più diffusa tra queste è LAMP, un modello di stack di servizi che fa da pilastro a gran parte del web. L'acronimo LAMP sta per:

  • Linux: un sistema operativo open source ma anche il più grande progetto open source al mondo
  • Apache: un web server open source per più piattaforme che ha giocato un ruolo strategico agli esordi del web;
  • MySQL: un sistema di gestione dei database relazionali impiegato da numerose app web fondate su database;
  • PHP: un linguaggio di scripting generico utilizzato nello sviluppo software (i linguaggi Perl o Python sono a volte usati in alternativa)

Altri esempi di tecnologie open source di grande diffusione sono il sistema operativo mobile Android, il browser web Mozilla Firefox e Git, un sistema di controllo delle versioni largamente utilizzato nonché le due suite per ufficio correlate, OpenOffice e LibreOffice. Le principali innovazioni nel campo del cloud computing, dei big data e dell'intelligenza artificiale nascono da progetti software open source. 

Oltre al ruolo strategico che ha avuto agli esordi del web e nella creazione di alcune delle principali applicazioni che oggi utilizziamo, il software open source offre notevoli benefici anche ai programmatori aziendali o indipendenti. Un codice sorgente open può essere studiato più facilmente da tutti, per sviluppare nuove competenze di programmazione. Le licenze open source offrono a chi voglia acquisire esperienza in materia la possibilità di sperimentare le modifiche, e di condividerle con i pari e la vasta community open source, persino contribuendo con correzioni ai progetti open source in corso.

Alle aziende, il software open source offre possibilità di personalizzazione per soddisfare esigenze specifiche, nonché di inserire nuove esperienze clienti non previste dal codice sorgente originario. Infine, c'è chi preferisce il software open source perché l'accessibilità del codice sorgente fa sì che le eventuali vulnerabilità della sicurezza siano monitorate da un numero maggiore di sviluppatori e da una community attiva e capace di offrire supporto.

Il software open source è il frutto di un modello di sviluppo open source decentralizzato, che promuove la collaborazione aperta e la produzione paritaria. Ha dato origine a un movimento di sviluppo software di ampia portata e spesso si fa riferimento ai principi su cui si fonda come all'"approccio open source".

L'approccio open source è efficace perché capace di attrarre professionisti con straordinarie competenze tecniche. Gran parte dell'innovazione tecnologica si sta sviluppando nella community open source e l'uso di software open source è sempre più adottato, in tutto il mondo. Linux, Kubernetes e Git sono alla base di tantissimi siti web e applicazioni popolari. Firefox e Chromium sono browser open source usati da milioni di persone.
 

L'open source secondo Red Hat

Red Hat Enterprise Linux logo

Oltre a essere un sistema operativo open source, Red Hat Enterprise Linux è anche la piattaforma Linux per aziende leader a livello mondiale. È la base da cui partire per rendere le app esistenti scalabili e distribuire le tecnologie emergenti su software bare metal, virtuali, container e tutte le tipologie di ambienti cloud.

Red Hat OpenShift Logo

Red Hat OpenShift® si basa su Kubernetes, la piattaforma open source che automatizza le operazioni dei container Linux. OpenShift offre operazioni automatizzate per l'intero stack, con cui gestire i deployment in ambienti cloud ibridi e multicloud.

Scopri perché Red Hat sostiene l'approccio open source