Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
X Window System
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
X Window System
(section)
Add topic