Graphics Environment Manager
Il GEM (Graphical Environment Manager) era un'interfaccia grafica creata da Digital Research, Inc. (DRI) per le versioni per Intel 8088 e Motorola 68000 del suo sistema operativo CP/M. Le versioni più recenti giravano anche su DOS.
Il GEM fu noto principalmente per essere l'interfaccia grafica utente (o GUI) della serie di computer Atari ST, anche se in seguito non rimase limitato a questa piattaforma: il GEM fu offerto anche con una serie di computer IBM compatibili realizzati da Amstrad ed in seguito divenne disponibile nche per i PC IBM standrd, in un periodo in cui i PC AT a 6 MHz erano appena usciti. Il GEM fu anche il cuore di un limitato numero di programmi DOS, il più rilevante dei quali fu Ventura Publisher. Fu poi portato anche su un certo numero di altri computer che non avevano un'interfaccia grafica, ma non raggiunse su queste piattaforme una popolarità degna di nota. DRI rilasciò anche il FlexGem, una versione studiata per il suo sistema operativo real-time FlexOS.
Storia
GSX
Il GEM iniziò la sua vita a DRI come una libreria grafica di uso generico denominata GSX (Graphics System eXtension), sviluppato da un gruppo capitanato da Lee Jay Lorenzen che aveva da poco lasciato la Xerox PARC, luogo di nascita delle GUI (vedi Xerox Alto).Il GSX era essenzialmente un'implementazione specifica di DRI dello standard grafico GKS proposto verso la fine degli anni '70. Il GSX era stato concepito per permettere a DRI di scrivere programmi grafici per qualunque piattaforma su cui girasse il CP/M, un compito che richiedeva comunque uno sforzo notevole viste le enormi differenze hardware che i vari sistemi dell'epoca presentavano a livello grafico.
Il GSX era composto di 2 parti: una selezione di applicazioni che per le comuni operazioni di disegno tramite GSK, ed i driver che erano responsabili della gestione dell'output. La prima parte si chiamava GDOS e la seconda GIOS, un gioco di parole che riprendeva la disivione del CP/M in BDOS, la parte indipendente dalla macchina, e BIOS, la parte specifica per essa.
GEM
Il GSX evolse verso un prodotto che più tardi divenne il GEM, un tentativo di realizzare una GUI completa usando il precedente lavoro sul GSX come sua base. Noto inizialmente come Crystal, un termine che riprendeva il progetto di IBM chiamato Glass, il nome fu poi cambiato in Gem, e da questo si arrivò all'acronimo inverso GEM.
Sotto al GEM, il GSX divenne il GEM VDI, responsabile delle funzionalità grafiche e di disegno di base. Il VDI aggiungeva inoltre la possibilità di lavorare con caratteri multipli ed un insieme di nuovi comandi per il disegno raster ai comandi base del GSK che gestivano solo la grafica vettoriale. Il VDI permetteva poi di gestire le viewport, o porzioni di schermo, un'aggiunta importante da usare con le finestre.
Un nuovo modulo, il GEM AES (Application Environment Services), forniva la gestione delle finestre ed i widget dell'interfaccia mentre il GEM Desktop, usando entrambe le librerie, forniva una GUI. La versione 8086 del sistema completo fu mostrata in anteprima al COMDEX del 1984[1] e venduta come GEM/1 dal 28 febbraio 1985[2].
Versioni successive
Dopo l'introduzione del GEM, Apple querelò DRI perché l'interfaccia del GEM/1 sembrava copiata direttamente da quella del Macintosh, con alcuni elementi che ricordavano la GUI dell'Apple Lisa. Dopo una lunga disputa, DRI fu costretta a modificare alcuni aspetti base del proprio sistema e ne presentò una versione modificata, il GEM/2: questo permetteva la visualizzazione di 2 sole finestre fiesse sul "desktop" (gli altri programmi potevano comunque comportarsi come volevano), aveva l'icona del cestino cambiata e non presentava più le animazioni per alcune operazioni quali l'apertura e la chiusura delle finestre. Per il resto era simile al GEM/1, con in più alcuni miglioramenti estetici e numerosi bug corretti.
L'ultima versione commerciale fu il GEM/3, che presentava migliorìe a livello di velocità ed era offerta con alcune applicazioni presinstallate. Le vendite del GEM terminarono con il GEM/3; il codice sorgente del sistema venne poi distribuito ad alcuni dei principali clienti di DRI.
Versioni personalizzate
Il GEM/4 offriva la possibilità di lavorare con le curve di Bézier, una caratteristica rara al di fuori del mondo PostScript. Questa versione fu sviluppata specificatamente per "Artline", un programma di disegno di CCP. Il GEM/4 includeva inoltre alcune modifiche al sistema di gestione dei tipi di caratteri, che lo rendevano incompatibile con le richieste di Timeworks Publisher, un software di desktop publishing creato per il GEM.
Un'altra versione del GEM, denominata GEM/5, fu prodotta da GST Computer Systems per Timeworks Publisher 2.1: essa conteneva un aggiornamento grafico con pulsanti 3D e scalatura al volo dei caratteri, ed era compatibile con tutti gli strumenti della versione 3.1. Era stata infatti sviluppata partendo dal GEM 3.13 con l'aggiunta del supporto alle curve di Bézier del GEM/4.
ViewMax
Il GEM Desktop fu separato dal resto del sistema ed offerto come ViewMAX, che fu usato solamente come file manager nel DR-DOS. In questa forma il sistema non poteva eseguire i programmi scritti per il GEM: ciò poteva portare alla curiosa situazione in cui si potevano avere diverse applicazioni (incluso il ViewMAX) tutte con la loro copia del sistema GEM "interna" ad esse, cosa che comunque era abbastanza raro dato che non c'erano molti programmi GEM in circolazione.
In queste forme il GEM sopravvisse fino al momento in cui DRI fu acquistata da Novell e tutto lo sviluppo del GEM fu cancellato.
Multitasking
Per tutto questo tempo DRI lavorò per rendere il sistema GEM capace di operare in multitasking. Ciò iniziò con l'X/GEM, basato sul GEM/1, che però richiedeva l'utilizzo di una versione multitasking del sistema operativo CP/M. Il GEM/XM fu una versione aggiornata del GEM/2 che permetteva il multitasking e poteva far girare i programmi DOS in finestre (come fanno i sistemi grafici odierni). Nessuna delle due vide però la luce, anche se il codice sorgente del GEM/XM è oggi liberamente disponibile sotto licenza GNU GPL.
Ventura Publisher
Lorenzen lasciò la società poco dopo il rilascio del GEM/1, quando divenne evidente che DRI non aveva un grosso interesse nello sviluppo delle applicazione. Fondò perciò una propria società con un altro degli sviluppatori del GEM, Dan Meyer, creando la Ventura Software. Sotto questo nome svilupparono il Ventura Publisher, commercializzato in un secondo tempo da Xerox (ed in seguito anche da Corel), che divenne all'epoca un programma di desktop publishing molto famoso.
Versioni Atari
Quando Atari decise di realizzare il suo computer ST, fu deciso che l'interfaccia utente avrebbe dovuto essere di tipo grafico. Fu perciò visionato il GEM in una versione per 68000 che girava sul CP/M-68K, un port del sistema operativo CP/M per la CPU Motorola. Dopo che i dirigenti Atari scelsero il GEM, fu inviato un gruppo di ingegneri presso DRI per iniziare a lavorare al porting del sistema: quel gruppo si chiamava "The Monterey Group"[3]. Ma quelle versioni per il 68000 non erano utilizzabili praticamente: erano delle demo realizzate da DRI per mostare il suo sistema e nulla di più. Il gruppo si mise quindi al lavoro iniziando sia il porting della versione del GEM che DRI aveva realizzato per l'Intel 8086 dei PC IBM, sia del GEMDOS, un nuovo sistema operativo che era stato ideato come alternativa all'MS-DOS, a cui assomigliava molto. Fu un lavoro duro e complesso ma a gennaio del 1985 il gruppo aveva svolto molto del lavoro di porting ed il sistema operativo che ne derivò fu chiamato TOS: Jack Tramiel decise di presentare la nuova macchina con il TOS al Consumer Electronics Show[3].
Dato che Atari aveva svolto molto del lavoro di sviluppo della versione per il 68000, essa ottenne i diritti a continuarne lo sviluppo senza bisogno di ottenere una licenza da DRI, che apparentemente stava perdendo interesse verso le piattaforme 68000. Come risultato di questo accordo, la causa legale fra Atari e DRI non si applicava alla versione del GEM sviluppata da Atari, per cui essa mantenne un aspetto simile a quella del Mac.
Nei successivi 7 anni, dal 1985 al 1992, il TOS fu aggiornato ad ogni rilascio di nuovi prodotti della linea ST: gli aggiornamenti includevano il supporto per un maggior numero di colori e per risoluzioni più elevate ma restava sempre simile all'originale in termini di supporto GKS. Nel 1992 Atari rilasciò il TOS 4, o MultiTOS, insieme all'ultimo modello dell'ST, il Falcon030: il TOS 4 supportava il multitasking sotto al GEM.
Versioni recenti
Caldera Thin Clients, nota in seguito come Lineo (una società del gruppo ora noto come SCO Group) ha rilasciato il sorgente del GEM sotto licenza GNU GPL nell'aprile del 1999. Lo sviluppo del GEM per PC è continuato come OpenGEM e FreeGEM. In seguito è stato anche portato nuovamente sull'Atari ST per essere usato sul clone libero del TOS, l'EmuTOS.
Descrizone
Il GEM "completo" consisteva di 3 parti principali:
- GEM VDI (Virtual Device Interface)
- GEM AES (Application Environment Services)
- GEM Desktop (un'applicazione che offriva un gestore di file con supporto al drag-and-drop)
Il VDI era il cuore del sistema grafico di tutto il motore GEM: era responsabile per il disegno a "basso livello", vale a dire nella forma di semplici comandi "disegna una linea da qui a qui". Il VDI includeva un insieme di istruzioni per il disegno vettoriale indipendente dalla risoluzione dalle coordinate che erano chiamate dalle applicazioni attraverso una interfaccia estremamente semplice. Il TVDI offriva inoltre informazioni sull'ambiente (stato o contesto), sul colore corrente, sull'ampiezza di una linea, sul dispositivo di output, ecc...
Questi comandi erano esaminati dal GDOS, il cui compito era quello di inviare i comandi al driver appropriato per il rendering richiesto: ad esempio, se un particolare ambiente GEM VDI era connesso allo schermo, le istruzioni VDI erano allora girate al driver dello schermo per l'esecuzione del disegno. Per stampare si poteva semplicemente (in teoria) cambiare semplicemente l'ambiente puntandolo alla stampate, riducendo drasticamente il lavoro dello sviluppatore (anche se poi la stampa doveva essere fatta "a mano" in ogni applicazione). Il GDOS era anche il responsabile del caricamento dei driver e di ogni carattere richiesto quando il GEM si avviava.
Note
- ^ Digital Research Announces GEM, su corphist.computerhistory.org, Corporate Histories Collection - Computer History Museum, novembre 1984.
- ^ DRI SHIPS GEM, su groups.google.com, net.micro.atari - Google Groups, 1985.
- ^ a b < Jeffrey Daniels, 3 Years With the ST - An exclusive look inside Tramiel's Atari, vol. 3, n. 1, Start, 1988, p. 22.