GEM (pour Graphics Environment Manager ) est un environnement d'exploitation abandonné publié par Digital Research en 1985. GEM est principalement connu comme l' interface utilisateur graphique native de la série d'ordinateurs Atari ST , fournissant un bureau WIMP . Il était également disponible pour les compatibles IBM PC et livré avec certains modèles d' Amstrad . GEM est utilisé comme noyau pour certains programmes commerciaux MS-DOS, le plus notable étant Ventura Publisher . Il a été porté sur d'autres ordinateurs qui manquaient auparavant d'interfaces graphiques, mais n'a jamais gagné en popularité. La version commerciale finale de GEM est sortie en 1988.
Digital Research a ensuite produit X/GEM pour son système d'exploitation en temps réel FlexOS avec des adaptations pour OS/2 Presentation Manager et le système X Window en préparation également.
Histoire
GSX


Fin 1984, GEM a commencé sa vie chez DRI en tant que prolongement d'une bibliothèque graphique à usage plus général connue sous le nom de GSX (Graphics System Extension), écrite par une équipe dirigée par Don Heiskell depuis environ 1982. Lee Jay Lorenzen (chez Graphic Software Systems) qui avait récemment quitté Xerox PARC (le berceau de l'interface graphique moderne) a écrit une grande partie du code. GSX était essentiellement une implémentation spécifique à DRI de la norme graphique GKS proposée à la fin des années 1970. GSX était destiné à permettre à DRI d'écrire des programmes graphiques (graphiques, etc.) pour n'importe laquelle des plates-formes 8 bits et 16 bits sur lesquelles CP/M-80 , Concurrent CP/M , CP/M-86 et MS-DOS ( NEC APC-III ) s'exécuteraient, une tâche qui autrement aurait nécessité un effort considérable pour être portée en raison des grandes différences de matériel graphique (et de concepts) entre les différents systèmes de cette époque.
GSX se composait de deux parties : une sélection de routines pour les opérations de dessin courantes et les pilotes de périphériques responsables de la gestion de la sortie réelle. Le premier était connu sous le nom de GDOS (Graphics Device Operating System) et le second sous le nom de GIOS (Graphics Input/Output System), un jeu de mots sur la division de CP/M en BDOS (Basic Disk Operating System) indépendant de la machine et BIOS (Basic Input/Output System) spécifique à la machine . GDOS était une sélection de routines qui géraient le dessin GKS, tandis que GIOS utilisait réellement le matériel sous-jacent pour produire la sortie.
Pilotes de périphériques 8 bits connus
- Écran Amstrad CPC DDMODE0 en mode 0
- Écran Amstrad CPC DDMODE1 en mode 1
- Écran Amstrad CPC DDMODE2 en mode 2
- Écran DDSCREEN Amstrad PCW
- Écran DDBBC0 BBC Micro en mode 0
- Écran DDBBC1 BBC Micro en mode 1
- DDGDC, DDNCRDMV NEC μPD7220
- DDVRET VT100 + Rétro-Graphiques GEN.II (alias 4027/ 4010 )
- Écran TeleVideo DDTS803
- Terminaux DDHP26XX HP 2648 et 2627
- Écran DDQX10 QX-10
- DDFXLR8 Epson basse résolution , 8 bits
- DDFXHR8 Epson haute résolution , 8 bits
- Imprimantes Epson et compatibles DDFXLR7
- DDCITOLR C. Itoh 8510A basse résolution
- DDCITOH C. Itoh 8510A
- Imprimante DD-DMP1 Amstrad DMP1 (alias Seikosha GP500M-2)
- Imprimantes DDSHINWA utilisant le mécanisme Shinwa Industries
- DDHP7470, DD7470 Hewlett-Packard HP 7470 et traceurs à stylet compatibles, HP-GL/2
- DD7220 Hewlett-Packard HP 7220, HP-GL
- DDGEN2 Retro-Graphics GEN.II ( code source de Ratfor dans le Guide du programmeur )
- DDHI3M Houston Instrument HiPlot DMP
- DDHI7M Houston Instrument HiPlot DMP
- DDMX80 Epson MX-80 + Graftrax Plus
- Stylo lumineux électrique DDESP pour studio ( Amstrad PCW )
- DDOKI84 Oki Data Microline
- Métafichier DDMF GEM
- Métafichier PostScript DDPS
Pilotes de périphériques 16 bits connus
- DDLA100 DÉC
- DDLA50 DÉCEMBRE
- DDNECAPC NEC APC
- NCRPC4 NCR DecisionMate V
- IBMBLMP2, IBMBLMP3 Mode monochrome IBM CGA
- IBMBLCP2, IBMBLCP3 Mode couleur IBM CGA
- IBMCHMP6
- Adaptateur graphique amélioré IBM IBMEHFP6, IBMEHMP6, IBMELFP6
- HERMONP2, IBMHERP3, HERMONP6, carte graphique Hercules (720×348)
- Carte graphique VGA UMC UM85C408AF
- DDIDSM IDS Monochrome
- DDANADXM Anadex DP-9501 et DP-9001A
- DDCITOLR C. Itoh 8510A basse résolution
- DDCNTXM Centronics 351, 352 et 353
- DDDS180 Datasud
- DDOKI84 Oki Data Microline
- DDPMVP Printronix MVP
- Imprimante basse résolution IBM/Epson FX-80 DD3EPSNL (voir DDFXLR7 et DDFXLR8)
- Imprimante haute résolution DD3EPSNH IBM/Epson FX-80 (voir DDFXHR8)
- DD75XHM1 Centrale de régulation RC759 Piccoline
- Métafichier DDGSXM
- EPSMONH6
- Traceur IBMHP743 Hewlett-Packard 7470A/7475A (voir DDHP7470 et DD7470)
- Métafichier METAFIL6
- PALETTE Appareil photo Polaroid
La version DOS de GSX prend en charge le chargement des pilotes au format CMD CP/M-86 . Par conséquent, le même binaire de pilote peut fonctionner à la fois sous CP/M-86 et DOS.
GEMME
Versions Intel
La version 16 bits de GSX 1.3 a évolué vers une partie de ce qui sera plus tard connu sous le nom de GEM , qui était un effort pour construire un système d'interface utilisateur graphique complet en utilisant le travail antérieur de GSX comme base. Connu à l'origine sous le nom de Crystal en référence à un projet IBM appelé Glass , le nom a ensuite été changé en GEM .
Sous GEM, GSX est devenu GEM VDI (Virtual Device Interface), responsable des graphiques et des dessins de base. VDI a également ajouté la possibilité de travailler avec plusieurs polices et a ajouté une sélection de commandes de dessin raster aux commandes de dessin basées sur GKS, auparavant uniquement vectorielles . VDI a également ajouté plusieurs fenêtres d'affichage , un ajout clé pour une utilisation avec Windows.
Un nouveau module, GEM AES (Application Environment Services), fournissait la gestion des fenêtres et les éléments d'interface utilisateur, et GEM Desktop utilisait les deux bibliothèques en combinaison pour fournir une interface utilisateur graphique. La version 8086 de l'ensemble du système a été officiellement présentée pour la première fois au COMDEX en novembre 1984, ordinateur commercial Acorn basé sur 80286 en septembre 1984 où le logiciel avait été attribué à Acorn, et le système a été expédié sous le nom de GEM/1 le 28 février 1985.
GEM/1

GEM Desktop 1.0 est sorti le 28 février 1985. GEM Desktop 1.1 est sorti le 10 avril 1985 avec prise en charge des écrans CGA et EGA . Une version pour la série F d'Apricot Computers , prenant en charge 640 × 200 en 8 couleurs maximum, était également disponible sous le nom de GEM Desktop 1.2 .
Digital Research a également positionné Concurrent DOS 4.1 avec GEM comme alternative à TopView d' IBM .
À l'origine, DRI avait conçu GEM pour DOS afin qu'il ne puisse vérifier et fonctionner que sur les ordinateurs IBM, et non sur les ordinateurs compatibles PC comme ceux de Compaq , car la société espérait recevoir des droits de licence des fabricants compatibles. Les développeurs ont réagi avec ce que BYTE a décrit comme « une petite explosion » ; il a rapporté que lors d'un séminaire organisé par DRI en février 1985, plus de la moitié des participants ont convenu que l'incompatibilité de GEM avec Compaq était une limitation sérieuse. Plus tard dans le mois, la société a supprimé la restriction. GEM Write de Lifetree Software .
À ce stade, Apple Computer intenta un procès contre DRI dans ce qui allait devenir un long litige sur le « look and feel » du système GEM/1, qui était une copie presque directe du Macintosh (avec certains éléments ressemblant davantage à ceux du précédent Lisa , disponible depuis janvier 1983). Cela a finalement conduit DRI à être contraint de modifier plusieurs fonctionnalités de base du système. (Voir aussi : Apple v. Digital Research .) Apple poursuivra plus tard d'autres sociétés pour des problèmes similaires, notamment leur procès pour violation de droits d'auteur contre Microsoft et HP .
En plus des imprimantes, le système contenait également des pilotes pour certains appareils plus inhabituels tels que la Polaroid Palette .
GEM/2

DRI a répondu avec le GEM Desktop 2.0 , « favorable aux poursuites judiciaires » , sorti le 24 mars 1986, qui a finalement ajouté la prise en charge du VGA , quelque temps après sa sortie en 1987. Il permettait l'affichage de seulement deux fenêtres fixes sur le « bureau » (bien que d'autres programmes puissent faire ce qu'ils voulaient), modifiait l'icône de la corbeille et supprimait les animations pour des choses comme l'ouverture et la fermeture des fenêtres. Il était par ailleurs similaire à GEM/1, mais incluait également un certain nombre de corrections de bogues et d'améliorations esthétiques.
En 1988, Stewart Alsop II a déclaré que GEM faisait partie des nombreuses interfaces graphiques qui « ont déjà été éliminées » du marché par Apple, IBM/Microsoft et d'autres.
GEM XM
GEM XM avec « GEM Desktop 3.0 » était une version mise à jour de GEM/2 en 1986/1987 pour DOS (y compris DOS Plus ) qui permettait la commutation de tâches et la possibilité d'exécuter jusqu'à dix programmes GEM et DOS à la fois, en passant à la mémoire étendue (XM) via EMS / EEMS ou sur le disque (y compris les disques RAM , permettant ainsi également l'utilisation de la mémoire étendue ). Les données pouvaient être copiées et collées entre les applications via un presse-papiers avec fonction de filtrage (une fonctionnalité que l'on retrouvera également plus tard dans TaskMAX sous DR DOS 6.0 ). Digital Research prévoyait d'offrir GEM XM en option aux utilisateurs de GEM Draw Plus et via les canaux OEM.
Le code source de GEM XM est désormais disponible gratuitement sous les termes de la licence publique générale GNU .
GEM/3

La dernière version commerciale fut GEM/3 Desktop , sortie le 3 novembre 1988, qui proposait des améliorations de vitesse et était livrée avec un certain nombre d'applications de base. Les ventes commerciales de GEM ont pris fin avec GEM/3 ; le code source a ensuite été mis à la disposition d'un certain nombre de clients importants de DRI.
Alors que GEM/2 pour PC fournissait toujours une API GSX en plus de l'API GEM, GEM/3 ne le faisait plus.
GEM/4 pour CCP Artline
GEM/4 , sorti en 1990, incluait la possibilité de travailler avec des courbes de Bézier , une fonctionnalité encore peu courante en dehors du monde PostScript . Cette version a été produite spécifiquement pour Artline 2, un programme de dessin de la société allemande CCP Development GmbH.
Le système comprenait également des modifications au système de gestion des polices, ce qui le rendait incompatible avec des logiciels tels que Timeworks Publisher .
Artline 1 fonctionnait toujours sur GEM 3.1.
GEM/5 pour l'éditeur GST Timeworks
Une autre version de GEM appelée GEM/5 a été produite par GST Software Products pour Timeworks ' Publisher 2.1. Elle contenait un aspect mis à jour avec des boutons 3D, ainsi que des fonctionnalités telles que la mise à l'échelle des polices à la volée. Elle était livrée avec tous les outils standard de GEM 3.1. Cette version a été produite à partir de GEM 3.13 avec uniquement la gestion de Bézier reprise de GEM/4.
ViewMAX pour DR DOS

GEM Desktop lui-même a été créé en 1990 sous la forme d'un produit appelé ViewMAX qui était utilisé uniquement comme un shell de gestion de fichiers sous DR DOS . Sous cette forme, le système ne pouvait pas exécuter d'autres programmes GEM. Cela a conduit à une situation où un certain nombre d'applications (y compris ViewMAX) pouvaient exister avec leur propre copie statiquement liée du système GEM. Ce scénario était en fait rare, car peu de programmes GEM natifs étaient publiés. En 1991, ViewMAX 2 est sorti.
Sous ces formes, GEM a survécu jusqu'à ce que DRI soit acheté par Novell en juin 1991 et que tout le développement de GEM soit annulé.
X/GEM
Pendant ce temps, DRI a également travaillé à rendre le système GEM capable d'effectuer plusieurs tâches à la fois. Cela a commencé avec X/GEM basé sur GEM/1, mais cela nécessitait l'utilisation d'un des systèmes d'exploitation multitâches basés sur CP/M. DRI a également produit X/GEM pour son système d'exploitation en temps réel FlexOS avec des adaptations pour OS/2 Presentation Manager et le système X Window en préparation également.
Éditeur Ventura
Lee Lorenzen quitta l'entreprise peu après la sortie de GEM/1, lorsqu'il devint évident que DRI ne s'intéressait pas particulièrement au développement d'applications. Il s'associa alors à deux autres anciens employés de DRI, Don Heiskell et John Meyer, pour fonder Ventura Software . Ils développèrent Ventura Publisher (qui fut ensuite commercialisé par Xerox et finalement par Corel ), qui allait devenir un programme de PAO très populaire pendant un certain temps.
Versions Atari

Le développement de la version 68000 de GEM débuta en septembre 1984, lorsqu'Atari envoya une équipe appelée « The Monterey Group » à Digital Research pour commencer à travailler sur le portage de GEM. À l'origine, le plan était d'exécuter GEM sur CP/M-68K , tous deux ostensiblement portés sur Motorola 68000 par DRI avant la création de la conception ST. En fait, ces ports étaient inutilisables et nécessiteraient un développement considérable. Digital Research proposa également GEMDOS (écrit à l'origine sous le nom de GEM DOS, il était également appelé « Project Jason »), un système d'exploitation de type DOS visant à porter GEM sur différentes plates-formes matérielles. Il était disponible pour les processeurs 8086 et 68000 et avait été adapté au système de développement Apple Lisa 2/5 et Motorola VME /10 . Atari a décidé en janvier 1985 d'abandonner le code CP/M-68K existant et de porter à la place DRI GEMDOS sur la plate-forme Atari ST, en l'appelant TOS .
Atari ayant fourni la majeure partie du développement de la version 68000, ils ont obtenu tous les droits pour poursuivre les développements sans avoir à rétrocéder la licence à DRI. Par conséquent, le procès Apple-DRI ne s'est pas appliqué aux versions Atari de GEM, et ils ont été autorisés à conserver une interface utilisateur plus proche de celle de Mac.
Au cours des sept années suivantes, de 1985 à 1992, de nouvelles versions de TOS ont été publiées à chaque nouvelle génération de la gamme ST. Les mises à jour comprenaient la prise en charge de davantage de couleurs et de résolutions plus élevées du côté raster du système, mais restaient généralement similaires à l'original en termes de prise en charge de GKS. En 1992, Atari a publié TOS 4, ou MultiTOS , avec son système informatique final, le Falcon030 . En combinaison avec MiNT , TOS 4 permettait une prise en charge complète du multitâche dans GEM.
Développement continu

Lorsque Caldera a acheté les actifs restants de Digital Research à Novell le 23 juillet 1996, les plans initiaux étaient de relancer les technologies GEM et ViewMAX pour une interface utilisateur à faible encombrement pour OpenDOS dans les applications mobiles sous le nom de Caldera View , mais ces plans ont été abandonnés par Caldera UK en faveur de DR-WebSpyder et GROW . Caldera Thin Clients (plus tard connu sous le nom de Lineo ) a publié le code source de GEM et GEM XM sous les termes de la licence GNU GPL-2.0 uniquement en avril 1999. Le développement de GEM pour PC se poursuit sous les noms de FreeGEM et OpenGEM .
Sur la plateforme Atari ST, les sources DRI originales ont été à nouveau portées pour être utilisées dans le clone libre et open source de TOS, EmuTOS . De nouvelles implémentations des parties AES de GEM ont été implémentées à partir de zéro sous la forme de XaAES et MyAES, qui sont toutes deux entièrement réentrantes et prennent en charge le multitâche en plus des extensions multitâches FreeMiNT de TOS .
Description
Le système GEM « complet » se composait de trois parties principales :
- GEM VDI (Interface de périphérique virtuel)
- GEM AES (Services d'environnement applicatif)
- GEM Desktop (une application permettant la gestion de fichiers par glisser-déposer)
GEM VDI était le système graphique principal du moteur GEM global. Il était responsable du dessin de « bas niveau » sous la forme de « dessiner une ligne d'ici à ici ». VDI comprenait un ensemble d'instructions de dessin vectoriel indépendantes de la résolution et des coordonnées qui étaient appelées à partir des applications via une interface assez simple. VDI comprenait également des informations sur l'environnement (état ou contexte), la couleur actuelle, l'épaisseur de la ligne, le périphérique de sortie, etc.
Ces commandes étaient ensuite examinées par GDOS, dont la tâche consistait à envoyer les commandes au pilote approprié pour le rendu réel. Par exemple, si un environnement GEM VDI particulier était connecté à l'écran, les instructions VDI étaient alors acheminées vers le pilote d'écran pour le dessin. Il suffisait (en théorie) de modifier l'environnement pour qu'il pointe vers l'imprimante pour imprimer, ce qui réduisait considérablement la charge de travail du développeur (ils devaient auparavant imprimer « à la main » dans toutes les applications). GDOS était également responsable du chargement des pilotes et des polices demandées lors du premier chargement de GEM.
L'un des principaux avantages de VDI par rapport au Macintosh était la manière dont les périphériques et les contextes multiples étaient gérés. Sur le Mac, ces informations étaient stockées en mémoire dans l'application. Cela posait de sérieux problèmes lorsqu'il s'agissait de faire en sorte que le Mac gère le multitâche préemptif, car la couche de dessin ( QuickDraw ) devait avoir un accès direct à la mémoire dans tous les programmes. Dans GEM VDI, cependant, ces informations étaient stockées dans le périphérique lui-même, GDOS créant des « périphériques virtuels » pour chaque contexte, chaque fenêtre par exemple.
GEM AES fournissait le système de fenêtres, le gestionnaire de fenêtres, le style d'interface utilisateur et d'autres éléments d'interface utilisateur graphique (widgets). Pour des raisons de performances, de nombreux widgets d'interface utilisateur graphique étaient en fait dessinés à l'aide de graphiques de caractères. Comparé au Macintosh, AES offrait un aspect plutôt spartiate et le système était livré avec une seule police à espacement fixe.
AES effectue ses opérations en appelant le VDI, mais dans un sens plus général, les deux parties de GEM étaient souvent complètement séparées dans les applications. Les applications appelaient généralement des commandes AES pour configurer une nouvelle fenêtre, le reste de l'application utilisant des appels VDI pour dessiner dans cette fenêtre.
GEM Desktop était un programme d'application qui utilisait AES pour fournir un gestionnaire de fichiers et un lanceur, l'environnement de « bureau » traditionnel que les utilisateurs attendaient du Macintosh. Contrairement au Macintosh, GEM Desktop fonctionnait sous DOS ( MS-DOS , DOS Plus ou DR DOS sur PC, GEMDOS sur Atari), et par conséquent l'affichage réel était encombré d'éléments de type informatique, notamment des noms de chemin et des caractères génériques. En général, GEM était beaucoup plus « geek » que le Mac, mais le simple fait d'exécuter un shell utilisable sous DOS était une énorme réussite en soi. Sinon, GEM a ses propres avantages par rapport à Mac OS, comme les curseurs proportionnels.
Les applications PC natives GEM utilisent l'extension de fichier .APP pour les exécutables, tandis que les accessoires de bureau GEM utilisent l'extension de fichier .ACC à la place. Tous les accessoires de bureau (et aussi quelques applications simples) peuvent être exécutés sous ViewMAX sans modification.