[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: The client-server terminology when referring to X (was: Remote X login)



Maxim Vexler wrote:

The X server (which is running on the local laptop) obeys the demands
of the application and draws what was requested from him, that is why
the laptop in question is the SERVER.

Not draws, but *displays* the client's output.  "Draw" has a much narrower
meaning in X or graphics display terminology.  To understand X client/server
design, it's helpful to review the history of UNIX and X graphical workstations.

 He served the application and
drew what was requested from him.

The significant resource consumption in on the _client_ and NOT on the
server as one would expect.

Not necessarily, and historically the resources were generally vastly different
between the client and server, which is why they were partitioned that way.
In the early days of X, CPU, storage and display resources were often too
expensive to combine in a single box.  It's not unlike giving an expensive
printer its own server, nowadays.  Then, X graphical displays were expensive
and used mostly by CAD specialists, while everyone else used dumb terminals.
What we now call "thin clients" would have been "thin (X) servers" then,
with all the expense concentrated in the dedicated display hardware, with very
little storage or general purpose CPU power.

 That is because all the rendering, data
structures, CPU calculation cycles, I/O and so on is done on the
client. The server (in X terminology) only receives raw drawing data,
using the mentioned XDMCP transmission, and those act's in a vary
mature manner "He told me to, so I did it" :)

Even today, often the (server) GPU does more work than the (client) CPU, so
your example is not necessarily valid, and definitely wasn't valid in the
early days when graphics took relatively more processing power.


Is my analogy correct ?


/// Skipping the user interaction phase, in hope that someone could
fill me in...
If the laptop in the example is the server, and yet the user is
obviously working on that laptop... How then does the application
knows what to ask the server to drew next ? Who sends the input from
the user back to the application so that it in turn could instruct the
X server what to draw next ? ///

I don't know the details, so I expect someone more knowledgeable to correct
me or fill in the details, but IIRC the X clients and X servers (there can be
more that one of each) communicate through the same X protocols whether they
are local or remote.  If client and server are both local then the physical
network interface is bypassed and X protocol packets are routed locally. (The X
clients themselves don't "know" or "care" where or how their output is being
displayed, and likewise the X servers don't "know" or "care" where the clients
are located.)

If the X client user is running a remote X client, then the X protocol connection
between client and server is handled seperately from the login session connection
of the X client, although in the case of an ssh login, X can be tunnelled with ssh.
(This has the advantage of being far more secure, especially over insecure
networks.)



Would love to read some clarification on this subject, as it is known
to confuse a lot of (newbie) users like me.

Try the X.org web site.



--
Cheers,
Maxim Vexler (hq4ever).

Do u GNU ?



Reply to: