MGR(ManaGeR) est un système de fenêtres graphiques. MGR fournit un gestionnaire intégré de fenêtres et un émulateur de terminal graphique sur des systèmes bitmaps couleurs et monochromes. MGR est contrôlable par des menus pop-up activés par souris, par action du clavier, et par des séquences d'échappement écrites par un client sur des pseudo-terminaux.
MGR fournit à chaque client une fenêtre avec : fonctions de contrôle terminal en style termcap, primitives graphiques telles que dessins de lignes et de cercles ; aménagements pour manipuler les bitmaps, fontes, icônes et menus pop-up ; commandes pour redessiner et repositionner les fenêtres ; et un système de passage de messages permettant aux programmes-client d'établir des rendez-vous et d'échanger des messages. Les programmes client peuvent demander à être informés lorsqu'un changement dans le système intervient, tel qu'une fenêtre redessinée, un clic de souris, ou un message envoyé à partir d'un autre programme client. Ces changements sont appelés événements. MGR notifie un événement à un programme client en envoyant une chaîne ASCII dans un format spécifié par le programme client. Des applications existantes peuvent être intégrées dans l'environnement sans être modifiées : MGR imite des actions sur le clavier en réponse à des sélections du menu utilisateur ou d'autres événements.
MGR tourne couramment sur Linux, FreeBSD, stations Sun 3/4 avec SunOS, et Coherent. Certaines versions anciennes de MGR tournent sur Macintosh, Atari ST MiNT, Xenix, 386-Minix, DEC 3100, et 3b1 Unix-pc. De nombreux petits systèmes industriels en temps réel sous OS9 et Lynx utilisent en Europe (une autre variante de) Mgr comme interface. L'interface de programmation est implémentée en C et Elisp, cependant des supports clients dans d'autres langages ne posent pas de difficultés.
MGR requiert beaucoup moins de ressources que X, ou même gcc. Bien sûr il n'a pas le répertoire de programmes, les bibliothèques de haut niveau de X ou MS-Windows, mais il est élégant et abordable.
On a dit que MGR est à X ce que Unix est à Multics.
MGR consiste en un serveur avec un gestionnaire de fenêtres et un émulateur de terminal, et des clients qui tournent dans cet émulateur en l'utilisant pour communiquer avec le serveur. Il n'y a pas de multiplexage de ressources.
X11 est constitué d'un serveur et de clients, qui sont habituellement connectés au serveur via un socket. Ce qui est visible à l'utilisateur tels qu'émulateurs de terminal, gestionnaires de fenêtres, etc., est réalisé en utilisant les clients.
8.5, le système de fenêtre Plan 9, est un multiplexeur de ressources ;
tout processus tournant dans une fenêtre peut accéder à
/dev/bitblt
, /dev/mouse
et /dev/kbd
sous son propre
nom.
Ceux-ci sont multiplexés à /dev/bitblt
, /dev/mouse
et
/dev/kbd
de 8.5.
Cette approche permet de faire fonctionner 8.5 dans une fenêtre 8.5,
de conception très soignée. De plus 8.5 dispose d'un gestionnaire de
fenêtres intégré et un émulateur de terminal.