Introduzione
         al
Free Software
Un po' di storia


L'idea di software libero nasce nel 1983 da Richard M.
Stallman, ricercatore nel laboratorio di intelligenza
artificiale del MIT, il quale, fondando il progetto GNU si
prefigge l'obiettivo di creare un sistema operativo
completamente libero.
Per adempiere a questo scopo, crea la Free Software
Foundation e la licenza GPL per dare supporto legale al
progetto.
Free as in Freedom,
                            not as in Free Beer

●Free si traduce con libero e non con gratis
●Un software può essere gratis ma non libero, e viceversa




Ci sono diversi esempi di software gratuiti sulla rete, che
definiamo FreeWare, ma che sono comunque software
proprietari (es. Acrobat Reader, Flash Player, Winamp).


Viceversa il software libero non è necessariamente gratuito
(Aziende che sviluppano distribuzioni di Linux vendono i loro
 prodotti, che sono comunque free software)
Le Quattro
                                                      Libertà

Quand'è allora che un software viene definito libero?

Quando la licenza con cui è distribuito rispetta quattro libertà fondamentali:


  Libertà 0 : Libertà di utilizzare il programma per qualsiasi scopo legittimo

  Libertà 1 : Libertà di studiare il funzionamento del programma, e di adattarlo ai
              propri bisogni.

  Libertà 2 : Libertà di copia e redistribuzione.

  Libertà 3 : Libertà di migliorare il programma e rendere pubblici i miglioramenti,
              in modo che l'intera comunità ne tragga beneficio.




L'accesso al codice sorgente è una precondizione per le libertà 1 e 3
Libertà 0

Era davvero necessario specificare che “L'utente deve poter eseguire il programma
per qualsiasi scopo legittimo?”



Molte software house impongono delle limitazioni sui propri software

   ●   Numero massimo di installazioni
   ●   Uso a solo scopo didattico
   ●   Uso a solo scopo personale
   ●   ...


La libertà 0 assicura che chi usufruisce del programma possa farne l'uso che vuole,
fintanto che non viola le leggi del proprio paese o la libertà altrui.
Libertà 1

Libertà di studiare il programma e adattarlo ai propri bisogni


Capita spesso di trovare buoni programmi ai quali manca
“un certo non so che “



Potendo esaminare il codice sorgente di un software, possiamo aggiungere
funzioni che ci servono, oppure riadattare quelle esistenti in modo che diano
l'output desiderato




Se non siamo programmatori, possiamo sempre contattarne uno e lasciare
a lui il compito, magari sotto compenso.
Libertà 2



Quante volte, un nostro amico vedendo un bel programma ci chiede di fargliene
una copia?

Se copiamo il programma e lo diamo al nostro amico, abbiamo infranto una legge


Dobbiamo scegliere se essere criminali o buoni amici


La libertà 2 ci solleva dal compiere questa scelta, consentendoci di copiare il
programma a chiunque vogliamo senza essere dei criminali.
Libertà 3



Se ci siamo trovati nella situazione descritta per la libertà 1, possiamo decidere sia
di tenere per noi i miglioramenti, che di renderli pubblici


Se decidiamo di rendere pubbliche le modifiche, ne beneficia l'intera comunità,
in primo luogo il creatore del programma, che può imparare dalle correzioni che
abbiamo apportato.


Se invece di correzioni abbiamo aggiunto nuove features, più persone usufruiranno
delle nostre migliorie, e noi ci siamo fatti un po' di pubblicità come programmatori :)
Lati positivi:
                                               sicurezza

Sappiamo tutti che di un software proprietario non si può visualizzare il codice.

Se decidiamo quindi di utilizzare un software proprietario, non possiamo giudicare
la qualità del software, che potrebbe, a nostra insaputa, essere pieno di errori, o
peggio, di codice malevolo.

Siamo quindi costretti a fidarci della società/azienda produttrice.

Un software libero invece può essere esaminato da un esperto che può
comunicarci se sono presenti errori nel codice o pezzi di codice malevolo.

Molti obiettano che non conoscendo il codice sorgente di un software, è più
difficile sfruttare degli exploit per violarlo.

Anche se diamo per vera questa affermazione, è sicuramente più difficile
correggere l'eventuale errore.
Lati positivi:
                                           aggiornamenti

Quando usiamo un software proprietario, è l'azienda produttrice che decide quali
funzioni aggiungere al programma e quando renderle disponibili.

Con un software libero possiamo chiedere direttamente agli sviluppatori di
aggiungere una determinata funzione, o se siamo programmatori, possiamo
direttamente implementarla e inviarla agli sviluppatori perché la integrino nel
software.
Lati negativi:
                                                 i Fork

Molte persone tendono ad abusare delle libertà offerte dalla filosofia Free Software,
specialmente della libertà 1, prendendo codice da progetti già esistenti e creando
progetti paralleli, che si traducono in difficoltà di scelta da parte dell'utente, e
rallentamento dello sviluppo


Il tema di fondo deve essere la collaborazione e non il protagonismo a tutti i costi
Conclusioni




Il software libero, con tutti i suoi pregi e difetti, è un ottima alternativa al
software proprietario. E' un modo di vedere il software che riporta
l'informatica alle sue radici universitarie, esaltandone gli aspetti di ricerca e
collaborazione fra sviluppatori, senza però distruggere l'aspetto economico.
Riferimenti




Free Software Foundation   -     http://www.fsf.org

Progetto GNU               -     http://www.gnu.org

HCSSLug                    -   http://www.hcsslug.org
Fine




Grazie

Introduzione al Free Software

  • 1.
    Introduzione al Free Software
  • 2.
    Un po' distoria L'idea di software libero nasce nel 1983 da Richard M. Stallman, ricercatore nel laboratorio di intelligenza artificiale del MIT, il quale, fondando il progetto GNU si prefigge l'obiettivo di creare un sistema operativo completamente libero. Per adempiere a questo scopo, crea la Free Software Foundation e la licenza GPL per dare supporto legale al progetto.
  • 3.
    Free as inFreedom, not as in Free Beer ●Free si traduce con libero e non con gratis ●Un software può essere gratis ma non libero, e viceversa Ci sono diversi esempi di software gratuiti sulla rete, che definiamo FreeWare, ma che sono comunque software proprietari (es. Acrobat Reader, Flash Player, Winamp). Viceversa il software libero non è necessariamente gratuito (Aziende che sviluppano distribuzioni di Linux vendono i loro prodotti, che sono comunque free software)
  • 4.
    Le Quattro Libertà Quand'è allora che un software viene definito libero? Quando la licenza con cui è distribuito rispetta quattro libertà fondamentali: Libertà 0 : Libertà di utilizzare il programma per qualsiasi scopo legittimo Libertà 1 : Libertà di studiare il funzionamento del programma, e di adattarlo ai propri bisogni. Libertà 2 : Libertà di copia e redistribuzione. Libertà 3 : Libertà di migliorare il programma e rendere pubblici i miglioramenti, in modo che l'intera comunità ne tragga beneficio. L'accesso al codice sorgente è una precondizione per le libertà 1 e 3
  • 5.
    Libertà 0 Era davveronecessario specificare che “L'utente deve poter eseguire il programma per qualsiasi scopo legittimo?” Molte software house impongono delle limitazioni sui propri software ● Numero massimo di installazioni ● Uso a solo scopo didattico ● Uso a solo scopo personale ● ... La libertà 0 assicura che chi usufruisce del programma possa farne l'uso che vuole, fintanto che non viola le leggi del proprio paese o la libertà altrui.
  • 6.
    Libertà 1 Libertà distudiare il programma e adattarlo ai propri bisogni Capita spesso di trovare buoni programmi ai quali manca “un certo non so che “ Potendo esaminare il codice sorgente di un software, possiamo aggiungere funzioni che ci servono, oppure riadattare quelle esistenti in modo che diano l'output desiderato Se non siamo programmatori, possiamo sempre contattarne uno e lasciare a lui il compito, magari sotto compenso.
  • 7.
    Libertà 2 Quante volte,un nostro amico vedendo un bel programma ci chiede di fargliene una copia? Se copiamo il programma e lo diamo al nostro amico, abbiamo infranto una legge Dobbiamo scegliere se essere criminali o buoni amici La libertà 2 ci solleva dal compiere questa scelta, consentendoci di copiare il programma a chiunque vogliamo senza essere dei criminali.
  • 8.
    Libertà 3 Se cisiamo trovati nella situazione descritta per la libertà 1, possiamo decidere sia di tenere per noi i miglioramenti, che di renderli pubblici Se decidiamo di rendere pubbliche le modifiche, ne beneficia l'intera comunità, in primo luogo il creatore del programma, che può imparare dalle correzioni che abbiamo apportato. Se invece di correzioni abbiamo aggiunto nuove features, più persone usufruiranno delle nostre migliorie, e noi ci siamo fatti un po' di pubblicità come programmatori :)
  • 9.
    Lati positivi: sicurezza Sappiamo tutti che di un software proprietario non si può visualizzare il codice. Se decidiamo quindi di utilizzare un software proprietario, non possiamo giudicare la qualità del software, che potrebbe, a nostra insaputa, essere pieno di errori, o peggio, di codice malevolo. Siamo quindi costretti a fidarci della società/azienda produttrice. Un software libero invece può essere esaminato da un esperto che può comunicarci se sono presenti errori nel codice o pezzi di codice malevolo. Molti obiettano che non conoscendo il codice sorgente di un software, è più difficile sfruttare degli exploit per violarlo. Anche se diamo per vera questa affermazione, è sicuramente più difficile correggere l'eventuale errore.
  • 10.
    Lati positivi: aggiornamenti Quando usiamo un software proprietario, è l'azienda produttrice che decide quali funzioni aggiungere al programma e quando renderle disponibili. Con un software libero possiamo chiedere direttamente agli sviluppatori di aggiungere una determinata funzione, o se siamo programmatori, possiamo direttamente implementarla e inviarla agli sviluppatori perché la integrino nel software.
  • 11.
    Lati negativi: i Fork Molte persone tendono ad abusare delle libertà offerte dalla filosofia Free Software, specialmente della libertà 1, prendendo codice da progetti già esistenti e creando progetti paralleli, che si traducono in difficoltà di scelta da parte dell'utente, e rallentamento dello sviluppo Il tema di fondo deve essere la collaborazione e non il protagonismo a tutti i costi
  • 12.
    Conclusioni Il software libero,con tutti i suoi pregi e difetti, è un ottima alternativa al software proprietario. E' un modo di vedere il software che riporta l'informatica alle sue radici universitarie, esaltandone gli aspetti di ricerca e collaborazione fra sviluppatori, senza però distruggere l'aspetto economico.
  • 13.
    Riferimenti Free Software Foundation - http://www.fsf.org Progetto GNU - http://www.gnu.org HCSSLug - http://www.hcsslug.org
  • 14.