Open source

Prima di parlare di open source è opportuno accennare a cosa si intende per freesoftware.

Freesoftware

Il termine freeware indica un software che viene distribuito in modo gratuito.
Il freeware è distribuito indifferentemente con o senza codice sorgente, a totale discrezione dell'autore e senza alcun obbligo al riguardo.

È sottoposto esplicitamente ad una licenza che ne permette la redistribuzione gratuita. Il software freeware viene concesso in uso senza alcun corrispettivo, ed è liberamente duplicabile e distribuibile, con pochissime eccezioni.
Di norma l'autore che decide di rilasciare il suo lavoro come freeware, esercitando appieno il suo diritto di scegliere le forme e le modalità di distribuzione che ritiene più idonee, inserisce esplicitamente delle clausole che impediscono qualsiasi tipo di pagamento per la distribuzione del suo software, fatto salvo un eventuale "piccolo" rimborso per supporti e spese di duplicazione, esattamente come avviene per lo shareware.
Altri esempi di restrizioni opzionalmente inserite dagli autori sono le limitazioni all'utilizzo da parte di istituzioni statali o forze armate.
Il termine freeware è stato coniato da Andrew Fluegelman (uno sviluppatore di software) per un programma di comunicazione chiamato PC-Talk.

Open source

Differentemente dal freesoftware, l' open source indica un software i cui autori ne favoriscono il libero studio e l'apporto di modifiche da parte di altri programmatori indipendenti. Questo è realizzato mediante l'applicazione di apposite licenze d'uso.

La collaborazione di più parti (in genere libera e spontanea) permette al prodotto finale di raggiungere una complessità maggiore di quanto potrebbe ottenere un singolo gruppo di lavoro.

L'open source ha tratto grande beneficio da Internet, perché esso permette a programmatori geograficamente distanti di coordinarsi e lavorare allo stesso progetto. I software open source attualmente più diffusi sono Firefox, OpenOffice, VLC, Gimp, 7-Zip, oltre ad un gran numero di progetti rivolti non all'utente finale ma ad altri programmatori.

Ricordiamoci che GNU e il kernel Linux, hanno contribuito in modo fondamentale alla nascita dell'open source.

Rilasciare liberamente il software significa anche permettere ad altri di leggerlo, di imparare da esso, di valutarlo, giiudicarlo, emendarlo... infine di migliorarlo continuamente.

C'è chi obietta che questo modello di sviluppo aperto non è adatto a situazioni in cui è importante la sicurezza: se un software è pubblicamente noto, chiunque può individuare eventuali difetti di sicurezza e violare i sistemi che lo usano.

Sta di fatto che, richiamando uno degli esempi precedenti, Windows , il cui codice sorgente non è pubblicamente noto, viene regolarmente violato ed è estremamente meno sicuro di Linux. Infatti, in qualunque corso serio riguardante la sicurezza, tra le prime cose si insegna che la sicurezza di un algoritmo non può e non deve risiedere nella sua segretezza, bensì nell'impossibilità di forzarlo pur conoscendolo.