1 2 X M X 3 An X Protocol Multiplexor 4 5 Version 1.1 6------------------------------------------------------------------------- 7OVERVIEW 8 9XMX is an X protocol multiplexor. It is a standalone utility for displaying 10an X Windows session on multiple displays. XMX takes advantage of the 11networked nature of the X Window System by tapping the communication link 12between an X client and an X server. In this way, XMX works with any 13X clients and any X servers, without the need to modify either. 14 15It's tempting to call this "broadcast software," and that is certainly the 16effect. In reality, though, XMX is "multicast" software. It must know 17all the slave machines ahead of time and it connects to each one directly. 18XMX is more like mail than news. 19 20XMX connects to N servers like an X client, then accepts connections from 21M clients like an X server. One of those servers is designated the "master" 22from which input is directed to the clients. The other servers are "slaves." 23Slave servers receive only those protocol requests that are necessary for 24them to maintain a visual look-alike of the master server's display. 25 26This software was developed at Brown University for use in our electronic 27classroom. Some version of it has been in use here since 1988. 28------------------------------------------------------------------------- 29COPYING IT 30 31The Computer Science Department at Brown University distributes XMX 32under the following Copyright: 33 34 Copyright 1988, 1989, 1990, Brown University, Providence, RI. 35 Permission to use, copy, modify and distribute this software and 36 its documentation for any purpose other than its incorporation into 37 a commercial product, is hereby granted, provided that this 38 copyright notice appears on all copies and the distribution is only 39 within the organization represented by the person receiving the 40 software from Brown. Brown requests notification of any 41 important modifications to this software or its documentation. 42 43Please note that we explicity prohibit you from distributing this 44outside of your organization. Tell them to get it from us. 45------------------------------------------------------------------------- 46CAVEAT 47 48This is a preliminary distribution. XMX has many known limitations and 49a few bugs. It is being actively developed and your input is solicited. 50So, too, is your patience. 51------------------------------------------------------------------------- 52BUILDING IT 53 54XMX does not rely on Xlib or any other lib for that matter. It does 55require certain X11 include files (X.h, Xproto.h, Xlib.h, Xatom.h, Xutil.h). 56If you have these files installed in /usr/include/X11, then all you 57need to do is run "make_me" (make_me just checks what system you are on, 58and then runs make). 59 60If you keep these include files somewhere else, you'll need to add a -I 61switch to CFLAGS in the Makefile. 62 63XMX has been compiled and tested on various sun4's and on a dec 3100. 64------------------------------------------------------------------------- 65USING IT 66 67Since XMX is not itself an X server, it expects to connect to X servers 68that are already running. These servers must be willing to accept 69client connections from whatever machine XMX is running on (see xhost(1)). 70 71Since examples are easier to understand than lengthy explanations, here's 72an example. Assume X servers are running on machines named larry, moe and 73curly: 74 75 abbott% xmx :1 -p -display moe larry curly 76 XMX Version 1.1, ready. 77 78Now XMX is running on abbott, accepting connections via display abbott:1, 79(socket 6001), displaying on moe, larry and curly, but only taking input 80from moe. Moe is the master server. We could have said moe:0, but XMX 81relaxes this convention and assumes you mean display zero if you don't 82specify. The -p option tells XMX to echo pointer movements to the slaves. 83 84 costello% setenv DISPLAY abbott:1 85 costello% xterm& 86 87Setting the DISPLAY environment variable causes any X clients run in 88this shell to connect to XMX. The xterm we ran here appears on larry, 89curly and moe via XMX. What's more, since xterm inherited the environment 90variable from the shell, anything typed at it will also be multicast. 91 92Included with this distribution is the document "Running an XMX 93Broadcast Session in the Sun Lab" (./lab.ps). This is the guide that 94we distribute to TA's at Brown who are responsible for running their 95class' demos. It is very site-specific, but contains some helpful 96information. 97 98The rx utility has been removed from this distribution. In it's place 99is the simple program xnull, which contains instructions for use. An 100improved (and portable) rx will be distributed with XMX version 2, when 101it appears. If you really want the old one, contact the author, below. 102------------------------------------------------------------------------- 103BUGS AND LIMITATIONS 104 105Protocol extensions not supported. 106 107XMX will list extensions it does not support in reply to XListExtensions 108request. 109 110Doesn't do decnet. 111 112Servers must be "clean" at xmx startup: 113 Must have identical sets of allocated Atoms. 114 Must have empty default root colormaps. 115 Window managers may break if master has preexisting resources 116 not present on slaves. 117 118Doesn't accept the null string for a hostname. Use "unix" instead. 119------------------------------------------------------------------------- 120COMING SOON 121 122This is absolutely, positively the last release of version 1. 123 124Xmx Version 2, available separately (soon), supercedes this version in 125every way. 126------------------------------------------------------------------------- 127XMX was written by 128 129John Bazik 130Dept. of Computer Science, Box 1910 131Brown University 132Providence, RI 02912 133 134(401) 863-7600 135jsb@cs.brown.edu 136uunet!brunix!jsb 137jsb@browncs.bitnet 138