|M.Sc Student||Sinyuk Konstantin|
|Subject||User Driven Virtualization for Mobile Platforms|
|Department||Department of Electrical Engineering||Supervisors||Professor Avi Mendelson|
|Professor Yitzhak Birk|
|Full Thesis text|
Requirements imposed on mobile operating systems (OS) are continuously growing as the computation and the communication power of mobile devices increases. High multimedia and security/reliability requirements push the mobile device designers to enable the hosting of multiple operating systems with different specializations. The traditional approaches to multiple operating systems on mobile devices are multi- (usually dual-) boot and virtualization. Over the years, the multi-boot approach evolved into an OS Switching concept, which uses advanced power saving features such as Hibernation or Suspend to RAM to enable co-existence of multiple operating systems. The increasingly popular desktop/server virtualization approach, which relies on a Virtual Machine Monitor (Hypervisor) to provide a virtual machine for each operating system, gets popularity in mobile world due to its security benefits. To choose between the above approaches, one should analyze the following system metrics: switch time, performance impact, complexity and security.
This work extends the OS Switching approach, creating the User Driven Virtualization (UDV) framework that presents the advantages of the OS Switching concept over the virtualization approaches. UDV provides OS domain separation (most notably RAM and boot storage separation) and an OS switching mechanism based on the Suspend/Resume support of modern OSes and CPUs, while allowing inter-OS communication.
The proposed approach is implemented and analyzed on the popular single-core Marvell PXA270 ARM CPU. The implementation includes demonstration of coexistence of two popular embedded OSes (Linux and Windows CE) and implementation of message passing between OS domains based on virtual serial port devices implemented inside each OS domain. The user noticeable switch time of the production quality multimedia OS distributions was measured to be less than two seconds, justifying the sacrifice in concurrency from the user’s point of view in order to get the native OS performance.
Limitations of User Driven Virtualization on single-core CPU are discussed, along with the benefits of using this approach on a multi-core CPU. Implementation of cooperative RAM policies for inter-OS domain RAM sharing is also studied.