Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
X Window System
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Software architecture== {{Further|X Window System protocols and architecture|X Window System core protocol}} [[File:X client server example.svg|thumb|Simple example: the X server receives input from a local keyboard and mouse and displays to a screen. A web browser and a terminal emulator run on the user's workstation and a terminal emulator runs on a remote computer but is controlled and monitored from the user's machine.]] X uses a client–server model: an X server communicates with various ''client'' programs.<ref>{{Cite book |last=Quercia |first=Valerie |title=X Window System user's guide |last2=O'Reilly |first2=Tim |date=1990 |publisher=O'Reilly & Associates |isbn=978-0-937175-14-9 |series=The Definitive guides to the X Window System |location=Sebastopol, CA}}</ref> 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 [[personal computer|PC]] * a dedicated piece of hardware This client–server terminology{{snd}}the user's terminal being the server and the applications being the clients{{snd}}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 [[List of display servers#X11|Xnest]] and [[Xephyr]] support such X nesting.<ref>{{Cite web |title=xnest(1) - Linux man page |url=https://linux.die.net/man/1/xnest |website=die.net Linux Docs}}</ref> === Remote desktop === To run an X client application on a remote machine, the user may do the following: * on the local machine, open a terminal window * use {{Code|ssh -X}} command to connect to the remote machine * request a local display/input service (e.g., <kbd>export DISPLAY=''[user's machine]'':0</kbd> if not using SSH with X forwarding 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 (similar to using remote desktop, but with single windows) * 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
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)