luglio 22, 2011

Software: concetti elementari e tipologia in base alla licenza.

| No comment
Il software è un codice che è trattato dalle leggi sul diritto di autore, in maniera simile a quanto avviene per le opere letterarie. 

Tradizionalmente, il contratto che regola l'uso del software è la licenza ed è sempre importante conoscere i termini di questo accordo per il software con cui si intende avere a che fare.

La legge sul diritto di autore stabilisce già quali sono i diritti di chi produce l'opera e di chi la utilizza, ma nell'ambito del software si è introdotto nella pratica un contratto, non firmato, il cui scopo è spesso quello di limitare ulteriormente i diritti di chi ne fruisce. Questo contratto è la licenza.

Il software ha un proprietario (salvo il caso del software di dominio pubblico che verrà descritto), che è tale in quanto «detiene i diritti di autore». Questo proprietario può essere l'autore originale, oppure un altro detentore che ne ha acquisito i diritti in base a un contratto. Il detentore dei diritti di autore è colui che possiede il copyright.

L'utilizzo del software può essere concesso gratuitamente o a pagamento, per le operazioni stabilite nel contratto di licenza, o in sua mancanza per quanto stabilito dalla legge. Il pagamento per l'«acquisto» di software, non si riferisce all'acquisizione dei diritti di autore, ma solo delle facoltà stabilite dalla legge, ovvero da quanto indicato nella licenza.

La natura del software è tale per cui questo è composto da due parti fondamentali: il codice sorgente e il codice eseguibile. Il primo è intelligibile, il secondo è adatto all'esecuzione e non è intelligibile. Dal momento che per funzionare è sufficiente il codice eseguibile, le leggi dei vari paesi che tutelano il diritto di autore per il software tendono a consentire la distribuzione del solo codice eseguibile, lasciando che chi detiene i diritti di autore possa mantenere nascosto il codice sorgente.

Inoltre, le leggi di questi paesi tendono a considerare illecita la decompilazione, ovvero lo studio del codice eseguibile volto a scoprirne il funzionamento.

Compilazione. 
         file sorgente                                   file eseguibile
.-----------------------------.                  .-----------------------------.
| #include           |                  | .ELF......ô[ÉÃU.å.ì.ÉÃ.4.4. |
| int main ()                 |   compilazione   | t&.U.å.ì.Sè....[.Ã.....43s. |
| {                           |----------------->| ...                         |
|   printf ("Ciao mondo!\n"); |                  | ...                         |
| }                           |                  | è.yyy[......Ciao mondo!U.å  |
`-----------------------------'                  `-----------------------------'
In molti paesi esiste anche la possibilità di brevettare algoritmi e altri concetti riconducibili al software. Il brevetto impedisce così l'uso dell'algoritmo o dell'idea registrata, se non dopo un'autorizzazione esplicita da parte del detentore di questo tipo di diritto.

Schema della classificazione del software; disegno di Chao-Kuei, ottenuto dal sito di FSF.
figure/a2-software-categorie

Software libero

Il software libero è software che fornisce il permesso per chiunque di utilizzarlo, copiarlo e distribuirlo, in forma originale, o anche dopo averlo modificato, sia gratuitamente che a pagamento. Il software libero può essere tale solo se viene messo a disposizione assieme al codice sorgente, per cui, a questo proposito, qualcuno ha detto: «se non è sorgente, non è software» (if it's not source, it's not software).

È importante sottolineare che la «libertà» del software libero non sta tanto nel prezzo, che eventualmente può anche essere richiesto per il servizio di chi ne distribuisce le copie, ma nella possibilità di usarlo senza vincoli, di copiarlo come e quanto si vuole, di poterne distribuire le copie, di poterlo modificare e di poterne distribuire anche le copie modificate.

Alcune persone preferiscono utilizzare la definizione «Open Source» per fare riferimento al software libero nei termini che sono stati descritti, per evitare ambiguità nella lingua inglese. Nella lingua italiana, come in molte altre lingue, è più opportuno l'uso della definizione «software libero».
Si distinguono quattro punti fondamentali, necessari perché il software possa essere considerato «libero»:
  • libertà 0, ovvero la libertà di eseguire il programma per qualunque scopo;
  • libertà 1, ovvero la libertà di studiare come funziona il programma e di adattarlo alle proprie esigenze (in tal caso, deve essere disponibile il sorgente);
  • libertà 2, ovvero la libertà di ridistribuire copie del programma;
  • libertà 3, ovvero la libertà di migliorare il programma e di distribuire tali miglioramenti (anche per questo è necessario disporre dei sorgenti).
Nell'opera, il software che non può essere commercializzato, pur soddisfacendo i punti elencati qui, non viene considerato software libero.



Vale la pena di elencare alcune definizioni riferite al software libero.
  • software di dominio pubblico
    Il software di dominio pubblico è software senza copyright. Di per sé, questo tipo di software è libero, solo che, non avendo un copyright, non ha nemmeno una licenza e chiunque può farne quello che vuole, anche appropriarsi dei diritti. Questo implica che alcune copie, o varianti di questo software possono non essere più libere.
  • software protetto da copyleft
    La parola copyleft («permesso d'autore») è un'invenzione e vuole rappresentare il copyright di chi, mentre difende il proprio diritto di autore, vuole difendere la libertà della sua opera, imponendo che questa e le sue derivazioni restino libere. In pratica, una licenza appartenente alla categoria «copyleft» impedisce che chi ridistribuisce il software (originale o modificato che sia) possa aggiungere delle restrizioni ulteriori. Il classico esempio di licenza di questo tipo è la licenza pubblica GNU-GPL
  • software libero non protetto da copyleft
    Il software libero non è necessariamente di tipo copyleft e ciò accade quando la licenza non vieta espressamente l'aggiunta di restrizioni da parte di chi lo ridistribuisce. Quando si utilizza software di questo tipo, non è possibile generalizzare: occorre accertarsi dei termini del contratto che riguarda la copia particolare della quale si è venuti in possesso.
  • software GPL
    La licenza GNU-GPL è l'esempio più importante di licenza che protegge il software libero con il copyleft. Quando si parla di «software GPL» si intende fare riferimento a software protetto con la licenza pubblica GNU-GPL.

Software non libero

Il software non è libero tutte le volte che non sono soddisfatti tutti i requisiti necessari per poterlo essere. È bene ricordare che il prezzo non è un fattore che limita la libertà, mentre altri dettagli sono più importanti. Anche in questo caso, vale la pena di elencare alcune definizioni che in generale riguardano software non libero.
  • software semi-libero
    Il software semi-libero è software che permette agli individui di usarlo, copiarlo, modificarlo e distribuirlo, anche modificato, per qualunque scopo, escluso quello di trarne profitto. In altri termini, si potrebbe dire che si tratta di software libero a cui è stata aggiunta la limitazione per la quale questo non può essere usato e distribuito per trarne profitto. Questo dettaglio è molto importante e non va trascurato.
  • software proprietario
    Il software proprietario è quel software che non è né libero, né semi-libero. Di solito, per «avere a che fare» con questo software è necessario ottenere un permesso speciale, che spesso si limita a concedere l'uso su un elaboratore, o su un gruppo ben determinato.
    • software freeware
      Il termine freeware non è abbinato a una definizione precisa, ma in generale viene inteso generalmente come software gratuito, del quale non viene reso pubblico il codice sorgente, che può essere usato e copiato senza poterlo modificare. In questo senso, il prefisso «free» serve solo a evidenziare la gratuità della cosa, ma non la libertà che invece richiede molto di più.
    • software shareware
      Con il termine shareware si fa riferimento a software proprietario che può essere ridistribuito, ma per il quale viene richiesto espressamente il pagamento dopo un periodo di prova.

 Software commerciale

In base alle classificazioni viste in questo capitolo, il software commerciale è tale solo in quanto viene venduto per profitto. Uno degli elementi cardine del software libero è proprio il fatto che viene concessa espressamente la facoltà di venderne delle copie (originali o modificate), per trarne profitto. In questo senso, è importante evitare di confondere il software proprietario con il software commerciale, perché non sono la stessa cosa.
Per comprendere o confondere meglio le cose, si aggiunga il fatto che può esistere anche del software non-libero, che non è nemmeno commerciale.

Annotazioni su alcune licenze

Il documento Various Licenses and Comments about Them raggiungibile all'indirizzo <http://www.gnu.org/philosophy/license-list.html>, elenca dettagliatamente le caratteristiche di un numero molto elevato di licenze. Vale la pena, qui, di fare qualche annotazione su alcune licenze che non sono nate dalla Free Software Foundation.

Schema riassuntivo minimo per il confronto tra alcune licenze importanti, secondo le informazioni pubblicate da Free Software Foundation nel documento Various Licenses and Comments about Them raggiungibile all'indirizzo <http://www.gnu.org/philosophy/license-list.html>. Prima parte. 

Denominazione Sigla Software libero entro i termini minimi di tale definizione Copyleft Compatibile con GNU-GPL Compatibile con software non libero Annotazioni
GNU General Public License GPL No
GNU Lesser General Public License LGPL
X11 o MIT X11 No
Cryptix General License
No
BSD non Berkeley
No Esiste troppa confusione attorno alla sigla BSD, con la quale vengono definite diverse licenze più o meno simili a quella di Berkeley.
W3C W3C


Clarified Artistic License
No


Schema riassuntivo minimo per il confronto tra alcune licenze importanti, secondo le informazioni pubblicate da Free Software Foundation nel documento Various Licenses and Comments about Them raggiungibile all'indirizzo <http://www.gnu.org/philosophy/license-list.html>. Seconda parte. 

Denominazione Sigla Software libero entro i termini minimi di tale definizione Copyleft Compatibile con GNU-GPL Compatibile con software non libero Annotazioni
Arphic Public License
No

BSD originale BSD No No
Zope Public License
No No

Apache License
No No

OpenLDAP
No No

IBM Public License

No

Phorum License

No

LaTeX Project Public License LPPL
No

Mozilla Public License MPL
No

Netizen Open Source License NOSL
No

Interbase Public License

No

Sun Public License

No

Nokia Open Source License

No

Netscape Public License NPL
No

Jabber Open Source License

No

Sun Industry Standards Source License

No

Qt Public License QPL
No

FreeType License
No No

Open Compatibility License

No


Schema riassuntivo minimo per il confronto tra alcune licenze importanti, secondo le informazioni pubblicate da Free Software Foundation nel documento Various Licenses and Comments about Them raggiungibile all'indirizzo <http://www.gnu.org/philosophy/license-list.html>. Terza parte. 

Denominazione Sigla Software libero entro i termini minimi di tale definizione Copyleft Compatibile con GNU-GPL Compatibile con software non libero Annotazioni
Artistic License Artistic No
No
Licenza formulata male.
Apple Public Source License APSL No
No

Sun Community Source License
No
No

Plan 9 License
No
No

Open Public License
No
No

Sun Solaris Source Code License
No
No

YaST License
No
No

Licenza Artistic

La licenza Artistic originale è, per convinzione diffusa, una licenza formulata male, troppo vaga e per questo inadatta a garantire la libertà del software. Sotto questo aspetto, si tratta di una licenza che non rientra nell'ambito del software libero.
Per porre rimedio alle carenze della licenza Artistic, ne esiste una versione revisionata, definibile come Clarified Artistic License.

Licenza BSD

La licenza BSD originale fa esplicito riferimento all'università di Berkeley, con espresso divieto di utilizzarne il nome per scopi pubblicitari. Anche se questo fatto non crea alcun problema alla fruizione del software, non è conveniente utilizzare questa licenza, a meno di avere un motivo valido in tal senso. A ogni modo, questa particolarità non la rende una licenza adatta a situazioni generali e crea problemi di compatibilità con la licenza GNU-GPL.
Esistono versioni modificate di questa licenza, per ovviare all'inconveniente che è stato descritto. Tuttavia, non esiste una definizione chiara per queste licenze e si continuano a indicare come licenze BSD, creando una confusione che invece sarebbe bene evitare.

Licenza QPL

La licenza QPL, nota perché è stata usata in passato per la libreria grafica Qt, è incompatibile con la licenza GNU-GPL e pone delle restrizioni alla circolazione delle modifiche.

Riferimenti

Ricerca personalizzata




Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

Trovato questo articolo interessante? Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google, Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie! CONDIVIDI SU!

stampa la pagina
,

Nessun commento:

Posta un commento

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.

Ultimi post pubblicati

Archivio

Etichette

Ubuntulandia in Pinterest

Post Più Popolari