okvm

open source KVM and console management

What is Virtual KVM?

KVM switches allow a single operator to control multiple computers and they have evolved from patch panels and mechanical switches to digital KVM switches and KVM over IP devices. However they all involve some hardware switch device. The notion of "virtual KVM" involves using software to route the operator's Keyboard output, Video input, and Mouse output to/from the target computer - over the IP network.

KVM hardware was developed as a console switching technology way before smart thin client tools such as ICA, RDP and VNC were developed. These software tools are now mature, offering high-quality low-bandwidth graphical transfer. Digital KVM converts analogue video into digital, introduces errors/noise, jitter and so on. It cannot make use of the screen transfer intelligence built into ICA, RDP and VNC clients so it demands heaps of bandwidth and introduces far more latency. In addition KVM does not do any logging or reporting on the data as there is nothing machine readable in graphical bit maps.

As a result there are growing numbers of commercial "virtual KVM" alternatives to KVM and KVM over IP now available e.g.

Many of these commercial products are built on open source technologies that are freely available:

Virtual KM solutions

At the simplest level there's "virtual KVM" software that routes just the keyboard and mouse outputs. With such a "virtual KM" solution an operator can control multiple computers, each having its own display, from the one keyboard/mouse interface.

Synergy2 is the virtual KM opensource project. With Synergy, all the computers on a desktop can be operated form the mouse and keyboard of only one of the computers. You tell Synergy how many screens you have and their positions relative to one another, and Synergy then detects when the mouse moves off the edge of a screen and jumps it instantly to the neighboring screen. The keyboard works normally on each screen; input goes to whichever screen has the cursor. You can download Synergy from http://sourceforge.net/projects/synergy2/.

Virtual Network Computing

Virtual Network Computing (VNC) is an open source tool designed so users and administrators can remotely access and control Windows 98/NT/2000/XP/2003, Linux, Macintosh, Solaris and UNIX computers. VNC transmits the Keyboard depressions and Mouse movements from one computer to another; and relays the Video screen updates back in the other direction, over a network .... a virtual KVM implementation

VNC has two parts, a Viewer client and a server. The server is the program on the machine that shares its screen, and the Viewer is the program that watches and interacts with the server. VNC is truly platform-independent so a VNC Viewer on any operating system can connect to a VNC server on any other operating system. There are Viewers and servers for almost all operating systems and for Java. Also multiple clients may connect to a VNC server at the same time.

VNC uses a simple protocol where the server sends small rectangles of the video frame buffer to the client. This protocol allows the client and server to negotiate which encoding will be used to optimize the bandwidth used for the video transfer.

There’s a range of popular freeware and commercial VNC software available: