Virtual Network Computing

VNC as an alternate method of remote access—how does it rank?
But What About X?

After reading the above, I'm sure many readers are wondering why they should bother with VNC when another excellent remote access tool, the X Window System, is included in some form in nearly all Linux distributions. This is a good question, and the answer is straightforward. In certain scenarios VNC possesses several strong advantages over X, specifically in cross-platform support, security, client-side statelessness and client-side resource usage. The first of these, cross-platform support, is simple. While X servers exist for many platforms, they are often neither free nor any variation of open source.


You may want to make a few modifications to your usage habits to improve your productivity, primarily in the area of scrolling. Because VNC is an abstract protocol and does not link to the underlying graphics system (i.e., at the accelerator level), it sees the screen as only a pixmap and does not follow what X or the Windows GDI is doing. Because of this, you must redraw all changing areas of the screen, even if you are simply scrolling a document. Because of this, I would recommend you become accustomed to scrolling by page instead of by line to minimize the amount of time spent redrawing the screen (once per page rather than once for every line scrolled). Common situations in which this makes a big difference include paging through a spreadsheet or word processing document full of charts and diagrams, scrolling through an image in the GIMP or Photoshop or, if you are so possessed, browsing the Web through VNC. This also becomes an issue in many Windows applications that attempt to use Windows' smooth scrolling feature; because of the way the GDI accelerates this function, VNC cannot track the current screen image properly and will fail to draw the screen correctly. A second workaround to this is to turn off graphics acceleration in the Display Properties control panel under the Troubleshooting tab of the advanced settings screen (accessible via the Advanced button under the Settings tab). While this will greatly slow video performance when working at the Windows machine's console, VNC is far better able to correctly display and refresh the screen with these settings. In a similar vein, having a fast video card—or any video card for that matter—won't help you under Linux. In fact you don't need a display adaptor of any kind on a Linux VNC host because VNC creates its own virtual display.

The Bottom Line

VNC is one of the more useful programs in existence. That it is being developed by a group devoted to research (AT&T Laboratories Cambridge) and that it is available under the GPL are both good points. VNC is well-suited for applications where remote access to and from diverse platforms is needed, and I would recommend it to anyone looking for a good graphical remote access tool.