Speciale Panoramica sul software libero

Una spolverata nei meandri della storia e della filosofia del free software!

Speciale Panoramica sul software libero
INFORMAZIONI SCHEDA
Articolo a cura di

Software Libero: definizione

Spesso ci si riferisce al termine Software Libero per indicare un programma o un'applicazione che possiamo scaricare liberamente dalla rete e che quindi definiamo come gratis. In realtà il software libero è una questione di libertà, non di prezzo. Un programma può essere gratis ma non essere software libero e viceversa. Ci sono alcune proprietà che definiscono in modo chiaro i requisiti che un software deve avere per essere definito libero:

- Libertà di eseguirlo su qualunque piattaforma e per qualunque scopo;
- Libertà di studiarlo e di modificarlo secondo le proprie esigenze;
- Libertà di poterne ridistribuire copie o miglioramenti di esso.

Come è facile intuire da queste proprietà l'accesso al codice sorgente è un prerequisito del software libero.
Oltre al codice sorgente si devono rendere diponibili le versioni binarie o eseguibili del progetto qualora queste siano disponibili e, se un utente lo richiede, anche le versioni precedenti di tale materiale. Un punto sul quale è bene soffermarsi è che software libero non vuol dire non commerciale. Un utente che usufruisce di software libero scritto da altri ha la possibilita' di utilizzarne i benefici senza doverlo dire a nessuno ma ciò non gli nega la possiblità di modificarlo e di rivenderlo per scopi commerciali, senza inserire però alcuna restrizione sulla modifica e ridistribuzione del software stesso. Il permesso d'autore è un esempio di regola che si basa proprio su questi principi. Lo sviluppo commerciale di sofware libero è oggi alla base del successo di molte applicazioni e sistemi operativi.

Principali categorie di software

Oltre al software libero esistono altre metodologie di presentazione e di sviluppo del software, ne elenchiamo qui di seguito le principali:

- Software Open Source: questo tipo di software più o meno rispecchia le caratteristiche principali del software libero nonostante qualche disaccordo di carattere storico e concettuale;
- Software Public Domain: è una restrizione del software libero. In particolare il software di pubblico dominio è software privo di copyright, per cui copie o modifiche di esso possono non essere software libero;
- Software Proprietario: ogni copia o modifica di software proprietario è illegale a meno che non si disponga dei permessi necessari(sotto forma di licenza) emandati dall'autore;
- Software Freeware: spesso si identifica questo tipo di software come software libero. In realtà si possono reperire copie di software freeware gratuitamente ma non si ha la possibilità di modificarlo, in quanto nel pacchetto software non è presente il codice sorgente. Questo fa del software freeware software non libero;
- Software Shareware: questo software applica di fatto alcune restrizioni al software freeware. Si ha la possibilità di ridistribuire, senza modificare, copie di software, dovendo pagare però, per chiunque ne utilizzi una copia, una licenza d'uso.

Il sistema GNU-Linux:un pò di storia

- 1965: la AT&T, il MIT e la General Electric si uniscono nel progetto di un sistema operativo multiutente, multitasking, e multiprocessore: il Multics;
- 1969: il progetto fallisce, ma presso i Bell Labs della AT&T dalle ceneri di Multics nasce Unix, sviluppato da Ken Thompson. Il nome Unix(inizialmente Unics) è scelto in opposizione a Multics;
- 1973: dalla collaborazione con Dennis Ritchie, creatore del Linguaggio C, nasce la terza versione di Unix scritta in C anzichè in Assembler;
- Fine anni 70: un decreto Antitrust Americano impone all'AT&T la scelta fra Telecomunicazioni e Informatica, in seguito alla quale Unix viene offerto a basso costo alle Università;
- 1983: Richard Stallman(MIT) inizia una re-implementazione "free'' di Unix denominata GNU(acronimo ricorsivo di "Gnu is Not Unix'') che arricchirà Unix con nuovi e importanti tools come emacs, gcc e gdb e ne definirà la licenza d'uso(Gnu Public License, GPL);
- 1984: presso l'Università di Berkeley nasce la Berkeley Software Distribution(BSD) introducendo in Unix molte
nuove caratteristiche;
- 1984: AT&T incorpora molte caratteristiche di BSD e crea SystemV;
- Fine 80' inizi 90': i produttori di calcolatori creano loro versioni di Unix: SunOS/Solaris(Sun Microsystems), Ultrix(Digital), AIX(IBM) etc;
- 1988: nel tentativo di riunificare i dialetti Unix nasce lo standard Posix che definisce l'interfaccia di programmazione(API) tra il sistema operativo e le applicazioni(trasportabilità delle applicazioni). Nel '90 Posix viene riconosciuto da ISO(Organizzazione Internazionale per le Standarizzazioni; è un organismo internazionale per la definizione degli standard che produce standard industriali e commerciali a livello mondiale);
- 1991: BSD rilascia una versione "free''(conforme Posix) in cui viene rimosso tutto il residuo codice proprietario AT&T. Progetti su base volontaria ne continueranno poi lo sviluppo (FreeBDS, OpenBSD, . . . );
- 1991: Linus Torsvald(studente di Helsinky) inizia l'implementazione, a scopo didattico, di un Kernel Posix compatibile, sviluppato per l'architettura Intel X86, che prenderà il nome di Linux. Nel '94 viene rilasciata la prima versione completa ed affidabile di Linux. In seguito il kernel di Linux viene sviluppato per tutte le principali
architetture Hardware(Alpha, i386, ia64, m68k, mips, ppc, ppc64, s390, sparc, sparc64, x86_64, etc).

GNU

Il sistema GNU è un completo sistema operativo di tipo Unix. Un sistema GNU include molti pacchetti di software GNU e molti altri pacchetti provenienti da progetti diversi(X Window System, Tex, etc). La prima versione di prova di un sistema operativo GNU risale al 1996. Il software GNU è software libero coperto da permesso d'autore. Un parte del software GNU è scritto dalla Free Software Foundation(FSF) ma gran parte del codice è stato scritto da volontari appassionati di Informatica. I programmatori GNU si impegnano a non usare software non libero; ciò toglierebbe prestigio e motivazione al successo che il software libero ha avuto e sta avendo in questi anni. Se un progetto necessita di un programma proprietario, semplicemente il progetto si ferma finchè non viene sviluppata una versione libera di quel programma. Come già specificato in precedenza ciò non vuol dire che GNU non utilizzi software commerciale; infatti esiste un parte di applicativi sviluppata da privati che necessitano l'acquisto della licenza d'uso senza applicare alcuna restrizione alle caratteristiche del software libero. La principale licenza usata da GNU è la GPL(General Public License) che è un insieme specifico di termini di distribuzione per dare permesso d'autore ad un applicativo.

Linux

Per "distribuzione Linux'' si intende una collezione di programmi(Linux kernel, tools di sistema, applicativi) realizzando così una dotazione software completa per il calcolatore. Attualmente il software di base di un sistema Linux comprende, oltre al Kernel, anche diversi tools di sistema provenienti principalmente da BSD(Berkeley Univ. ), SystemV(ATT), X-Window(MIT) e GNU(FSF community). Ad esempio le librerie di sistema sono principalmente GNU, mentre i tools per l'amministrazione della rete sono BSD. Una distribuzione Linux è invece l'insieme del software di base e dei più diffusi programmi applicativi. Tutto il software viene precompilato all'interno di pacchetti di distribuzione(esempio RPM) e dotato di tools per una agevole gestione dell'installazione. Redhat(Fedora ed Enterprise), Debian, Mandriva, Suse, Slackware, Gentoo sono le principali distribuzioni attualmente disponibili.