I understand that X can be used via TCP/IP. This given I don't understand why VNC was developed and everybody seems to be using same instead of using X remotely.
Is there a limitation for an embedded device to be an X server or an X client ? Can either or both be set up in µCLinux ?
X is a protocol that specifies seperation of the processing layer (the program itself) and the display layer (the GUI, keyboard, mouse). This allows a program to be executed on one machine, but be displayed and controlled on another. X is generally associated with unix, although X servers (confusingly, the client program!) exist for other platforms,
VNC is a protocol that specifies how an entire desktop can be displayed remotely. Individual program cannot be executed, only an entire desktop window. VNC is also completely platform neutral, having clients and servers (in the traditional sense) for a wide range of platforms.
To give you an example, when I want to alter firewall rules for a unix (linux, bsd) server at work, I can use X to run the configuration program and display it on my (Linux) machine. To do this with a Windows client generally requires a commercial program (there are free X implementations but most are old or limited).
When I want to administer a Windows server, I use VNC to get the *current* desktop image and manipulate it remotely on my Linux machine. Windows users can do this to with VNC.
I could also setup a VNC server on the unix machines, running a full desktop, and then the Windows users could VNC into that to run the firewall administration program etc.
Hello Michael I was interested to this thread too. Unfortunately seems that most of people use VNC instead of configuring the X Client/Server. Although I think X Client/Server architecture could be very interesting in embedded linux systems. Bye
Marco Cavallini ============================================== Koan s.a.s. - Software Engineering (x86 and ARM) Linux and WinCE solutions for Embedded and Real-Time Software Via Pascoli, 3 - 24121 Bergamo - ITALIA Tel./Fax (++39) +35 - 255.235 -
Just look at VNC web site. VNC can totally replace X. It works for example over the frame buffer and can act as X server and applications work without knowing that it isn't X. Of course, the memory usage is smaller and you can connect with many clients (X client, VNC.). Windows or Mac can connect, and also any other little PDA that can run VNC. VNC client use little disk space (compared to X client that need complet X).
So, Advantages:
- Less memory (runtime memory usage and disk space)
- More interoperability (Windows, Mac, ..., PDA, Java plateform, ...)
- More easy to configure
- The power of X protocol for local and remote client but without some of its inconvenient
So you suggest that I can run VNC (e.g. on a Windows PC) and have my application (on al Linux box with no VNC installed) connect via remote X protocol to that GUI server ?
That would be a decent free X-Server for Windows ?!?!?!
For a decent free X Server in Windows, just check out Cygnus. VNC's main advantage is that you can secure it and run it through SSH. Its main drawback is that the VNC X Server actually runs on the Linux side and takes up memory there. Between the Windows PC and the Linux machine, the protocol is VNC.
If you use Cygnus (or any other X Server for Windows), then there is no X Server at all running on the Linux box. That should substantially lower the memory footprint. Unfortunately, the X protocol cannot easily be squeezed through SSH, at least not completely without a kludge.
--
Keep American Families united! Support H.R. 539 and H.R. 832
For more information, see http://www.kkeane.com/lobbyspousal-faq.shtml
I beg your pardon? What's so hard about tunneling port 6000 through ssh? In my book, that's the default ssh setup, which is only disabled if you give the -x switch. man ssh.
Maybe you're talking about other fluff, like XDMCP and the login screen. I guess I don't consider creative, application-specific solutions (which I'm sure can be found, once you set your boundaries logically) a "kludge".
When a local application connect to X and use X protocole, it connects and use VNC X server. Access to the hardware by VNC is done through the frame buffer. Xlib for example connect to the server using X protocol... and the server is VNC.
X protocole is a... protocol. Just a way to send graphical orders between a server and clients. When using VNC, VNC clients on remote device don't need to have X installed to connect. They use VNC protocol instead of X so they don't need fonts, drivers, ...
You are exactly right, I was talking about XDMCP. The SSH X forwarding that you are referring to requires you to first log in using a console, and then launch your application from that. Also, another reason it doesn't work well, at least with the cygnus client, is that the window manager runs on the client side. With cygnus, that is twm (I think it also has fwm or so). True, you get to see a window that shows the application, so technically you are right, it works. But without KDE, Gnome or Bluecurve, that is pretty useless. I tried it and ditched it within 24 hours; I'm now just using the command line itself.
Of course this part of X works. Technologically, this may not be a kludge, but the user experience most certainly is unacceptable for most purposes.
--
Keep American Families united! Support H.R. 539 and H.R. 832
For more information, see http://www.kkeane.com/lobbyspousal-faq.shtml
I completely misunderstood what you meant by "it" in this sentance. I thought you meant that the local app no longer has to talk talk the X protocol since it's talking to VNC server rather than the XFree86 server.
You meant you don't have to have X installed on the _remote_ machine. That's true. VNC doesn't replace X on the local machine, it impliments it. I thought you meant that VNC replaced X entirely (on both machines) and the clients somehow didn't have to use X at all.
--
Grant Edwards grante Yow! ... I have read the
at INSTRUCTIONS...
visi.com
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.