From: sau@sleepy.bellcore.com (Stephen A Uhler) Subject: Re: MGR and X Date: Thu, 4 Jun 1992 13:14:15 GMT
In article <KDORFF.92Jun1161613@dante.nmsu.edu> kdorff@nmsu.edu (Kevin C. Dorff) writes:
>I know what X is and what it gives you, but if someone could quickly
>compare and contrast MGR and X for me, along with their speed, disk
>requirements, capabilites, memory requirements, etc, I would REALLY
>appreciate it.
> ...
Although I'm probably not the best person to talk objectively about X (I wrote
MGR), I can say a few things about MGR.
MGR is a window system I originally wrote for SUN 100's and SUN 120's
in 1984-1985. It manages asynchronous updates of overlapping windows.
"Backing-store" is built in. MGR has the basic capabilities of the X
server, window manager, and xterm all rolled into one. Each window
acts like an intelligent "terminal", using escape-sequences to effect
all of the windowing capabilities. The C library interface consists primarily of
printf's that emit the proper escape sequences. MGR clients have been
written in C, shell, lisp, prolog, emacs, awk, perl -- any language
that can send ASCII data over a serial connection.
MGR tries to adhere to the traditional UNIX philosophy of doing only
one job, but doing it well. MGR has no networking code built in: it
uses whatever networking capabilities already exist (rlogin, kermit,
etc.). MGR doesn't do database management, or authentication; it just
manages windows.
The source to MGR is 16k lines of C. The complete distribution, including the
fonts, icons, manuals and demos is about 1.2meg (compressed). The MGR process
that is currently running the 17 windows on my SPARC-2 display is up to 600k
bytes of total size. On comparible hardware, running ordinary tasks, MGR is
usually anywhere from 2 to 10 times faster than X (don't believe me -- try it for
yourself.)
This is an excerpt from the MGR manual (available from bellcore.com):
... In addition to terminal emulation, MGR provides each client window
with: graphics primitives such as line and circle drawing; facilities
for manipulating bitmaps, fonts, icons, and pop-up menus; commands to
reshape and position windows; and a message passing facility enabling
client programs to rendezvous and exchange messages. Client programs
may ask to be informed when a change in the window system occurs, such
as a reshaped window, a pushed mouse button, or a message sent from
another client program. These changes are called events. MGR notifies
a client program of an event by sending it an ascii character string in
a format specified by the client program. Existing applications can be
integrated into the windowing environment without modification by
having MGR imitate keystrokes in response to user defined menus or
other events. The user interface provides a simple point-and-select
model of interaction using the mouse with pop-up menus and quick access
to system functions through meta-keys on the keyboard. MGR also
provides a cut and paste function that permits a user to sweep out and
copy text from any window and paste it into any other.
I hope this helps.
Stephen Uhler
sau@bellcore.com