Thursday, March 27, 2008

I for one welcome our new OS overlords

I've been saying it for years now. My first thoughts on the situation was the idea that there could be universal hardware drivers that any OS could use, coupled with a universal binary format that would run on any cpu. With those in place you could have OS's that could run on any computer, and software that could run on any OS.

Mind you, I had this idea back when I was programming my Amiga (and they were still being made...). So this was pre Java, before Linux and before any kind of reasonable emulation or virtual machines.

So here we are today. We have things like Java where you can, in theory, write code that will run on almost anything. We also have lots of interpreted languages that run effectively on almost anything, like PHP, perl, python, Javascript, etc etc.

But what about the os part? Well, we have Linux which does run on almost anything, and we have Windows which runs on only x86 hardware. But Linux lacks the driver support of Windows and Windows lacks the universality of Linux.

Microsoft doesn't seem to be interested in decoupling Windows from the hardware (not that it would be easy, of course, but why bother?) and Linux as popular as it has become may never get to where Windows is.

Never mind other OS's.

Except for one thing. Virtual Machines. This software lets you virtually split up your hardware into multiple simulated machines. Thus, you can run Windows and Linux at the same time. You can run Linux on top of Windows and in theory take advantage of hardware drivers in Windows that arent in Linux.

You are less restricted by having to choose an OS, since you can run many of them at once. At some point, your OS just wont matter any more. What will matter is your Virtual Machine, which will become the new OS. Which is as it should have been all along, because a Virtual Machine is the bare minimum of software required to make the hardware accessible from the software.

Windows may not be taken down by another, superior OS like Linux or MacOS or whatever comes along. It will be taken down by some Virtual Machine OS that lets you use any other OS's you want to use.

And Intel will be taken down when enough software is written in some portable binary format (java? .net? something else?) that makes choice of CPU irrelevant.

No comments: