OS/ C'erano una volta le finestre

Per interpretare al meglio il presente e il futuro bisogna conoscere la storia. Raccontiamo qui a chi non l'ha vissuta la nascita degli ambienti a finestre e della loro evoluzione nel tempo, fino ai giorni nostri

Sono trascorsi quasi 18 anni dall'uscita del primo Macintosh. Fu una data storica perché con essa si inaugurarono le GUI (Graphic User Interface) su sistemi a basso costo. Da allora i sistemi operativi passarono progressivamente dalla rozza interfaccia a caratteri ad interfacce grafiche a finestre che nascondevano, per quanto possibile, i comandi a più basso livello. Tutte le software house di allora si rifecero, per forza di cose, all'OS del Mac integrando l'ambiente grafico direttamente all'interno dei loro sistemi operativi oppure affiancandolo ad essi.

Dal System del Mac la catena è stata lunga: Gem (PC, Atari, altri home computer), Windows (PC), Presentation Manager di OS/2 (PC, piccole workstation), NextStep (sistemi Next), New Wave (sistemi Hewlett Packard ), Desk Mate (sistemi Tandy), DecWindow (sistemi Dec), Intuition (Amiga), X Window (Unix). Ve ne sono sicuramente altri ma non li ricordo e comunque questi sono quelli che hanno segnato un po ' la storia delle interfacce grafiche a finestre. Se alcuni di voi hanno avuto il C64 (e ci facevano qualcosina di serio) ricorderanno lo splendore del Geos il quale aveva un'interfaccia decisamente Gem-like.

Vediamo un attimo in cosa consistono e quali sono gli elementi di base che le accomunano. La Apple definì un'interfaccia grafica come un'insieme di sistemi di puntamento (ad es.il mouse) che controllano la gestione di menù (le finestre) all'interno dei quali viene visualizzato l'output del comando o del programma corrente e che rappresentano in fin dei conti dei monitor virtuali caratterizzati da proprietà e attributi ben precisi. Sempre secondo la Apple un'interfaccia grafica avrebbe dovuto contenere anche delle "icone", ovvero delle specie di pulsanti a cui vengono assegnate determinate funzioni. I sistemi operativi di allora (a parte Unix), come del resto l'hardware, erano per la quasi totalità monotasking. Le finestre cominciarono a mostrare tutta la loro efficacia proprio con i primi sistemi multitasking che riuscivano ad eseguire più compiti su più finestre. Un'ottimo esempio fu l'Intuition dell'Amiga, un vero e proprio sistema operativo a finestre che operava in multitasking preemptive, e non cooperativo come quello del Mac e di Windows 3.x.
Per chi non lo sapesse il preemptive è il vero multitasking che garantisce un tempo macchina costante per ogni applicazione attiva (simulando così un'elaborazione parallela) a differenza del cooperativo che ha invece il grosso difetto di dipendere dalla "predisposizione" degli applicativi a concedere ai colleghi un po ' delle risorse della CPU.

Ma non vorrei uscire dai binari... Le GUI degli ambienti grafici sono solitamente divise in tre distinti livelli : il sistema a finestre (magari gestito ad oggetti, come negli OS più recenti), un sistema di disegno ed un'interfaccia per le applicazioni chiamata API (Application Programming Interface). Il sistema a finestre ed il sistema di disegno, insieme, si occupano di gestire l'apertura, la chiusura, il movimento, il dimensionamento ed i relativi tracciamenti a video delle finestre. Questa parte della GUI può essere, come in X-Window, a sé stante, richiamabile tramite librerie grafiche intercambiabili. Windows è invece un'esempio di ambiente totalmente integrato e statico.

In X Windows, come ben sapranno gli utilizzatori di Unix, si può decidere quale look grafico debbano avere le finestre semplicemente richiamando un gestore opportuno (Motif il più famoso). Le API son invece quel vasto insieme di chiamate a basso livello che permettono agli applicativi di gestire l'ambiente grafico all'interno del quale devono girare. Ogni qual volta un programma apre una finestra, la modifica o vi scrive il proprio output, chiama delle funzioni predefinite scritte generalmente in linguaggio C che fanno da interfaccia fra gli applicativi ed i livelli inferiori dell'OS. Le API, a loro volta, possono rifarsi a librerie ed a insiemi di oggetti predefiniti.
Le API dell'interfaccia Macintosh erano implementate parte direttamente all'interno della ROM e parte all'interno del sistema operativo (il Finder). Ciò è il motivo, insieme alle ottime routine grafiche, dell'estrema velocità dell'ambiente grafico del Mac anche su di un semplice 68000.

Una importante standardizzazione delle interfacce utente avvenne grazie al SAA (System Application Architecture) di IBM. Si tratta di una serie di specifiche che coinvolgono i più importanti sistemi operativi ad interfaccia odierni e che uniformano le principali funzioni interattive con l'ambiente. Queste si sono estese poi al network ed alla interrogazione di data base (il noto linguaggio SQL). Questo ha fatto sì, ad esempio, che ogni comando avesse l'equivalente combinazione di tasti (oltre alla possibilità della gestione tramite mouse) e che questi tasti fossero, per la maggior parte, standardizzati (come il classico F1 dell'Help o l'F10 per accedere ai menu).

X Windows è il più vasto insieme di GUI che mai si fosse creato. E' un sistema a finestre appositamente progettato per il multitasking-multiprocessing ed il network (con una naturale propensione al client/server). Ogni input/output da e verso un applicativo viene pacchettizzata in modo da poter sfruttare la capacità di poter visualizzare gli output su più display contemporaneamente ed altre chicche del genere.
Unix è un sistema operativo in continua evoluzione e ciò si riflette anche su X e sui relativi gestori di finestre. Molti ibridi hanno avuto origine, come ad esempio il News di Sun, e molte case hanno sviluppato proprie interfacce totalmente o parzialmente compatibili con X Windows: CXI di IBM, Open Windows di Sun, X Widgets di HP.
Un tempo Motif era l'interfaccia grafica più usata sotto X Windows, oggi superata dai cosiddetti "desktop environment", come KDE e Gnome.

Il Gem, uscito a poca distanza dall'interfaccia Mac, ebbe quasi subito problemi con la Apple che rivendicò i propri diritti sul look and feel dell'ambiente. La Digital Research dovette modificare, almeno superficialmente, la versione per PC lasciando invece invariata quella per Atari (che nell'ST conserva il look originale).
A differenza del Finder del Mac, nell'Atari mancavano la gestione dei nomi di lunghezza illimitata, la possibilità di eliminare oggetti dal cestino, il salvataggio automatico del desktop ed altre funzioni più o meno utili. Gem si diffuse, oltre che sui primi XT, anche su alcuni home computer più potenti.

L'Intuition di Amiga, anch'esso molto simile al Finder, fu, come già sottolineato, il primo GUI multitasking monoutente (X Window è invece multiutente, ma è venuto dopo). E qui, anche se parrà strano, fu la Apple a rifarsi sull'OS della macchina Commodore mettendo a punto il MultiFinder, il Finder a multitasking cooperativo del Mac.

Il NextStep rappresentò invece il top level per le GUI monoutente. Non fu mai esportato su altre piattaforme e mantenne una certa indipendenza dagli standard. Non ha però mancato di influenzare il mondo delle interfacce grafiche.

Un tempo i progettisti delle interfacce grafiche si ponevano il problema di quanti e quali elementi grafici implementare all'interno di un ambiente a finestre e quanta parte della potenza elaborativa di un sistema di calcolo sacrificare in favore di un'interfaccia più completa e funzionale. Con le potenze elaborative di oggi buona parte di questi problemi vengono ignorati. Se ciò sia un bene o un male lascio decidere agli utenti.

Alex Rossi
(Per contattare l'autore scrivere alla redazione)
TAG: sw
1 Commenti alla Notizia OS/ C'erano una volta le finestre
Ordina