“Virtual Machine” seems to have two distinct meanings:
- Sysadmins deal with “system” virtual machines, i.e. guest operating systems running on a VM host.
- The application programmer generally deals with a “process” virtual machine, such as
- the Java Virtual Machine
- the Common Language Runtime (CLR) for .NET
The “process” virtual machine may be running on an operating system which (in turn) may be running as a “system” virtual machine on a VM host. So, in some sense when we put a .NET application on Windows on Hyper-V (or a Java application on Linux on ESXi) we are actually virtualizing twice. The question arises as to whether we can actually virtualize only once, by putting the CLR or the JVM directly on the VM Host. In this action of course we remove the operating system.
I spent the Week at EclipseCon, the Open Source Software tools conference. EclipseCon is a conference like no other, it is where the industry gets together to discuss how it is building the tools that are used to build the applications that we are all using. Since tools precede applications it tends to see into the future. Eclipse is the dominant non-Microsoft software tools platform, so unless it can be built using things that are currently being built for Eclipse or by Microsoft Visual Studio 2010, it’s very unlikely that it will be built in the next few years. Conversely, tools are only there to sell runtimes, and if there are developments in runtimes there will be investment in corresponding features of tools.
The perplexing feature of EclipseCon is that there are almost no users present, except in the sense that everyone is eating their own dog food, using Eclipse to build things in and/or for Eclipse. This means there is no hype, just a hard-bitten technical cynicism about how the marketing guys are spinning the latest technology. And yet you can see the cloud creeping across the hallways and in through the doors of the conference sessions, and onto the presentations and panel sessions.