X11


X11 is a protocol for graphical interfaces that allows, among other things, the usage of programs in a server from remote machines.

In computing, the X Window System (commonly X11 or X) is a networking and display protocol which provides windowing on bitmap displays. It provides the standard toolkit and protocol to build graphical user interfaces (GUIs) on Unix-like operating systems and OpenVMS, and is supported by almost all other modern operating systems. (Wikipedia(external link)).

In the particular case of MacOSX, the X11 system is included in your installation CDs but may not be installed by default. Look for 'Optional Installs' in your MacOSX installation CD. After launching this installer, you can find X11 under the Applications package. The OpenOffice site offers more details on how to install X11 in a Mac(external link).

Prior to the introduction of Mac OS X, virtually the only way developers could create a graphical application in a UNIX-based operating system was with the X Window System, more commonly called X11. X11 for Mac OS X offers UNIX users the ability to run thousands of X11 applications concurrently with other Mac OS X applications. (Apple(external link)).

Some things have changed in X11 in Leopard: see A few tips on using X11 in 10.5(external link) and Leopard and X11(external link).

For Windows, a convenient and cheap way of installing an X11 server to connect to remote machines is by installing Cygwin.

To do a secure remote X11 access you can use SSH tunneling, see SSH for configuring X11 to do automatic X11Forwarding.

Which Machine Is the Client?


One important aspect of the X11 architecture is that the typical client and server terminology is reversed. Instead of a user's local client machine asking a remote server machine to do something and send the output back to the client, the user invokes a (potentially remote) client which sends its output back to the user's local X11 display server. To make this work, the user needs to be able to connect to the client, the server must allow display connections from the client, and the $DISPLAY environment variable must be properly set on the client. (Apple(external link))