Portability and the X Protocol

The X-Windows system is portable for one reason: The designers separated the <#1653#> display<#1653#> functionality from the <#1654#> application<#1654#> functionality. They did this by constructing a standard protocol, (a set of rules, and format for records exchanged according to those rules), that allows application programs to talk to the display process. The display process (of which there is one for each physical display attached to a machine) is called the <#1655#> Server<#1655#>, while the application programs are <#1656#> Clients<#1656#>. You can have lots of application programs. Each application program can have 0, 1 or more <#1657#> Windows<#1657#>, which may or may not be visible at once on the screen. One handy consequence of this design is that a client can talk to a display server on a different machine (or indeed several machines!). The most common client program is a <#1658#> terminal emulation<#1658#> window - usually the <#1659#> xterm<#1659#> application, which is normally running a shell (Unix command interpreter) for you, but can run anything else that does terminal I/O. Note Bene: <#1660#> The model of client and server is the reverse of that you may be used to in distributed systems: In a distributed file system, you workstation is a client, and the server-under-the-stairs with lots of discs is the server. In a networked windowing system, the large machine in the basement with lots of CPU cycles is the client, and you workstation (display) is the server.<#1660#>