I saw http://openfoo.org/blog/redis-native-xen.html and as soon as I read the opening paragraph: ... Redis, a popular key-value storage, can be run natively on Xen, i.e., without the support of a conventional operating system such as Linux, and what implication this has on the performance. I started thinking.
One of the features of a multitasking OS has long been isolation of the various programs running on it.
An operating system is a complex beast, offering services which may conflict with the programs that run on it. For example, see http://varnish-cache.org/wiki/ArchitectNotes (offline at the moment; try the Google cache: cache)
So if you are virtualizing several machines (presumably because you want to run some software on them) why not simply run each program on virtualized bare metal?
In short, the virtualization software then becomes the OS and your only IPC becomes sockets.