Nicola D'Agostino (.net) - Articoli, traduzioni, grafica, web

GNUstep 0.5 Live CD

Riproposta free dell’innovativo ed elegante ambiente ideato dalla NeXT di Steve Jobs. Il progetto GNUstep finalmente disponibile anche in un Live CD.

di Nicola D’Agostino

Nella seconda metà degli anni ’80 Steve Jobs lasciò la Apple per dare vita a una nuova, coraggiosa ed innovativa piattaforma chiamata NeXT. La linea di eleganti e stilizzati computer di colore nero voluti dal transfuga della mela morsicata non era che metà della sorpresa: l’altra era un sistema operativo basato su BSD, che usava il kernel Mach sviluppato presso l’Università Carnegie Mellon e su cui era stato creata un’interfaccia grafica proprietaria estremamente curata.

Questo sistema operativo rispondeva al nome di NeXTSTEP e le sue caratteristiche di solidità, modularità e facilità di programmazione, oltre che usabilità rispetto agli altri UNIX (sopratutto dell’epoca) hanno retto le sorti dell’azienda anche durante il decennio successivo, finendo per candidarsi e aggiudicarsi il ruolo di nuovo OS di Apple, presso cui il figliol prodigo è tornato nel 1997, un decennio esatto dopo il rilascio di NeXTSTEP.

mascotte del LiveCD di GNUstep.

In questa fusione, NeXTSTEP e la sua evoluzione successiva OPENSTEP, sono in un certo senso "scomparsi", assorbiti in quel processo di evoluzione che ha portato a Mac OS X (che secondo qualcuno non sarebbe altro che un semplice make-up estetico di OPENSTEP). A recuperare e proseguire l’idea originaria ci ha pensato un progetto chiamato GNUstep, una reimplementazione free dello standard OpenStep (a cui aderisce il sistema operativo, scritto tutto maiuscolo), reso pubblico in seguito a una collaborazione tra NeXT e Sun nei primi anni ’90 quando il sistema di Jobs era stato reso disponibile anche per varie piattaforme, tra cui quella x86 di Intel
GNUstep, è bene specificarlo, non è, nè, tantomeno si propone esplicitamente come, un sistema operativo a sè stante ma è un ambiente, formato da una serie di librerie in Objective C, delle API che possono essere usate su altri sistemi per ricreare molte delle caratteristiche e dell’aspetto ideato per il NeXT.
La lista di sistemi su cui è possibile far girare le API di GNUstep è corposa: ci sono come scelte prevedibili GNU/Linux e i *BSD ma anche gli Unix commerciali e altro ancora (sì, anche Windows). Per una lista delle possibilità rimandiamo al sito web.

I perchè di GNUstep

A questo punto sorge spontanea una domanda: perché dovremmo voler usare GNUstep quando l’offerta di interfacce, librerie, API, framework, linguaggi per i sistemi *nix è già varia e valida?
I motivi sono molteplici ma possono essere riassunti con la già citata modularità e validità del progetto di Jobs & C.
NeXT/OPENSTEP si è guadagnato sul campo una solida fama come piattaforma di sviluppo a oggetti su cui è estremamente facile e produttivo realizzare software. Questo grazie all’uso del linguaggio a oggetti Objective C (usato in Mac OS X in "Cocoa", evoluzione delle librerie *STEP) ed a strumenti versatili come l’IDE visuale Project Builder e il tool per realizzare interfacce Interface Builder. Da non trascurare la caratteristica di portabilità del codice, che sin dagli anni ’90 può essere realizzato per essere usato su una molteplicità di sistemi, come ben dimostra GNUmail, clone del programma di posta originario di NeXTSTEP.
Ultimo aspetto, anche se da non trascurare, è il design della GUI di NeXTSTEP, che, nel 1987 si è meritato la fama di aver reso UNIX per la prima volta usabile e, a distanza di più di 15 anni e nonostante l’arrivo di metafore di manipolazione più evolute, gode di molti sostenitori (il clone Afterstep e WindowMaker sono lì a dimostrarlo) e mantiene ancora la sua elegante ed efficace essenzialità.

Un passo (libero) alla volta

Lo scopo di GNUstep è quello reimplementare NeXTSTEP (o meglio lo standard OpenStep), anche se con alcune differenze e migliorie. Già dal nome dal nome è evidente la caratteristica fondamentale della libertà delle varie parti del progetto che non è un semplice porting ma un rifacimento graduale pezzo dopo pezzo (con nomi spesso cambiati) delle componenti, tra cui le varie utility e programmi esistenti in NExTSTEP/OPENSTEP. Questo è vero a partire dall’ambiente di creazione delle GUI, GORM ("Graphical Object Relationship Modeller", erede di Interface Builder) passando per l’emulatore di terminale Terminal o il programma di interazione con dati e programmi, GWorkspace (che ricrea il Workspace Manager) fino allo spartano word processor Ink (stretto parente del TextEdit di Mac OS X). Un ruolo importante spetta a WindowMaker, il window manager per il server grafico X11 già noto (e diffuso) agli utenti Linux e BSD che riproduce piuttosto fedelmente l’aspetto di NExTSTEP/OPENSTEP. Del resto il suo motto è eloquente: "your Next window manager".

Gorm sovrapposto a Interface Builder

E’ bene specificare che GNUstep è tuttora un work in progress e, seppur usabile, ha ancora molta strada da fare per ricreare integralmente l’ambiente di NeXT/OPENSTEP, per fornire ciò di cui uno sviluppatore e/o utente odierno ha bisogno o, infine, per raggiungere l’ambizioso obiettivo di non restare fermo e riproporre il passato ma di muoversi con il presente. In quest’ottica GNUstep si propone programmaticamente la compatibilità con alcune parti di Mac OS X della Apple, in particolare il linguaggio Objective C e quegli elementi di OpenStep aggiornati da Cupertino e di cui sono state rilasciate le specifiche tecniche.

La famiglia di GNUstep

A questi ambiziosi traguardi lavora un gruppo di sviluppatori sparsi per tutto il mondo tra cui figurano tre nomi italiani, di cui uno è responsabile di uno dei programmi chiave di GNUstep.
Attorno a GNUstep si muove una piccola ma motivata comunità di GNUsteppers utilizzatori, appassionati e risorse. Il sito di riferimento per il web è www.gnustep.org, che offre anche una panoramica del progetto. Segnaliamo inoltre, con un pizzico di orgoglio ma anche per la sua rilevanza, www.gnustep.it, creato da uno degli italiani di cui sopra, Nicola Pero. Gnustep.it ospita le pagine web ufficiali (e originali) di alcune componenti importanti, oltre a dei mini-tutorials, particolarmente utili per chi inizia.

www.gnustep.org

Per chi volesse sperimentare di prima mano GNUstep, non essendo questo un OS a sè stante, l’opzione classica sarebbe quella di installare i vari pacchetti sulla propria distribuzione UNIX-like. E’ però vero che questo metodo non è il più adatto per diffondere e mostrare ai non iniziati le caratteristiche proprie di GNUstep. Sono perciò nati negli ultimi anni alcuni progetti che puntavano a realizzare ex-novo dei sistemi basati su Linux ma con GNUstep come framework e desktop esclusivo. Due di questi,
LINUXstep e SimplyGNUstep, noto anche come Prometheus, nonostante l’entusiasmo e le buone premesse hanno purtroppo interrotto la loro corsa senza produrre una release degna di nota. L’obiettivo è stato invece centrato da un Live CD diffuso alla fine di febbraio di quest’anno e aggiornato in giugno.

Ma in pratica?

Assemblato da Gürkan Sengün e basato sulla distro Morphix (e a sua volta basato su Knoppix e Debian), il Live CD di GNUstep gira su macchine x86 (a partire dalle cpu 386, almeno idealmente), la sua immagine ISO occupa circa quattrocento Mb, ed ha una homepage essenziale ma densa di informazioni.

sequenza di boot

Il live CD, che abbiamo provato su tre macchine diverse, tra cui un Pentium II e un portatile con Pentium III, svolge egregiamente il suo compito e permette di approdare abbastanza facilmente ad un desktop grafico di GNUstep (anche se su alcuni computer con BIOS più vecchio è necessario l’uso di un floppy disk di avvio, scaricabile dal sito). Per chi volesse, al momento del boot (che mostra chiaramente la base targata Debian/Knoppix/Morphix in un buffo gioco di scatole cinesi), si può scegliere l’opzione di caricare tutto in ram, operazione che, a fronte di un piccolo rallentamento iniziale, permette in seguito di velocizzare alquanto l’uso generale.
Alla fine del caricamento ci si presenta, senza nessuna fase di login, il desktop di WindowMaker, con sullo sfondo il logo di GNUstep e sulla destra il dock con alcune tra le applicazioni principali del sistema: Terminal, GWorkspace, il mailer GNUmail, le impostazioni del window manager, il programma di videoscrittura Ink e quello per la visione delle immagini Preview, un programma di ftp ed uno per i newsgroup. Scartabellando nel filesystem troviamo il resto degli applicativi utilizzabili in /usr/lib/GNUstep/Applications/, più o meno gli stessi a cui possiamo accedere dal menù fluttuante che compare alla pressione del tasto destro del mouse. Tra gli altri programmi di e per GNUstep nominiamo Project Center e il già citato GORM, un visualizzatore di PDF o ancora tool di rete e utility varie ma abbiamo anche diverse aggiunte essenziali (poteva mancare Vi?) ma non uniformate al comportamento ed all’aspetto delle API di GNUstep.

desktop GNUstep Live

I sunnominati programmi di GNUstep, tutti contraddistinti dal suffisso .app (i programmi, su NeXT/OPEN/GNUstep, come su Mac OS X, sono delle directory con dentro l’eseguibile e altri dati) si difendono bene. In particolare brilla il programma di posta GNUmail (che si difende anche contro concorrenti commerciali) ma anche il file browser, terminale e TextEdit (che legge e salva in formato RTF oltre che testuale) svolgono il loro compito egregiamente. Apprezzabile lo sforzo di mantenere alcune delle caratteristiche originali di NeXTSTEP, come i "servizi", voci di menù disponibili da qualsiasi programma e che permettono di facilitare e velocizzare alcune operazioni come creare un ritaglio di testo, o spedire per posta un file.
Tra le edizioni di febbraio e giugno del CD sono stati fatti notevoli passi in avanti, con l’inclusione di altri programmi anche se risaltano però anche alcune mancanze ancora gravi, a cui si supplisce, come dicevamo poc’anzi con applicativi "non nativi". Un esempio è la presenza di Dillo e Links2 che mitigano la non inclusione di un browser, che esiste ed è basato sul pacchetto WebCore di Apple (a sua volta derivato da KHTML) ma è ancora in forma primitiva.

GNUmail, Terminal e altri

E’ possibile anche installare il sistema su disco fisso, eseguendo come superuser l’accluso script morphixinstaller che farà partire una procedura grafica guidata.

Tiriamo le somme

Il live CD offre una ghiotta chance di tastare con mano lo status del progetto GNUstep e il suo aggiornamento recente (con aggiunte di caratteristiche e software e correzioni di bug) fa ben sperare. E’ anche vero che a fronte di un’indubbia dose di fascino emerge anche l’acerbità di molti aspetti, sopratutto se paragonata ad altre soluzioni GNU/Linux grafiche.

programmi sul Live CD

Da un punto di vista degli appassionati e degli smanettoni si tratta di un’operazione indubbiamente affascinante ed è interessante notare come GNUstep, pur con le sue carenze, offre alcune tecnologie moderne e molto attuali. E’ il caso dei già citati strumenti di sviluppo grafici e a oggetti ma anche quello di Tryst, implementazione della connettività automatica senza configurazione tra host e periferiche del progetto zeroconf, meglio noto con il nome che assume presso Apple (uno dei cui sviluppatori l’ha ideata), Rendezvous.
Dimostrazione delle potenzialità in nuce di GNUstep, che riprende il passato ma, per sua stessa natura, è rivolto agli sviluppi del futuro.

Approfondimenti:

GNUstep, OpenStep in versione OpenSource
Articolo del 2003 con, tra le altre cose, un interessante confronto delle funzionalità e dell’aspetto di GNUstep rispetto a NeXTSTEP/OPESTEP.
www.linuxfocus.org/Italiano/March2001/article195.shtml

Introduction to the GNUstep project
Presentazione di GNUstep a cura di uno degli sviluppatori con introduzione ad alcune tecnologie alla base di *STEP e al linguaggio Objectice C.
www.roard.com/docs/lmf1.article/

GNUstep Frequently Asked Questions
Questioni tecniche e non su tutto ciò che concerne il progetto, la sua disponibilità e installazione per varie piattaforme e le varie possibilità e configurazioni.
www.gnustep.org/information/userfaq_toc.html

All GNUstep applications
Elenco più o meno aggiornato dei programmi disponibili per GNUstep, parte del progetto di documentazione sotto forma di wikipedia.
wiki.gnustep.org/index.php/All%20GNUstep%20Applications

Una versione di questo articolo è stata pubblicata su "Linux Magazine" n. 45 dell’ottobre 2004