Virtual Machines, Run-times and Turtles All The Way Down
There’s this idea of standing with your own two feet on the ground. We know which way is up.
I’ve been thinking about the implications of the virtual machine. Our friends at Wikipedia give the following definition:
Of course, then they add that some virtual machines may have no correspondence to actual hardware. One of the more common uses of a virtual machine is to create a software version of a computer operating system. On my Macintosh computer, I run a program called Parallels that allows me to run Windows, and Windows programs, side-by-side with Macintosh programs. The Macintosh runs an application that runs an operating system that runs an application. The ‘two-feet on the ground’ aspect of this is that the Macintosh operating system talks to the hardware— it’s this that provides the ground on which virtual machines can be deployed. The speed of today’s hardware/software systems makes the latency between the machine and the virtual machine almost unnoticeable.
Once the operating system is virtualized it starts to resemble the run-time system. It’s an environment where application code can be run. As we look around, we find a number of things that might fit into this category. For instance, Android, which is called an operating system, is really a virtual operating system that sits on top of the Linux operating system.
When people talk about a Web Operating System, often I’m not sure what they’re referring to. But in the model of the virtual machine, the Web run-times enabled by the operating system include: webkit, gecko and trident. In the sphere of vector graphics animations, the run-times include: Flash and Silverlight. In Silverlight 4.x, an application can contain an HTML page, which is interpreted by the local default Web browser, and that HTML page can contain a Flash object. The in-and-outs of things start to get a little complicated.
Putting our feet firmly on the ground, we can see that it all starts with the hardware and the operating system. Nothing happens without these foundation pieces. This is the bedrock on which we stand. Although this perspective begins to sound a little like the story about turtles from Stephen Hawking‘s 1988 book A Brief History of Time, which starts:
A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the center of a vast collection of stars called our galaxy. At the end of the lecture, a little old lady at the back of the room got up and said: “What you have told us is rubbish. The world is really a flat plate supported on the back of a giant tortoise.” The scientist gave a superior smile before replying, “What is the tortoise standing on?” “You’re very clever, young man, very clever”, said the old lady. “But it’s turtles all the way down!”
While we may look at the computer hardware and operating system as the ground, we could also turn things on their head. What if, instead, we look at the environment where many virtual machines can operate as the new ground. Copernicus rather than Ptolemy. The hardware and its operating system are just and entry point into this Network of virtual machines. The one is a path to the many, and out of the many, there is one (E pluribus unum). Or as someone once said, the Network is the computer.
There’s this new idea of standing with your own two feet on the ground. We know which way is up.