87 lines
3.7 KiB
HTML
87 lines
3.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>The MGR Window System HOWTO: What is the MGR window system?</TITLE>
|
|
<LINK HREF="MGR-HOWTO-3.html" REL=next>
|
|
<LINK HREF="MGR-HOWTO-1.html" REL=previous>
|
|
<LINK HREF="MGR-HOWTO.html#toc2" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="MGR-HOWTO-3.html">Next</A>
|
|
<A HREF="MGR-HOWTO-1.html">Previous</A>
|
|
<A HREF="MGR-HOWTO.html#toc2">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s2">2. What is the MGR window system?</A></H2>
|
|
|
|
<P>
|
|
<H2><A NAME="ss2.1">2.1 Function</A>
|
|
</H2>
|
|
|
|
<P><B>MGR</B> (ManaGeR) is a graphical window system.
|
|
The <B>MGR</B> server
|
|
provides a builtin window manager and windowed graphics terminal
|
|
emulation on color and monochrome bitmap displays. <B>MGR</B> is
|
|
controlled by mousing pop-up menus, by keyboard interaction, and by
|
|
escape sequences written on pseudo-terminals by client software.
|
|
<P><B>MGR</B> provides each client window with: termcap-style terminal
|
|
control functions, 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.
|
|
<B>MGR</B> 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 <B>MGR</B> imitate keystrokes in response
|
|
to user defined menu selections or other events.
|
|
<P>
|
|
<H2><A NAME="ss2.2">2.2 Requirements</A>
|
|
</H2>
|
|
|
|
<P><B>MGR</B> currently runs on Linux, FreeBSD,
|
|
Sun 3/4 workstations with SunOS, and
|
|
Coherent. Various older versions of <B>MGR</B> run on the Macintosh,
|
|
Atari ST MiNT, Xenix, 386-Minix, DEC 3100, and the 3b1 Unix-pc.
|
|
Many small, industrial, real-time systems under OS9 or Lynx in Europe
|
|
use (another variant of) Mgr for their user interface.
|
|
The programming interface is implemented in C and in ELisp,
|
|
although supporting clients written in other languages is quite
|
|
easy.
|
|
<P>Running <B>MGR</B> requires much less in resources than X, or even gcc.
|
|
It does not have the user-base, software repertory, or high-level
|
|
libraries of X or MS-Windows, say, but it is quite elegant
|
|
and approachable.
|
|
<P>It has been said that <B>MGR</B> is to X as Unix was to Multics.
|
|
<P>
|
|
<H2><A NAME="ss2.3">2.3 How do MGR, X11, and 8.5 compare?</A>
|
|
</H2>
|
|
|
|
<P><B>MGR</B> consists of a server with builtin window manager and terminal
|
|
emulator, and clients which run in this terminal emulator and use it
|
|
to communicate with the server. No resource multiplexing is done.
|
|
<P>X11 consists of a server and clients, which usually connect to the
|
|
server using a socket. All user visible things like terminal
|
|
emulators, window managers etc are done using clients. No resource
|
|
multiplexing is done.
|
|
<P>8.5, the Plan 9 window system, is a resource multiplexer, as each
|
|
process running in a window can access <CODE>/dev/bitblt</CODE>,
|
|
<CODE>/dev/mouse</CODE> and
|
|
<CODE>/dev/kbd</CODE> in its own namespace. These are multiplexed to the
|
|
<CODE>/dev/bitblit</CODE>, <CODE>/dev/mouse</CODE> and <CODE>/dev/kbd</CODE>
|
|
in the namespace of 8.5.
|
|
This approach allows one to run 8.5 in an 8.5 window,
|
|
a very clean design. 8.5 further has an integrated window manager
|
|
and terminal emulator.
|
|
<P>
|
|
<HR>
|
|
<A HREF="MGR-HOWTO-3.html">Next</A>
|
|
<A HREF="MGR-HOWTO-1.html">Previous</A>
|
|
<A HREF="MGR-HOWTO.html#toc2">Contents</A>
|
|
</BODY>
|
|
</HTML>
|