[STORY] Breve storia del Free Software

Collapse
X
 
  • Filter
  • Ora
  • Show
Clear All
new posts
  • Ayurvedi77
    Bodyweb Senior
    • Apr 2002
    • 1632
    • 19
    • 6
    • Pisa
    • Send PM

    [STORY] Breve storia del Free Software

    [Post originale di Zuperman]

    Abbiamo visto dunque come Linux non sia il lavoro di una sola persona, ma il risultato di decenni di sviluppo di software orientato alla ricerca, e che il kernel sia stato sviluppato in realtà da un team di volontari in contatto tra loro grazie ad Internet. Gran parte dei programmi per Linux provengono dallo GNU Project, altri dallo Unix BSD, altri ancora da svariati progetti di ricerca. Faremo una rassegna di alcuni dei principali pacchetti di free software che girano su Linux.

    Sicuramente il nucleo di software più ricco sono i programmi dello GNU Project. La FSF vorrebbe (e a ragione) che il nome dei sistemi oggi chiamati Linux fosse GNU/Linux. Infatti se Linux è il kernel, il resto è in gran parte software GNU, anche se non soltanto GNU.

    Linux stesso è stato sviluppato utilizzando il compilatore GNU gcc. Si tratta di uno dei primi programmi sviluppati dalla FSF. Questo compilatore è importantissimo nel mondo Unix: è unanimemente riconosciuto come eccellente, tanto che alcuni rivenditori di sistemi Unix commerciali hanno abbandonato lo sviluppo dei loro compilatori C preferendo finanziare lo sviluppo del gcc. Questo compilatore è un ottimo esempio di come il software possa essere considerato ricerca, e come la disponibilità dei sorgenti possa portare risultati notevoli: il compilatore è modulare, diviso in un front end che analizza il sorgente e produce un codice intermedio e un back end che genera dal codice intermedio il codice macchina per i vari processori. Sono stati sviluppati parecchi altri front end per linguaggi diversi dal C in grado di generare il codice intermedio per il back end già esistente. Inoltre sono stati sviluppati vari moduli per il back end in grado di generare codice per moltissimi processori diversi. In pratica chi aveva bisogno di un compilatore per un nuovo linguaggio o per una nuova piattaforma, ha trovato più comodo aggiungere un pezzo e contribuire alla causa del gcc che rifare tutto il lavoro da capo. Il gcc è dunque il nucleo di un gruppo di compilatori per linguaggi come C++, Pascal, Fortran, Objective C e Modula-3 in grado di produrre codice per Intel, Alpha, PowerPC, 68000 e una miriade di altre piattaforme. I risultati sono programmi compatti e veloci. Ci sono voluti parecchi anni perché il gcc si stabilizzasse e venissero corretti gli innumerevoli bug, inevitabili in un progetto così complesso, ma oggi il gcc è piuttosto stabile. Non bisogna dimenticare che la sua libreria è tra le più complete esistenti ed è in grado di compilare codice in C proveniente da fonti diversissime. È in buona parte merito del gcc se molti programmi per gli Unix più disparati riescono a compilare senza problemi o con poche modifiche su Linux.

    Il primo programma del progetto GNU comunque è stata la terza implementazione di Emacs sviluppata da Stallman, lo GNU Emacs. Si tratta di un sofisticatissimo editor di testi programmabile in linguaggio Emacs Lisp (più o meno come il Word che è programmabile in linguaggio Word Basic) e quindi estendibile in molti modi. Qualcuno lo definisce un editor che da solo è un sistema operativo, tante e tali sono le funzioni che offre: si può leggere la posta e le news, aprire un telnet, e perfino giocare con le torri di hanoy o consultare un psicanalista simulato senza uscire dall'editor.

    Per quanto riguarda le interfacce grafiche, su Linux gira l'XFree86, un adattamento per le schede grafiche tipiche dei PC dell'ambiente grafico XWindows, sviluppato al MIT nella metà degli anni '80. L'XWindows è in sostanza un protocollo, ma la implementazione del MIT è distribuita anche essa come free software. In un certo senso XWindows è il Windows di Unix anche se il paragone non calza perfettamente: infatti questo ambiente grafico non mette a disposizione chiamate di sistema per creare finestre e menù, ma primitive grafiche di livello più basso, come quelle per tracciare linee e cerchi. Una interfaccia grafica è un insieme di elementi grafici, detti widget. Un widget set definisce una interfaccia, che dà ai programmi che lo usano un certo look. In un certo senso è possibile definire il look dell'interfaccia, come se Windows offrisse la possibilità di usare anche il look del Mac. Insieme a XWindows viene fornito il set di widget Athena, piuttosto scarno e brutto: per esempio i bottoni sono solo dei rettangoli con una scritta al centro! Lo standard per le interfacce grafiche in ambiente Unix è il Motif, che sfortunatamente è software commerciale, e non è disponibile in sorgente; comunque è in vendita anche per Linux. Per ovvi motivi, non molto free software viene sviluppato utilizzando Motif. È in corso lo sviluppo di un clone, detto Lesstif, ma non è ancora utilizzabile come alternativa al Motif. Invece, molto promettente e collegato al progetto GNU è il progetto GNUStep, che ha come obiettivo quello di produrre un ambiente grafico simile al NextStep, in quanto le specifiche, dette OpenStep, sono state pubblicate e sono liberamente utilizzabili.

    Una caratteristica importantissima di XWindows purtroppo poco conosciuta e sottovalutata ma che potrebbe tornare in auge i prossimi anni è la sua capacità di creare applicazioni grafiche completamente distribuite: in pratica un utente può utilizzare una applicazione grafica che gira in una altra macchina. Non si tratta di client/server nel senso classico di due programmi, un server e un client: esiste infatti un solo programma che gira su una macchina, ma che produce output grafico su un'altra. In teoria, avendo un Word Processor che giri sotto XWindows, un utente potrebbe collegarsi via Internet alla macchina dell'ufficio e utilizzare da casa il word processor grafico come se sedesse alla scrivania dell'ufficio. Oggi per fare queste cose con Windows o Mac occorrono appositi programmi commerciali da acquistare a parte, mentre XWindows offre questa possibilità come funzione base del sistema grafico.

    Per la produzione di documentazione, abbiamo il TeX, sviluppato da Knuth, l'autore della monumentale Art of Computer Programming, proprio per produrre risultati esteticamente accettabili per la sua opera. Il TeX non è un word processor come Word, in quanto non è WYSIWYG: l'autore non vede il risultato; piuttosto scrive delle direttive su come vuole che il testo sia formattato, similmente a come avviene con l'HTML. Il "sorgente" viene poi passato attraverso il "compilatore" TeX che produrrà un file con estensione .dvi, una rappresentazione indipendente dalla periferica di output. Infine il dvi potrà essere stampato o visualizzato, utilizzando appositi programmi per ogni particolare periferica di output. Esiste tuttavia già oggi il LyX, un word processor che gira sotto XWindows quasi WYSIWYG che è in grado di produrre un sorgente TeX mostrando mentre si compone il testo i risultati della formattazione.

    Per quanto riguarda i linguaggi di programmazione, ce ne sono tantissimi disponibili. Innanzitutto il C e tutti gli altri supportati dal gcc, poi numerosi altri: per esempio il Perl e il TCL. Il Perl è un linguaggio sviluppato da Larry Wall che trasforma la "filosofia" di Unix in un linguaggio di programmazione, estremamente potente ma anche piuttosto atipico e non semplicissimo. Il TCL invece è stato da molti definito il Visual Basic di Unix. La sua sintassi è C like, ma si tratta di un linguaggio interpretato particolarmente semplice, in grado di produrre velocemente, grazie al toolkit Tk, interfacce grafiche in ambiente XWindows in maniera molto semplice. Infatti il Tcl/Tk è molto usato per creare dei front end grafici in ambiente Unix. Da notare che il Tk ha lo stesso "look" a bassorilievo di Motif, ma non è Motif: l'esistenza del Tcl/Tk ha abbastanza mitigato il problema che il Motif non è free software, ed è già possibile utilizzare il Tk anche con linguaggi diversi dal Tcl.
    ___________________


    Codice:
    apt-get remove brain
    apt-get install windows-Vista
    ___________________
Working...
X