There are many interesting developments happing in the virtualization realms at the moment. I’ll list four significant developments which I am fascinated with.
Take for example the NestedVM. This is a high impact project which provides a binary translator from arbitrary MIPS machine code to either Java source code or JVM bytecode. The significance of this project is not to be understated. Any program written in a language the GCC understands can be compiled to MIPS and then via the NestedVM to JVM bytecode. Not only does it handle any program, it also provides a layer of safety not present in binaries running with no virtualization. Read the presentation (PDF) for more information.
Next up, The LLVM Compiler Infrastructure. The LLVM defines an intermediate language which C/C++ etc can be compiled into. This language is then subjected to various optimizations. The LLVM can also target several machine architectures such as X86, MSIL, IA64, Alpha, SPU, and MIPS. It’s a large toolset, too large to be described in a single paragraph. But bottom line it’s an ambitious project with the right ideas. It also compiles C++, a not insignificant feat. A not so recent presentation of LLVM 2.0 is worth watching, although LLVM 2.2 is here now.
In a similar vein there is the Phoenix Framework – Microsoft’s framework for building compilers and sharing optimizations across languages. It’s another interesting project that looks a bit like the LLVM project. The primary focus looks to be CIL and C++. It’s supposed to be Microsoft’s compiler framework for the future. Let’s hope it’ll make Windows run a little faster, shall we.
IL2CPU is at the heart of the Cosmos OS project. Cosmos is an OS written in “managed” code (MS/IL), primarily C#, I believe. The IL2CPU compiler can compile IL down to native code.
Finally, and not really related, there is actually a project underway to develop an OS in the D programming language. I only mention it because it is part of a trend to apply higher-level languages to build an operating systems. I doubt the long-term success of the project as it must be a massive undertaking, but I like the idea. D is certainly a fantastic language for many reasons, with its unique blend of low-level and advanced high-level features such as compile-time function execution, templates, lazy evaluation etc. etc. I forgot the name of the project but will put a link to it when the name comes back to me. I am tempted to call it DOS, for obvious reasons, but that would be wrong, for equally obvious reasons.