OS X Based VNC Server Released

Dan McGuirk had done the dirty work and compiled/released a VCN server for Mac OS X, OSXvnc. VNC, or Virtual Network Computing, allows users to remotely control any computer on any platform equipped with a VNC server using a VNC viewer. VNC is platform independent, which means with OSXvnc running on your machine at home, you could access it with a VNC viewer from you Windows 2000 box at work. According to AT&T Laboratories Cambridge, who developed the VNC protocol:

VNC stands for Virtual Network Computing. It is, in essence, a remote display system which allows you to view a computing idesktopi environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures.

What makes it different from other systems?
For this simple mode of operation, you could achieve a similar effect by installing an X server on your PC. The important factors which distinguish VNC from other remote display systems such as X are as follows:

  • No state is stored at the viewer. This means you can leave your desk, go to another machine, whether next door or several hundred miles away, reconnect to your desktop from there and finish the sentence you were typing. Even the cursor will be in the same place. With a PC X server, if your PC crashes or is restarted, all the remote applications will die. With VNC they go on running.

  • It is small and simple. The Win32 viewer, for example, is about 150K in size and can be run directly from a floppy. There is no installation needed.

  • It is truly platform-independent. A desktop running on a Linux machine may be displayed on a PC. Or a Solaris machine. Or any number of other architectures. The simplicity of the protocol makes it easy to port to new platforms. We have a Java viewer, which will run in any Java-capable browser. We have a Windows NT server, allowing you to view the desktop of a remote NT machine on any of these platforms using exactly the same viewer. (The NT server is not multi-user - see the documentation). And other people have ported VNC to a wide variety of other platforms. Click the iContributedi button on the left for details.

  • It is sharable. One desktop can be displayed and used by several viewers at once, allowing CSCW-style applications.

  • It is free! You can download it, use it, and redistribute it under the terms of the GNU Public Licence. Both binaries and source code are available from the download page, along with a complete copy of this documentation.

The OSXvnc server is in its early stages of development, but has been lightly tested by The Mac Observer staff and was found to be remarkably stable and surprisingly quick. According to Mr. McGuirk:

Here are the known problems in the 0.5 release, in rough order of severity:

  • On some video hardware, when a window is dragged, only the borders of the window are updated and not the contents. This is a bug in OS X which Apple has already fixed in-house; the fix will be included in some future release of OS X. I know this bug occurs on the PowerBook G4; I donit know about other platforms.

  • Some keys donit work, most noticeably the arrow keys. This also appears to be Appleis bug.

  • The mouse pointer is not drawn. This is not a huge problem because most viewers give you some indication of where the mouse pointer is, but it means that you canit tell, for example, when the normal mouse pointer changes to a crossbar or a stopwatch.

  • Due to a mysterious race condition involving the dynamic linker, sometimes the server will fail to start up or crash on the first connection (you will see: "The server has stopped running: Process exited with status 10.") This doesnit happen often, and the solution is just to start the server again.

  • There is no icon, and there is no help other than a link to this page.

  • Support for international keyboards is probably very poor.

  • If the Mac display is set to 256-colors, the colors will not come out correctly on the viewer. I donit imagine this is much of a problem since a machine capable of running OS X is not likely to be running at 256 colors.

  • Support for clipboard operations (cutting and pasting across the VNC connection) is not there.

Who is responsible for this?
The vast majority of the code in OSXvnc is taken from Xvnc, the X VNC server, developed at AT&T Laboratories Cambridge. The work of porting the code and connecting it to the OS X Remote Operation API (and also making it multi-threaded in the bargain) was done by me, Dan McGuirk [email protected], and any problems with the current version are almost certainly my fault. Please mail me with feedback and suggestions.

You can find more information about the VNC protocol at the AT&T VNC Web site, and more information about OSXvnc at its Web site. [Edit 10/10/2003: The OSXvnc URL now points to a porn site, and we have deleted the link. - Editor]