View Full Version : Dual Xserver solution.

23rd April 2010, 06:00 PM
I currently have two computers at my desk, 1 is Fedora 12 and the other is Windows Vista. I am using the synergy client to share mouse/keyboard but I would like to run Xming which is a Xserver for windows to display on my Windows machine.
I have 3 monitors 1 is connected to the Linux machine and then I have 2 connected to the windows vista and I want to share 1 one using a windows Xserver.

I have the server installed and setup on my windows machine and I just curios on how to configure my Xorg.conf file to use my Xming Xserver as a seccond monitor. Please help thanks.

23rd April 2010, 06:49 PM
directly? don't think so.

You can always send X window activity over the net. Just setup for TCP connections
to the X server on windows, and setup the Xauthority, and the DISPLAY environment
parameter on Linux. Then any GUI run on Linux will display on the Windows server.

The problem is that the "monitor" isn't directly connected. This eliminates running
an Xserver... it also eliminates any console terminals - though there is Xnest perhaps
- this is an X server implemented using the X protocol to communicate to another X
server. It is really slow.

Most monitors I have seen (last 8 years) have dual display capability built in - they
have two video connectors (VGA/HDMI/DVI combination) that allow connection
of two video sources.

This doesn't get sharing of keyboard/mouse though.

What you really want (maybe) is a cheap KVM (keyboard, video, mouse) switch.
Some of the newer ones even have audio switch capability. I've picked up two
cheap ones at Best Buy - even has a built in TV tuner. I think the digital versions
are running about $100 US.

23rd April 2010, 08:08 PM
Maybe I am confused about how X11 operates. I thought Xservers would be equivalent to display drivers in a dos environment. X clients are software. So for example, I have a Nvidia Quadro card and I needed the nvidia Xserver to run on this machine. I heard that xservers can be ran locally or over a network. If I set the enviorment setting DISPLAY=hostname:0 to a remote setting it would export the display over IP.

23rd April 2010, 10:19 PM
The X server is software that translates the X network protocol into requests for
hardware interpretation. The X server is not involved with any console terminals
which use the hardware much more directly other than requesting direct connections.

Display drivers in DOS were real drivers - they wrote directly to the hardware, and
there were no "backdoor" (such as console terminals) interface. Once they loaded,
the simple VGA driver would be replaced/superseded by the display.

Setting the DISPLAY environment variable only directs X clients (applications)
to the X server to use. This is a network operation. By default, Linux X servers
do not support TCP/IP connection (it has to be explicitly enabled), and instead,
the clients talk to the X server over a UNIX domain socket. The reason for the
"not enabled" is that due to historical operation (restriction of encryption mostly)
the communications between the application and the X server have not been
encrypted, and only minimally authenticated (the X authentication is passed in
cleartext). For this reason, most network connections to X servers are recommended
to be done by ssh. Ssh provides an authenticated connection, and can forward
the X network protocol to the X server running/accessable from where the ssh
client was invoked. This is accomplished by having the remote sshd connection
emulate an X server, by listening on a socket, then relaying the connections/data
over the encrypted link to the ssh client.. which in turn decrypts, and passes the
connections to the available X server. In some cases, this is faster than using
X directly over TCP as the ssh client/server includes the ability to compress the

Its been a long while since I looked at the internals of the Linux X server, I believe
they operate in a "cooperative" driver mode. The X server allows an escape to
to suspend the X server and allow the console terminals to be used. The console
terminals are emulated command line devices in the kernel, using the base VGA
text display. When the console terminal is switched back to an X display, the the
X server restores graphics context for X. X "driver" are user mode modules that
are loaded into the X server (dynamic libraries) during the X startup. The libraries
interface with the kernel to request direct access to the device registers of the
display hardware. This is why it is a "cooperative" interaction with the kernel.

Most of this kluge has been caused by MS requiring the video hardware to support
a lot of odd interfacing, and without memory management support. This lack of
isolation between the device and the rest of the system is why buggy graphics
drivers/libraries have been known to cause crashes to systems (both Windows and

As an aside, this is also part of the reason the Linux kernel maintainers cannot
provide any support for use with proprietary drivers - they have no way of
knowing if the crash is caused by such a driver. That is why the use of such
drivers "taints" the kernel. It tells them not to bother. If you can reproduce
the crash without using such drivers, then they will look at it.