Unfortunately I'm not a programmer, that's why I can not produce working code of virtual appliance, where my idea would be realized. Everybody can make use of my idea for making himself code, if it's interesting and relevant.
It is obvious, virtualization technology will became one of the most popular and important.
As for me where is some problem – virtualization process is realized mainly on OS-level.
Of course hardware producers try to create their own virtualization mechanisms. But as mechanisms are commercial and non-opened they are promoted hard. And that is prior, and they can not become industry standard de facto.
This fact directed me to the next idea.
It is very simple: it is necessary remove all virtualization mechanisms to hardware-level, and give typical virtual hardware to OS. Modern OS should be full abstracted and independent from hardware where it works. Adaptation function should execute middleware. It substitutes BIOS fully and OS partly. Let it be “virtual computer”. Only it will be specified for hardware and divide system resources.
In other words kernel (if possible it is better to use microkernel) install on motherboard (not on HDD). This microkernel will be specified for hardware and give “standart virtual hardware” (SVH) for OS (or OS'es) placed on HDD. SVH can give hardware system resources to OS fully or partly.
Certainly in virtual computer development should be used Open Source software, because of it cannot be allowed a little opportunity to take monopoly or to exert influence on all users of this technology.
Of course for this developing will demand good will and hands on from hardware producers: processors, graphic accelerators, motherboards, chipsets, network hardware, periphery etc.
For full hardware supporting producers should give to developers specifications and possible open drivers code their hardware.
By the prototype of virtual computer can be used LinuxBIOS. But it is obvious should be do so much on this direction. It is very difficult to state the value all future decisions. Undoubted for me is the course of this work.
Course: what for?
In the near future the hardware quantity and diversity will increase. In this case users (individuals and corporations) will be bound to single software and/or hardware platform. At that hardware and software companies compete between themselves. As a result users suffer from their competition and progress in industry becomes slower.
For my opinion hardware producers should cooperate between themselves and think more about their clients needs than compete in marketing.
In present time users can not change hardware platform without changing software, and so often he deprived the opportunity to change software keeping hardware.
Moreover, software specification under certain hardware type restrains the total industry progress. It is clear Itanium failure and Itanium2 marketing difficulties concerned with compatible software absence.
In that case additional abstraction level between hardware and software allows to crack a problem. Because of this novelty new hardware will be independent from working software. For correct working it is necessary to add new function to virtual computer, that is very simple because of its openness.
After that all software will work on “standart virtual hardware” (SVH). Obviously that it is simpler write additionally/re-write a program then recompile or rewrite completely the soft ocean.
Hardware migration will be more comfort and renewal software be not so critical for development in case of wide using virtual computer. To migrate from SPARC to CELL, Itanium2, x86_64 etc and back will be more and more frugally and simpler. Moreover new technology migrating, for example to 128-bit processors, will be simper then to 64-bit.
Let to see more global. Every software producer have to rewrite his own code under each hardware platform each processor. It takes enormous time and millions. In over side hardware producers are cramped by the compatible software shortage.
May be it is more rational and economical to create universal mechanism, which will be opened for all hardware producers and give standard virtual resources? In this case programmers will forget about SMP and multicore processors; about software recompiling/rewriting.
March the 2nd , 2006
Novgodod the Great, Russia.
However getting a standard hw that would work across different architectures will not be in the virtualization, but rather in the emulation arena. Emulation might open for more opportunities, but has a big penalty in much weaker performance.
One might think of a piece of virtualised hw that will be standard across all platforms. With Just In Time[/url] compilers performance might not be all that bad. Hmm.. What was that[url=http://www.javacoffeebreak.com/articles/inside_java/insidejava-jan99.html]Java virtual machine[/url] supposed to be all about?
Message was edited by:
I like your ideas.
I know Cisco and IBM were working on similar technologies for SANs. Their goal was to enable mapping/re-mapping of LUNS and Hosts without stopping any applications/processes. The goals was to develop a solution including an IBM blade in a Cisco Fiber switch that would be independant of, and work with any vendor's, SAN Storage device and/or Host hardware.
I am not not sure they ever achieved that goal, but it was promising.
I think your idea sounds like a good approach to accomplishing what they were trying to do.
I am not sure how to get vendors around a table to discuss/work on that standard layer which would need to sit on every hardware device, but from a very large enterprise perspective, it would be a HUGE benefit.