Design
For more details on this topic, see X Window System protocols and architecture and X Window System core protocol.X uses a client–server model: an X server communicates with various client programs. The server accepts requests for graphical output (windows) and sends back user input (from keyboard, mouse, or touchscreen). The server may function as:
- an application displaying to a window of another display system
- a system program controlling the video output of a PC
- a dedicated piece of hardware.
This client–server terminology—the user's terminal being the server and the applications being the clients—often confuses new X users, because the terms appear reversed. But X takes the perspective of the application, rather than that of the end-user: X provides display and I/O services to applications, so it is a server; applications use these services, thus they are clients.
The communication protocol between server and client operates network-transparently: the client and server may run on the same machine or on different ones, possibly with different architectures and operating systems. A client and server can even communicate securely over the Internet by tunneling the connection over an encrypted network session.
An X client itself may emulate an X server by providing display services to other clients. This is known as "X nesting". Open-source clients such as Xnest and Xephyr support such X nesting.
To use an X client application on a remote machine, the user does the following:
- On the local machine, open a terminal window
- use ssh with the X forwarding argument to connect to the remote machine. Telnet can be used but is not secure, does not allow graphical forwarding and is largely deprecated.
- request local display/input service (e.g., export DISPLAY=:0 if not using SSH with X forwarding or 'tunneling' enabled).
The remote X client application will then make a connection to the user's local X server, providing display and input to the user.
Alternatively, the local machine may run a small program that connects to the remote machine and starts the client application.
Practical examples of remote clients include:
- administering a remote machine graphically
- using a client application to join with large numbers of other terminal users in collaborative workgroups.
- running a computationally intensive simulation on a remote machine and displaying the results on a local desktop machine
- running graphical software on several machines at once, controlled by a single display, keyboard and mouse.
Read more about this topic: X Window System
Famous quotes containing the word design:
“For I choose that my remembrances of him should be pleasing, affecting, religious. I will love him as a glorified friend, after the free way of friendship, and not pay him a stiff sign of respect, as men do to those whom they fear. A passage read from his discourses, a moving provocation to works like his, any act or meeting which tends to awaken a pure thought, a flow of love, an original design of virtue, I call a worthy, a true commemoration.”
—Ralph Waldo Emerson (18031882)
“Joe ... you remember I said you wouldnt be cheated?... Nobody is really. Eventually all things work out. Theres a design in everything.”
—Sidney Buchman (19021975)
“I always consider the settlement of America with reverence and wonder, as the opening of a grand scene and design in providence, for the illumination of the ignorant and the emancipation of the slavish part of mankind all over the earth.”
—John Adams (17351826)