Thursday, June 19, 2008

Midnight musings of a system gone wild

Interesting view presented here. How can we create software to handle situation where DRM (an unfortunate necessity in an imperfect world) is here to stay? Embedded systems such as mobile phones are essentially a close co-operation b/w h/w and software in a scale rarely seen before. It is one hell of a complex system. A thought that says let do virtualization layering, where the critical components (read IP) are kept layered out from the rest of the system. In the day when mobile phones are reaching and will some day cross the traditional desktop computing power, the overhead paid by these virtualizing layers are low. We could have something like an hypervisor running OS of our choice while being blissfully abstracting all the legal and technical woes away. We do today maintain an heterogenous multiprocessing system. And this does allow virtualization to take place to an extent. Probably the way to go might be massively parallel systems, where each system is independent of the other and may be termed as an "expert system".

Traditional OSes fail in respect of working in a heterogenous parallel processing systems as in an embedded system like mobile phones. There are many reasons for it:
a) IP blackholes: some parts of the system give the vendor a competitive advantage in the market that they would rather not loose. The net result is that even if an OS desires, it will not be able to control such a system.
b) inter processor communication: in a cluster or a generic "PC/Server world" the communication is limited only by the link media-optical networks etc. Think within a mobile phone - custom buses talk between peripherals, processor components have a lot more to handle other than link being the bottle neck.
c) Multi expert systems: traditional OSes think in Master-Slave in terms of App processor -> peripheral relationship. when you have multiple processors specializing on various tasks, we probably need a OS which has a wider abstraction.
d) Traditional applications are designed for limited use of multi-processing capability.
Thinking as we do now, we probably will end up in a bottleneck in years to come. What might be needed would a "OS" which is system wide - not just on an ARM in one corner of the chip. Applications are a usecase for the entire chip - it needs a co-ordinated system functioning in perfect harmony. probably virulization might be the answer, or perhaps a new breed of programming language, compilers, OS and applications and probably even a new breed of design methodology to exploit this interesting new phenomenon is the need of the hour..

Just musing...

No comments: