What Is the Free Software Advantage?
With software migrating all over the place, it becomes very difficult to keep track of licenses. The Vista license even prohibits running it in a virtual machine and ties it to a particular physical computer.
In contrast, a Free operating system can be installed in a VM, migrated around a network, to pocket machines, cloned for testing, and so on without any licensing issues. The cloning is a big point. If you are collaborating with someone on a project, you can make their life easy by cloning the virtual machine you are working in and giving them a copy. This will have the same set of tools, the same layout, and everything.
I expect the ubiquitous computing (UbiComp, to any newspeak speakers) world will see the rise of the virtual appliance; entirely self-contained applications that run in their own virtual machine. They will be migrated to where they are needed and cloned when more are required.
Interestingly, this is close to the conclusion of Alan Kay’s vision when he invented the term object oriented. Anyone who has grown up with cargo-cult object oriented languages, such as C++ and Java, may be laboring under the delusion that OO is about classes and methods and inheritance. In fact, the idea was very simple. Computers are complicated. We can make them appear simpler by splitting them into simple (virtual) computers that communicate by message-passing.
In Alan Kay’s object oriented world, everything is composed of simplified computers. Even the messages that the simple computers exchange are simple computers themselves. This idea, again, goes right back to the foundations of computer science, when Alan Turing talked about Turing Machines that operated on other Turing Machines.
We are currently seeing the first steps toward a fully object-oriented system with things such as Xen. The simplified computers that Xen supports are not very simplified. They still have a lot of the cruft of the x86 instruction set, but they do begin to provide some simplification, including an informal message-passing mechanism. Xen implements only shared memory directly, but Xen drivers typically use a ring-buffer mechanism for passing messages.