Home > Condivisione della conoscenza, GNU/Linux, Libero vs Proprietario, newbie, Riflessioni > Software libero, open source, licenze: vediamo di capirci qualcosa (prima parte)

Software libero, open source, licenze: vediamo di capirci qualcosa (prima parte)

Un quadretto con le mascotte di alcuni software liberi

Un quadretto con le mascotte di alcuni software liberi

Tempo fa aprii la sezione “richieste“. Alcuni “aficionados” del mio blog mi hanno chiesto di spiegare per bene alcuni concetti, come software libero, open source e, in particolare, la differenza tra le diverse licenze.

Ed eccomi qui.

Iniziamo quindi dalla definizione di software libero. La definizione è stata coniata da Richard Stallman ed è composta da quattro libertà che vado prontamente a spiegare.

Libertà di eseguire il programma, per qualsiasi scopo (libertà 0)

Questa è la libertà più semplice e, almeno all’apparenza, sembra persino inutile enunciarla. Quale programma ci impedisce di utilizzarlo per qualsiasi scopo? In realtà tantissimi.

Ad esempio, Mac OS X ha una licenza che ci impedisce di utilizzarlo per far funzionare un computer che non sia Apple. Microsoft Windows, nella versione OEM (cioè quella che troviamo preinstallata quando compriamo un PC)  ha una licenza che ci impedisce di utilizzarlo su un computer diverso da quello acquistato.

Molti software gratuiti sono limitati da licenze che dicono che non possiamo usarli per “scopi commerciali”. Ovvero possiamo usarli a casa, per i nostri fatti, ma non in ufficio.

Un software libero, invece, deve dare la libertà all’utente di poterlo utilizzare davvero per qualsiasi scopo. Persino uno scopo non previsto dal programmatore o che al programmatore dispiacerebbe. La licenza non deve porre alcun limite.

Libertà di studiare come funziona il programma e adattarlo alle proprie necessità (libertà 1). L’accesso al codice sorgente ne è un prerequisito.

Abbiamo visto in precedenza che i programmi sono scritti in certi linguaggi, chiamati “ad alto livello”, nel senso che sono simili al linguaggio umano. Viceversa il computer comprende solo linguaggio binario. Un programma (il compilatore) si occupa di tradurre il linguaggio ad alto livello in linguaggio binario (linguaggio macchina).

Per studiare come funziona il programma abbiamo quindi bisogno della sua forma primitiva, quella scritta dal programmatore. Sebbene sia possibile, con tecniche molto complesse, riuscire a capire qualcosa anche a partire dal linguaggio macchina, tuttavia questo è molto difficile. Inoltre è esplicitamente proibito da molte licenze di software proprietario.

Avendo invece il programma nel suo codice originario (detto codice sorgente), per un altro programmatore è abbastanza agevole studiare il programma e capire come funziona.

Ma questo non basta: la libertà 1 dice anche che possiamo modificarlo e adattarlo alle nostre esigenze (o pagare qualcuno per farlo). Questo significa che se voglio aggiungere una nuova funzione, oppure correggere un errore, posso farlo.

In altre parole, l’autore del programma si spoglia dell’esclusiva “proprietà” della sua opera e ci dice: ok, se il programma non ti soddisfa al 100%, miglioralo.

E’ una pratica piuttosto comune, infatti, che le aziende o gli enti paghino dei programmatori per apportare delle modifiche a programmi liberi. In questo modo, invece di commissionare un software del tutto nuovo, prendono il software che già esiste e lo adattano ai loro bisogni.

Non solo le aziende, chiaramente, ma chiunque sia capace di farlo.

Allora uno potrebbe chiedersi:

ok, ma a me che mi frega? Io non so programmare.

Vero, ma se un programma non ha una funzione che ritieni utile puoi chiedere al programmatore di inserirla (di solito con i software liberi è facile contattare il programmatore) o, se lui non lo fa, può farlo un altro utente più esperto di te, magari sul forum di supporto del programma stesso.

Per esempio, personalmente mi è capitato (sul forum di Ubuntu) di apportare una piccola modifica al driver di una scheda di rete, in modo che potesse funzionare anche su un altro modello simile. L’utente ovviamente è stato contentissimo. Ma questo è stato possibile unicamente perché quel driver era software libero, altrimenti non ci sarebbe stato modo di aiutarlo.

Libertà di ridistribuire copie in modo da aiutare il prossimo (libertà 2).

“Non copiate Windows”. “Non mettere Photoshop su e-mule”. Questo è quello che dicono i “padroni” del software. E’ un loro diritto farlo, almeno finché per dissuadere la gente non violano qualche nostro diritto più importante.

Ma anche se è loro diritto, non è detto che sia un buon diritto. Chi fa software libero, pensa di non avere il diritto di impedire agli altri di dare via una copia del programma. Non solo perché, come Stallman, ritiene che così si aiutino gli altri, ma anche per aiutare se stesso. Più gente usa un programma, più famosi si diventa. Più gente usa un programma, più test sul suo funzionamento vengono effettuati. Più gente usa un programma, più è facile reclutare altri programmatori che possono dare una mano a correggere bug o a migliorarlo in altro modo. Insomma, è uno scambio: rinuncio a controllare le copie ma ottengo altri benefici.

Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio (libertà 3). L’accesso al codice sorgente ne è un prerequisito.

Questa libertà è una sorta di fusione tra la libertà 1 e la libertà 2. Non solo ho la possibilità di migliorare il programma per me stesso, non solo posso ridistribuire copie del programma, ma posso distribuire anche le migliorie che ho apportato, in modo che altri ne traggano beneficio.

Attenzione: è una libertà, non un obbligo. La licenza non mi deve obbligare a dare in giro le mie modifiche se non voglio farlo. Neppure mi deve obbligare a comunicarle all’autore originale. Questo perché se l’autore muore, oppure se cambia indirizzo e-mail, la libertà 3 muore con lui. Invece questa libertà deve rimanere.

E’ la libertà sulla quale si basa il modello di sviluppo comunitario del software libero. Io faccio una modifica, la rendo pubblica, altri la provano, magari migliorano ulteriormente la mia modifica e io stesso posso così usare un programma ancora migliore.

Anche se non sono obbligato a farlo, nella maggioranza dei casi conviene comunque ridistribuire le modifiche che ho fatto ad un programma. Aiutarsi l’un l’altro, insomma, è conveniente.

Attenzione: molti confondono “free software” con software “gratis”, poiché “free” in inglese vuol dire sia gratuito che libero. Ma quando parliamo di “free software” intendiamo il software libero, mentre quello semplicemente gratis si dice “freeware”.

Bene, la prossima volta analizzeremo le diverse licenze che attuano questi principii. Noteremo che esistono licenze anche molto diverse tra loro, che producono effetti sugli utenti e sulla comunità del software molto differenti.

  1. SimPE94
    2 novembre 2008 alle 12:22

    Come al solito, impeccabile!😀
    [quote]
    Allora uno potrebbe chiedersi:

    ok, ma a me che mi frega? Io non so programmare.

    Vero, ma se un programma non ha una funzione che ritieni utile puoi chiedere al programmatore di inserirla (di solito con i software liberi è facile contattare il programmatore) o, se lui non lo fa, può farlo un altro utente più esperto di te, magari sul forum di supporto del programma stesso.[/quote]
    Questo, però, l’hai già detto nella pagina “Cosa sono GNU, Linux e il software libero”. Vabbè…😉

    Altra domanda: nell’immagine dell’intestazione, ho riconosciuto tutte le mascotte… tranne quella matita gigante con quel nasone rosso: chi è?🙂

  2. Stackx
    2 novembre 2008 alle 13:17

    È Duke, la mascotte di Java; ma se guardi bene l’immagine troverai tanti altri piccoli riferimenti al mondo FS😉

  3. 2 novembre 2008 alle 13:24

    Manca il Python(e)

    Bye!

  4. 2 novembre 2008 alle 14:14

    Per i curiosi:

    Il pinguino = Linux
    La testa di animale appesa al muro: GNU
    La freccia con il naso rosso e le tazzine di caffè: Java
    Il diavoletto = BSD
    Il dinosauro = Mozilla
    Il dado con la X = X Window System (Xorg)
    Il taccuino = OpenOffice.org
    Il dato colorato = gtk
    Il pesce palla nella boccia = OpenBSD / ssh
    Il portamatite + pennelli = Gimp
    La penna (nel portamatite) = Apache
    Il cammello = il linguaggio Perl
    Il logo sul calendario = Evolution
    Il logo sulla tovaglia = Gnome
    La foto in alto a sinistra = R.Stallman
    l’altra foto = **non lo so**

    Chi lo sa?

  5. sid9477
    2 novembre 2008 alle 14:23

    molto chiaro, come al solito🙂
    Bell’immagine😉 L’altra foto potrebbe essere Torvalds? Avrebbe senso…

  6. 2 novembre 2008 alle 15:02

    @sid: sì, ma non è lui.

  7. Stackx
    2 novembre 2008 alle 15:24

    Credo sia la foto di James Gosling, il creatore di Java:
    http://it.wikipedia.org/wiki/James_Gosling

  8. giulio2
    2 novembre 2008 alle 15:32

    Il quadernetto tra BSD e i dadi potrebbe essere OpenOffice.Org?

  9. 3 novembre 2008 alle 0:57

    Le questioni spinose sono:

    – i driver proprietari (fglrx, nvidia) che invalidano la licenza del kernel
    Ci sono distribuzioni che distribuiscono i driver proprietari inclusi. Non si tratta di una violazione?

    – con la GPLV3 si può fare un modulo per Drupal o WordPress senza doverlo distribuirlo?

  10. 3 novembre 2008 alle 1:43

    @grigio:

    1. no, non si tratta di una violazione, i moduli proprietari possono essere distribuiti insieme al kernel se la loro licenza lo permette (e penso lo permetta).

    2. Sì, certo, ma proprio per questo esiste ma AGPL per le applicazioni on-line.

  11. 3 novembre 2008 alle 3:43

    Potrebbe essere Tanenbaum? [potrei aver detto una cazzata…è troppo piccina la foto…e sembra essere più ciccio di Tanenbaum]

    Potrebbe anche essere Shuttleworth….

    Se ingrandisci ci riprovo😀

  12. 3 novembre 2008 alle 4:13

    @Stackx: sì, è lui:

  13. 28 novembre 2008 alle 0:43

    Mah, un po’ macabra l’idea di GNU appeso al muro no? Manca il coyote di GIMP😉

  14. 28 novembre 2008 alle 3:44

    guarda bene sul bicchiere che contiene i pennelli

  15. 12 aprile 2014 alle 20:24

    wonderful publish, very informative. I wonder why the opposite experts
    of this sector do not understand this. You must continue your writing.
    I am confident, you have a huge readers’ base already!

  1. 25 novembre 2008 alle 4:05
  2. 13 gennaio 2009 alle 23:08

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: