When using X, a user is running a graphical application, say an xterm. The xterm is the client; it communicates with an X server, which does the job of displaying it. There is no requirement that the client and the server must run on the same machine; the client and the server simply need to be able to communicate with each other. In addition, the X server needs to be willing (from a security point of view) to display the output of the client, and the client needs to be started in an environment that includes suitable information about how it will display its output (typically the DISPLAY environment variable).
In most simple cases (including cases in which you are explicitly logging in remotely by ssh), you don't need to think about any of this — everything just works.
Was this article helpful?