The client wouldnt have to be moved between servers at all, it could be the same proxy server, the proxy server could then open up connections to actual X servers and forward things to the real X servers. The proxy would massage and rework data as necessary to trick the X client and hide the fact it is being displayed to many X servers and also keep the X servers in the dark about what is really going on as well. This requires no protocol changes and no changes to the clients or servers. There are already two or more codebases that this has already been done on, one is something called Xmux, the other was something called Xshare or something, and I am aware of a possible third that was called XTV. None are actively developed at this time. <br>
<br><div class="gmail_quote">On Thu, May 26, 2011 at 11:26 AM, Glynn Clements <span dir="ltr"><<a href="mailto:glynn@gclements.plus.com">glynn@gclements.plus.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
David Jackson wrote:<br>
<br>
> I am know C, however I know little about X internals or X protocol. Is there<br>
> a good source of documentation that would give a person a full introduction<br>
> and overview of how the X server works,including how it all fits together,<br>
> and a tour of the system and documentation of the internals such as<br>
> functions, variables etc? Basically everything need for a person who only<br>
> knows C to learn all about how the X server works?<br>
<br>
</div>How a specific implementation works doesn't really matter, as that's<br>
something which can be changed. What can't be changed (without<br>
breaking compatibility) is the protocol.<br>
<br>
The relevant documentation can be found here:<br>
<br>
        <a href="http://www.x.org/releases/X11R7.6/doc/" target="_blank">http://www.x.org/releases/X11R7.6/doc/</a><br>
<br>
The main thing to bear in mind is the client-server model. If you want<br>
to migrate a connection to a different X server, you either have to<br>
ensure that the new X server will behave exactly like the old one, or<br>
make the client adjust to the change. The former is somewhere between<br>
ridiculously difficult and completely impossible, while the latter<br>
requires significantly changing the protocol, libraries, toolkits, and<br>
applications.<br>
<font color="#888888"><br>
--<br>
</font><div><div></div><div class="h5">Glynn Clements <<a href="mailto:glynn@gclements.plus.com">glynn@gclements.plus.com</a>><br>
</div></div></blockquote></div><br>