Shrink Wrapping X Windows Clients on Intel Hardware

John Plocher plocher at sally.Sun.COM
Thu Dec 14 15:01:53 AEST 1989


+-- In <1989Dec8.005923.23810 at pcrat.uucp> Rick Richardson writes
| In UNIX SVR3.2 no standard exists for a client to connect to
| a local X server.
| You folks *must* agree on the mechanism(s) to be used by local
| clients when connecting to a local server.  It's too late for
| SVR3.2.  Don't repeat the mistake in SVR.4.
+--

As one of the team delivering the Sun X11/NeWS server source to
AT&T for the Vr4 source tape, I feel I can comment on this issue
with a bit of authority.  Nevertheless, this posting is NOT an
official statement by Sun or AT&T.  Caveat Emptor. :-)

The 3.2 world is an ungodly mess when it comes to this problem;
I agree with Rick here, it is almost beyond hope.

One workaround may be to set 
	DISPLAY=localhost:0
and force the client to use the loopback network interface
for connections to the server.  Slow, but faster than not
working at all :-)

Using the above method will only work IF THE NETWORKING
LIBRARIES on the systems ARE COMPATABLE.  Since networking
is also not a standard, you can't even move clients that use
networking between systems!

For remote clients, the picture is consistant:
The Vr4.0 AT&T XWIN server uses a connection method based on 
TLI and nameserver daemons which (on an ethernet, but not
starlan) gets mapped to a TCP/IP connection to port 600x
on the server.  Other X servers implement a socket emulation
library and graft that directly onto the X code from MIT
which again talks to the TCP/IP port 600x on the server.

When you get to local clients, the picture changes a lot:
XWIN and X11/NeWS use ptys to do local connections; other
servers use Unix Domain sockets; still others use shared
memory.  The libraries are usually statically linked to
the clients, so that there is no way to modify them without
the source.

Vr4 won't necessarily solve the problem of systems using
different local connection methods; it WILL, however,
    - make the networking interface standard (TLI
      with a socket emulation library on top of it)
    - make the libX11 XLib library DYNAMIC

This means that AT&T can use their XLib, ISC can use theirs,
and Everix can go their way; clients are developed as usual
except that they are dynamically linked to libX11.

This is a win when you realize that the library that the client
actually uses is the one provided with the server that is resolved
at run time!

  -John Plocher



More information about the Comp.unix.i386 mailing list