eMuCo News  

  1st Issue - 2nd April 2009


Virtualization on Embedded Mobile Devices

By: Adam Lackorzynski
      adam@os.inf.tu-dresden.de
Technische Universität Dresden
Germany
Virtualization techniques have been used for years in PC computing systems to run several OSes concurrently. More recently, virtualization has started to become a hot topic in embedded mobile devices.
 

Mobile communication systems are a growing market for the foreseeable future. Recent developments in the chip industry offer more powerful systems than ever allowing to integrate more functionality into features phones. Specifically the user's request to open up the platforms for third party software is an ongoing challenge as it breaks with traditional system architectures now requiring safe isolation of subsystems. Besides running crucial subsystems such as a protocol stack with stringent timing and security demands other applications must be run which were to developed with the environment of a mobile phone in mind. Additionally third party software may come with a malicious character in the form of Trojan horses or viruses. Contemporary systems are solving some of those problems by separating the critical components from the application domain by using two computing system in one device. This allows to run the protocol stack on its own system where it cannot be hampered by other software. The good separation of the protocol stack from the application domain is facing disadvantages such as increased hardware system costs and increased energy requirements leading to shortened battery life.

 

Virtualization

Due to the developments in the chip industry future mobile systems will scale with the number of cores in the system rather than by increasing frequency, offering multi-processor systems in mobile phones. The challenge for system designers is to combine the aforementioned software requirements with the newly available hardware. Critical software such as a protocol stack must be run timely and securely alongside with unknown third party software on the same computing system. The combination of the two domains on one system requires a software layer that is able to run and isolate components on top of the multi-processing system while still allowing controlled communication among domains. Large investments made in the application domain requires that most if not all code including the application operating system is reused on the new system. Using virtualization techniques it is possible to run commodity operating systems such as Linux or SymbianŽ on top of another system allowing seamless integration of a broad range of available software and applications in new systems.

 

Virtualization is a well known technique from the desktop and server market and is entering the embedded and mobile area now. Several approaches are used to host legacy operating systems on top of new systems. Full virtualization provides a complete platform model and allows to run unmodified guests. The paravirtualization approach requires to modify the guest operating system but allows better guest performance and less complexity in the virtual machine monitor software. Hardware support for virtualization as available on desktop and server systems allows to significantly reduce the software complexity in the virtual machine monitor and allows to run guests with near native speed.

 

eMuCo uses a paravirtualized version of the Linux kernel to run a broad range of available Linux software on top of the system. It allows to run virtual machines side by side with critical software subsystems such as protocol stacks on one system. The system combines a microkernel with a virtualization and runtime environment layer that hosts virtual machines as well as applications. Utilization of multiple cores allows to dynamically spread work as required by performance or energy savings by either use more or less cores. In standby operation all but one core may be switched off whereas in high-speed data transfers all cores might be used. The flexible system structure, such as the eMuCo system, together with virtualization techniques allows to run critical software side by side with third party applications in virtual machines, distributed on the cores as needed while properly isolated as required by modern security considerations.

 

back to eMuCo News