Jump to content
  • Advertisement
Sign in to follow this  
255

Why is X networked?

This topic is 4879 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've seen various arguments for and against X. Some say the greatest feature of X is that it's networked while others argue that this makes it slow. For a long time I've wondered why should networking be part of a core graphics system. Operating windows or desktops remotely can be done (better) with separate software like VNC. Why is networking considered an advantage instead of bloat? The only advantage that I can see X having compared to e.g. Windows is running multiple instances at once and selecting the instance on which the client is to appear, but this could be done without networking as well.

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
Here is the ways I've seen X used that I don't think VNC would be very good for.

At school there are labs filled with thin clients. Using these thin clients you can run programs on any of a number of the Solaris servers and all the windows appear within the same window manager. I've never used VNC, but I think it's more for one computer controlling a single other computer? Plus the thin clients are (hopefully) cheaper and much simpiler than the client you would need to run something like VNC.

X windows is still useful if you're using a fully fledged computer. For example, I was asking a TA a question about a problem in my graphics assignment and he turned to his linux pc and asked me to show him. He ssh-ed to one of the linux pcs in another lab that I had been working in, asked me to login and we could run my program. It didn't help me find my problem at the time, but I still thought it was pretty cool.


Share this post


Link to post
Share on other sites
Yes, I've used the networking feature too but couldn't it all be implemented as a separate library? As long as the graphics system had a way to select a screen (like X by default has the DISPLAY env variable), the graphics drawn by the client could be either shown on the screen or transmitted where needed using whatever method (compression level) is best.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
X isn't really networked when running on a local machine. It doesn't make things any slower. It just so happens, that the X protocol is well-defined enough that it can be run via a network connection instead of a unix domain socket (a zero-copy IPC mechanism that's quite efficient).

Share this post


Link to post
Share on other sites
What can be done with X cannot be done with VNC etc. That is, running multiple windows on the same display from different hosts.

Admittedly, it's not that useful. But it can be done. That's how X works.

Mark

Share this post


Link to post
Share on other sites
Quote:
Original post by igni ferroque
Quote:
Operating windows or desktops remotely can be done (better) with separate software like VNC.

Try playing Half-Life over VNC.

Try playing Half-Life over GLX.

X was developed to work in a powerful server/thin client world a long time ago, and that paradigm is still working today in a thick client world, so it can't be all that bad. As for the OP, that's pretty much the reason. For plain widgets, X will kick VNC's ass over low-bandwidth lines.

Share this post


Link to post
Share on other sites
That X is client/server-based comes from the time that companies would have big mainframes where all the programs would run, and employees would be working on 'dumb' terminals, without hard drives or anything.

Nowadays, this networking support is more or less obsolete. (Although it can be useful when you have your server box stuffed away in your basement).

Share this post


Link to post
Share on other sites
Quote:
Try playing Half-Life over GLX.

I have (that was sorta the point ;). It was a little quirky with my Window manager, but perfectly playable.

Share this post


Link to post
Share on other sites
Quote:
Original post by markr
What can be done with X cannot be done with VNC etc. That is, running multiple windows on the same display from different hosts.


http://metavnc.sourceforge.net/

But yes, I think I'm beginning to understand now. Even though the mechanism to send drawing commands doesn't have to be as generic as sockets, there ultimately has to be some way for programs to send drawing data in a well-defined format to a rendering system. X chose a general-purpose IPC system where others have chosen direct library calls to the kernel level (DirectFB, Windows(?)). If sockets are indeed fast enough to never become a bottleneck then X11 seems very well designed.

Thanks for the replies everyone!

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!