Virtualization … above the OS
For over six months now, I have been looking into the evolution of software technologies, and where we are heading beyond the Operating System. For a proper abstraction of an operating system to be created, there are two core solutions required. The first of these is what I call “encapsulators”. An encapsultor is a software component that wraps some sort of logic or programming and exposes it through a standard interface. At SCO we are developing a series of encapsulators that wrap up OS functionality, terminal sessions, and SQL databases and expose them as SOAP web services.
The second, almost more important solution, is what I call “virtualizers” … Virtual Machines … or “dynamic language” support. The article below touches on this subject, as it explains how much of the development of new software has moved from being written in C or C++ – and tightly coupled to the OS platform it was written for – to newer languages that have greater portibility.
As more people move to developing in languages like Java, C#, PHP, Perl, Python, etc. their resulting applications can migrate between operating systems much easier. There is a flip-side of this flexibility however, and that is the commoditization and marginalization of operating systems themselves. We are moving into a new phase of computing … where the hardware computing platforms that we are using are able to execute so quickly, that software layers of virtualization produce completely acceptable performance levels. This means that more development will occur in these languages, and more applications – and application components – will be developed in a form that is cross-operating system ready.
The value of the operating system of the future, in my opinion, is going to be judged by the encapsulations of its functionality, and its support for virtualized execution environments.