Unix

La nascita ed i principi della filosofia “Free Software”

L’ origine del movimento Open Source

Kernel Linux

GNU/Linux

 

Un sistema operativo è il componente responsabile del diretto controllo e gestione dell'hardware di un computer nonché delle operazioni di base che tale hardware può svolgere; il sistema operativo si occupa anche di controllare gli accessi degli utenti e dei processi che vengono eseguiti.

Un generico sistema operativo moderno si compone di alcune parti ben definite: un gestore di file system, che si occupa di esaudire le richieste di accesso alle memorie di massa, un gestore di memoria virtuale, che alloca pagine di memoria a richiesta e si assicura che tale memoria sia presente nella memoria fisica al momento giusto, uno scheduler che assicura ai vari processi attivi una ben definita quantità di tempo di elaborazione, uno spooler che accumula i dati da stampare e li stampa in successione, una interfaccia utente (shell o GUI) che permette all’utente di interagire con la macchina ed un kernel, fulcro del sistema, che gestisce tutti i componenti di cui sopra. Un particolare sistema operativo può avere tutti questi componenti o solo alcuni di essi.

I sistemi operativi trovano la loro origine verso la fine degli anni quaranta, quando fu sentita in modo pressante la necessità di avere a disposizione non solo un’interfaccia che sollevasse il programmatore dalla gestione diretta dei dispositivi di input/output, ma avesse anche supporti per velocizzare alcune operazioni di base a fronte dello sviluppo delle prestazioni hardware dei calcolatori. Da allora i sistemi operativi si sono evoluti, passando dalle strutture più semplici dei sistemi dedicati a quelle odierne che sovrintendono il colloquio tra più computer posti in rete tra loro.

 

UNIX

Nella metà degli anni sessanta, i laboratori della Bell Telephone (Bell Labs, una divisione della AT&T) stavano lavorando con la General Electric e il Project MAC del MIT per scrivere un sistema operativo chiamato Multics. Nel 1945, però, i laboratori della Bell decisero che il progetto non sarebbe andato in porto e sciolsero il gruppo. Questo comunque lasciò i laboratori della Bell senza un buon sistema operativo. Ken Thompson e Dennis Ritchie decisero di abbozzare un sistema operativo che doveva soddisfare alle necessità dei Laboratori della Bell. Nel 1970, quando a Thompson servì un ambiente di sviluppo che funzionasse su un PDP-7, egli implementò le loro idee. Come gioco di parole su Multics, Brian Kernighan, un altro ricercatore della Bell Labs, diede al sistema il nome Unix. In seguito, Dennis Ritchie inventò il linguaggio di programmazione C. Nel 1973, UNIX fu riscritto in C, invece che nell'originale linguaggio assembly. Alla fine degli anni '70, alla AT&T fu vietato di competere nell'industria informatica, quindi essa fornì a prezzo molto basso le licenze di UNIX a svariati college ed università, per cui prese piede lentamente all'interno delle istituzioni accademiche, ma alla fine divenne popolare anche nell'ambiente commerciale.

Lo UNIX di oggi è diverso dallo Unix del 1970: ha due grandi versioni: la SystemV, degli Unix System Laboratories (USL), dei consociati della Novell, e la Berkeley Software Distribution (BSD).

Esistono comunque diverse versioni di UNIX oltre alle due citate, ma la maggior parte delle versioni commerciali di UNIX derivano da esse. Le versioni di UNIX attualmente utilizzate incorporano caratteristiche di entrambe. Le versioni attuali di UNIX per PC Intel costano tra i $500 e i $2000. A metà degli anni 90, Unix era usato da 5 milioni di computer in tutto il mondo ed ancora oggi continua ad affascinare una larghissima schiera di utenti.

 

Link Utili

www.gentoo.org
www.debian.org
www.redhat.com
www.slackware.com
www.linux-mandrake.com
www.suse.com
www.linux.org
www.opensource.org
www.gnu.org
www.stallman.org
www.softwarelibero.it 
 

Google

 
scrivimi all'email
desimone.daniele@libero.it

La nascita ed i principi della filosofia “Free Software”

Il fondatore del movimento ‘free software’ è l’americano Richard Stallman laureatosi in fisica ad Harvard, impara a programmare e, verso la metà degli anni Settanta, muove i primi passi nella comunità del Massachusetts Institute of Technology (M.I.T) dove gli sviluppatori lavorano condividendo i loro saperi e mettendo in comunione le loro creazioni.

Una pratica di condivisione che è anche un solido modello di sviluppo per il software, opera di un ingegno collettivo e, soprattutto, di un approccio collaborativo fondato sulla condivisione delle competenze di ognuno. Questa filosofia folgora Stallman e lo convince che il metodo collaborativo è la strada migliore per lo sviluppo non solo del software ma della società intera. Di lì a poco, però, il vento sarebbe cambiato. Con l’affermazione del software proprietario lo sviluppo per accrescimento progressivo, che è alla base del lavoro delle prime comunità di programmatori, deve far posto ad un nuovo modello che estromette completamente gli utenti dal processo di produzione di un programma e vieta loro di modificare e ridistribuire il codice che, anzi, non viene più distribuito.

Inizia così l’era del ‘Closed Source’ che Stallman sintetizza così: “Questo significa che il primo passo per usare un computer è promettere di negare aiuto al proprio vicino”. Una comunità cooperante è vietata. La regola creata dai proprietari di software proprietario è: se condividi il software con il tuo vicino sei un pirata, se vuoi modifiche, pregaci di farle.

Stallman fa parte per più di dieci anni dei ricercatori del M.I.T, con i quali studia a fondo i sistemi operativi, ma nel 1984 si licenzia dall’istituto per fondare il suo ‘progetto GNU’ (vedi logo in figura 1) decidendo di intraprendere un’impresa pionieristica: costruire, partendo da zero, un intero sistema operativo libero, un free software appunto, solo in questo modo si sarebbe potuta ricostituire una comunità di programmatori aperta a tutti e fondata sul principio della collaborazione.

GNU è un acronimo ricorsivo e significa GNU is Not Unix ovvero "GNU non è Unix", il nome simbolizza che il progetto ha l’obiettivo di creare un sistema operativo compatibile, ma non identico a Unix.

Richard Stallman con il progetto GNU volle creare un Sistema Operativo Unix-like completo costituito da software libero, ma compatibile con Unix. Per arrivare a questo risultato, all'interno del progetto vennero creati programmi per coprire ogni necessità informatica: compilatori, lettori multimediali, programmi di crittografia ed altro. Malgrado non si sia mai attuato il progetto a livello kernel, il software prodotto da GNU era di una tale qualità che gli amministratori di sistema spesso sostituirono i programmi originali delle loro distribuzioni Unix con le versioni GNU.

 

 

  Logo GNU’s NOT Unix.

 

Il termine free software, utilizzato dai seguaci di questo movimento, non ha nulla a che vedere con il prezzo del programma, ma vuole esprimere il concetto di libertà: il termine ‘free’ significa sia ‘gratis’ che ‘libero’. Questo è il motivo per cui i sostenitori del ‘free software’ temono che possa essere frainteso il vero scopo del movimento, ossia quello di portare una ‘ventata di libertà’ nel mondo dell’informatica.

Quattro sono le libertà fondamentali che un programma deve garantire all’utente per poter essere considerato software libero:

libertà di eseguire il programma per qualsiasi scopo;

libertà di modificare il programma secondo i propri bisogni (perché questa libertà abbia effetto in pratica, è necessario avere accesso al codice sorgente del programma);

libertà di distribuire copie del programma gratuitamente o dietro compenso;

libertà di distribuire versioni modificate del programma, così che la comunità possa usufruire dei miglioramenti apportati.

Una volta inteso correttamente questo significato non sorprende scoprire che la vendita dei software non solo non contraddice lo spirito del software libero, ma è anzi incoraggiata da Stallman quale metodo per reperire fondi da destinare allo sviluppo dei programmi. Per conseguire lo scopo del progetto GNU, cioè quello di garantire libertà agli utenti, vi è bisogno anche di termini di distribuzione che evitino che il software GNU sia trasformato in software proprietario.

Per questo motivo Stallam inventa, con l’aiuto di esperti avvocati, un nuovo tipo di licenza, la ‘GNU Licenza Pubblica Generica’ o GNU GPL, la quale garantisce a tutti gli utenti le quattro libertà fondamentali, vietando a chiunque di imporre restrizioni.

La GNU GPL è una licenza per software libero, è il punto di partenza per il free software. Il testo ufficiale della licenza in italiano è disponibile all’URL: htttp ://www.softwarelibero.it/gnudoc/gpl.it.txt.

La licenza è stata scritta da Richard Stallman e Eben Moglen nel 1989, per distribuire i programmi creati dal Progetto GNU. GNU GPL si contrappone alle licenze per software proprietario e permette all'utente libertà di utilizzo, copia, modifica e distribuzione per cui è diventata una delle licenze per software libero più usate.

Il testo della GNU GPL è disponibile per chiunque riceva la copia di un software coperto da questa licenza. I licenziatari che accettano le sue condizioni hanno la possibilità di modificare il software, di copiarlo e ridistribuirlo con o senza modifiche, sia gratuitamente sia a pagamento.

La Free Software Foundation (FSF) detiene i diritti di copyright per il testo della GNU GPL, ma non detiene i diritti del software rilasciato con questa licenza. A meno che venga emessa una specifica nota di copyright da parte della FSF, l'autore del software detiene i diritti di copyright per il suo lavoro ed è responsabile di perseguire ogni violazione della licenza riguardante il suo software.

A differenza dei software con essa distribuiti, la GNU GPL non è liberamente modificabile: copiarla e distribuirla è permesso, ma modificarla è vietato. La FSF permette di creare nuove licenze basate sulla GNU GPL, a patto che tali licenze non usino il suo preambolo senza permesso. Dato che, solitamente, la nuova licenza non è compatibile con la GNU GPL, la FSF sconsiglia di creare versioni modificate.

Stallman ritiene inoltre fondamentale che anche la documentazione annessa ai programmi sia libera: “La più grande carenza dei nostri sistemi operativi non è nel software, quanto nella carenza di buoni manuali liberi da includere nei nostri sistemi”.

Il criterio per definire libero un manuale è sostanzialmente lo stesso usato per i programmi: deve essere permessa la ridistribuzione, compresa la vendita commerciale, e la modifica. Questa ultima è una libertà fondamentale per la documentazione di programmi liberi in quanto quando qualcuno esercita la sua facoltà di modificare un programma, se è coscienzioso, deve poter modificare anche il manuale, in modo da poter fornire una documentazione utile ed accurata insieme al programma modificato. Risulta quindi essenziale la possibilità di modificare tutto il contenuto tecnico del manuale e di poterlo distribuire in tutti i formati usuali, attraverso ogni normale canale di distribuzione.

Nel 1985, per cercare nuovi finanziamenti, Stallman ed i numerosi partecipanti al suo progetto fondano la Free Software Foundation (FSF), un’organizzazione senza scopo di lucro per lo sviluppo di software libero. La FSF accetta donazioni ma gran parte delle sue entrate proviene dalle vendite: copie di software libero, manuali e servizi correlati. Oggi vende cd-rom di codice sorgente e di programmi compilati, manuali stampati professionalmente (tutti con libertà di ridistribuzione e modifica) e distribuzioni Deluxe (nelle quali è compilata l’intera scelta di software per una piattaforma a richiesta).

All’inizio del progetto GNU si pensò di sviluppare un programma completo e di renderlo disponibile nel suo insieme, ma le cose non andarono così. Poiché gli elementi del sistema GNU sono implementati su di un sistema Unix, ognuno di essi può girare su tali sistemi molto prima che esista un sistema GNU completo. Così alcuni programmi iniziarono ad essere diffusi e gli utenti si divertirono ad estenderli e a renderli utilizzabili su nuovi sistemi. Tutto ciò rese i programmi molto più potenti ed attirò finanziamenti e collaboratori al progetto, anche se ritardò di alcuni anni la realizzazione di un sistema minimo funzionante, perché il tempo degli autori GNU venne impiegato a curare la compatibilità di questi programmi con altri sistemi, piuttosto che a proseguire nella scrittura di nuovi componenti.

Nel 1990 il sistema era quasi completo, l’unica parte non ancora disponibile era il kernel in quanto quello da loro creato, chiamato ‘Hurd’, non è ancora pronto per un uso non sperimentale. Ma, come dice Stallman, “Fortunatamente ne era disponibile un altro: Linux”. Così, nel 1992, la combinazione di Linux con il sistema GNU produce un sistema operativo libero completo.

Nel 2005 il sistema non era ancora stato sviluppato completamente, ma grazie al lavoro di Linus Torvalds è possibile usare il Sistema GNU con il kernel Linux, ovvero il sistema GNU Linux..

 

L’ origine del movimento Open Source

Nella primavera del 1997, un gruppo di leader della comunità del ‘Free Software’ si dà appuntamento a Mountain View, in California. Del gruppo fanno parte, tra gli altri, Eric Raymond, Tim O’Reilly e Larry Augustin. Il loro obiettivo è trovare un modo per promuovere le idee legate alla distribuzione gratuita di software presso coloro che, finora, hanno rifiutato questo concetto. Sono convinti che il termine ‘free software’ abbia danneggiato notevolmente il loro movimento a causa dell’ambiguità della parola ‘free’ che, oltre all’esatto significato di libertà, viene spesso associata, specialmente nella stampa e nel mondo aziendale, a concetti quali la gratuità, la scarsa qualità.

È del tutto inutile, pensano, spiegare che la Free Software Foundation è in realtà molto diversa da come viene rappresentata nel mondo economico, sanno che ciò che conta non è tanto la posizione ufficiale della FSF quanto, piuttosto, il mancato successo riscosso dalle sue intenzioni originarie e l’effettiva associazione tra il termine ‘free’ e gli stereotipi negativi diffusi dalla stampa commerciale.

I comandamenti alla base di questo movimento sono:

dimenticare la strategia ‘bottom-up’ e puntare su quella ‘top-down’. La strategia storica di diffondere i concetti dal basso verso l’alto, ovvero dai tecnici ai boss, si è rivelata un fallimento, per questo bisogna abbandonarla e passare ad imporre le decisioni dall’alto, cercando di coinvolgere subito i dirigenti delle alte sfere;

considerare Linux come il loro caso più rappresentativo. Se Linux non riesce a consolidare l’innovazione non può riuscirci nessun altro sistema;

attirare l’attenzione dei mass media più prestigiosi, che influenzano le opinioni dei top manager e degli investitori;

utilizzare il marchio ‘ Open Source ’ come garanzia di genuinità. Per scongiurare il rischio che il termine venga abbracciato ed esteso da Microsoft o da altri grandi produttori, stravolgendone il significato, Raymond decise di registrarlo come marchio di certificazione.

La campagna Open Source, prende il via rapidamente e tramite Internet, raccoglie intorno a sé una rete di alleati, tra cui alcuni importanti personaggi del mondo dell’economia.

Ben presto si delineano i primi successi: diversi produttori di hardware e di software conducono sondaggi nella comunità Open Source ed iniziano a formulare strategie mirate ad avvantaggiarsi del nuovo modello.

Il successo è reso ancor più evidente dalla preoccupazione che affligge la più grande impresa ‘close source’ e che trapela dagli ormai famosi ‘Halloween Documents’, così denominati in quanto testimonianza della ‘paura’ che nutre Microsoft nei confronti del ‘Pinguino’. Non è difficile immaginare la preoccupazione da parte della più importante azienda di software esistente, nei confronti di questa nuova filosofia.

Il movimento Open Source si configura, oggi, come un successo perché ha contribuito a sdoganare il concetto di software libero in campo aziendale dove, fino a pochi anni addietro, era guardato con sospetto o condiscendenza.

La voluta neutralità del movimento di Raymond verso gli aspetti etici e politici non può, però, andare a genio a Stallman che, al contrario, pone l’accento sulle motivazioni ideali.

L’assioma del movimento ‘Free Software è che l’utente merita la libertà, idea, questa, che il movimento ‘Open Source’ ha progettato di non far emergere.


Kernel Linux

Il kernel Linux (vedi logo in figura 2) è un software libero distribuito con licenza GNU General Public License; è stato creato nel 1991 da Linus Torvalds. Integrato con il Sistema GNU ha dato vita a GNU/Linux.

Il kernel è il "cuore" di un sistema operativo e fornisce tutte le funzioni essenziali per il sistema, in particolare la gestione della memoria, delle risorse del sistema e delle periferiche, assegnandole di volta in volta ai processi in esecuzione.

La controparte del kernel è la shell, ovvero l'interfaccia utente del sistema, la parte più esterna. I programmi chiedono le risorse al kernel attraverso delle system call (chiamate) e non possono accedere direttamente all'hardware. Il kernel si occupa quindi di gestire il tempo processore, le comunicazioni e la memoria distribuendoli ai processi in corso a seconda delle priorità.

Linux è un kernel che supporta il multitasking ed è multi utente, infatti, ciascun utente ha privilegi differenziati e può eseguire sullo stesso sistema diversi processi software in simultanea.

L'architettura scelta da Torvalds per il kernel è una struttura monolitica, considerata da alcuni obsoleta a differenza della più moderna architettura a microkernel.

Come ogni progetto che sia software libero, anche il kernel Linux è in continua evoluzione e le nuove release sono reperibili sul sito http://www.kernel.org .

La dimensione del kernel Linux cresce in maniera esponenziale, aggiungendo nuovi moduli come ad esempio un nuovo hardware supportato. Attualmente Linux supporta gran parte dell'hardware disponibile per PC ed un numero enorme di architetture (tra cui SPARC, PowerPC e le più moderne CPU a 64 bit).

 

 Tux, la mascotte di Linux.

GNU/ LINUX

Nel 1991 Linus Torvalds, studente del corso di Sistemi Operativi all'Università di Helsinky, aprì la strada allo sviluppo di LINUX, che ad oggi è forse il segno più tangibile della realizzazione del progetto GNU. Linus doveva studiare il nuovo processore Intel 80386, che aveva caratteristiche molto innovative rispetto ai suoi predecessori, come ad esempio la natura multitasking. Sulla macchina utilizzata da Linus girava il Sistema Operativo Minix, un piccolo UNIX commerciale a microkernel, che veniva offerto con notevoli agevolazioni per scopi didattici. Linus si pose il problema di migliorare Minix; non riuscendo nell'intento, iniziò lo sviluppo di un kernel che permettesse di scrivere una versione free di Unix. Alla fine dell'Agosto 1991, Linus arrivò a qualcosa di compiuto, a cui impose il numero di versione 0.01, che tuttavia rendeva ancora necessario l'utilizzo di una macchina con Minix. Da quel momento, secondo le sue stesse parole, Linus fu irrimediabilmente catturato da ciò che stava facendo, a tal punto da dover a tutti i costi realizzare qualcosa che gli permettesse di eliminare Minix dal suo computer arrivando a fondersi con il progetto GNU.

GNU/Linux è una libera e distribuibile versione di UNIX, è un insieme di conoscenze ed esperienze che hanno trovato in quest’ultimo una piazza virtuale dove crescere rapidamente. All’interno del sistema operativo non viene utilizzato in nessun modo codice licenziato da enti commerciali e buona parte del software incluso segue questa corrente di pensiero abbracciata dal progetto GNU della Free Software Foundation. Tuttavia Linus Torvalds è più vicino, nel pensiero, al mondo ‘Open Source’ piuttosto che a quello ‘Free Software’: non è, infatti, mai stata sua intenzione appassionarsi all’aspetto politico del fenomeno ‘Free Software’, non stupisce, perciò, che, quando nel 1998 Eric Raymond propone di prendere Linux quale icona del nascente movimento ‘Open Source’ , Torvalds non esiti ad accettare. Non si può, tuttavia, fare a meno di notare che Linus sceglie, per proteggere il suo sistema, la ‘Licenza Pubblica Generica’, ossia la bandiera del popolo ‘Free Software’, certamente, fra le licenze compatibili con la ‘Open Source Definition’, la più restrittiva.

Fino a poco tempo fa e in parte ancora oggi, chi utilizzava GNU/Linux doveva  avere una cultura informatica di base molto solida ed essere in grado all'occorrenza di installare, configurare e aggiornare autonomamente il proprio sistema. Con l'adozione del sistema da parte di molte aziende sono stati creati programmi di installazione e manutenzione che non richiedono conoscenze tecniche così approfondite per l'utilizzo di GNU/Linux; questi nuovi software di installazione, uniti alla possibilità di creare sistemi in dual boot, hanno aperto la strada all'ingresso di GNU/Linux all'interno del mercato desktop.

  in ricordo del dr. Luca Riva "...ma ricordate:per tutti viene il momento di lottare per la liberta! Ditelo ai vostri figli quando saranno         grandi domani!" (S.Pertini)