Development of Type-2 Hypervisor for MIPS64 Based Systems - [funded by ICT R&D, PKR 15.25 M]
The project is about developing an open source Type 2 hypervisor which installs and runs like an ordinary application on MIPS64 Linux based systems. This hypervisor will host multiple MIPS64 Linux virtual machines with securely isolated resources like CPU and memory. Once a generic version of Type 2 hypervisor is developed and released under the GPL license, we plan to enhance this base system for specific vendors through future proposals. This enhancement/customization of the software code will follow some restricted license (which can co-exist with open source license in harmony) such that a viable business model can be built. Therefore this proposal is a preamble and builds the right ecosystem for future business activity.
Virtualization is a long standing technique in computing which has experienced a renaissance currently, becoming a main-stream IT management tool in the industry. It is being successfully used in the enterprise and personal computing domains. Its main benefits include server consolidation, convenient software development and testing, dynamic load balancing and disaster recovery. Virtualization has made it possible to maximize computer hardware utilization while minimizing all associated overheads of hardware, management, power consumption, maintenance and physical infrastructure.
Virtualization started in the mainframe computers and found a key place in the server domain by allowing multiple server instances to be hosted on a single machine for reduced management and infrastructure costs. It then entered the consumer space in the form of type-2 hypervisors which permitted the concurrent operation of the multiple operating systems on a single desktop computer. Virtualized desktops came next permitting a server to host multiple clients over a network. And now it has entered the high volume market of embedded systems as these devices are becoming more sophisticated and powerful with increasing use of multi-core processor architecture. Currently virtualization is being used in the consumer embedded devices like smart phones but there exists a significant potential for virtualization in the higher end embedded systems (network switches, routers, GSM/LTE base station equipment etc.)
Hardware virtualization techniques allow running multiple virtual machines on a single physical computer system, with each virtual machine sharing the resources of that one physical machine across multiple environments. The software or firmware that creates a virtual machine on the host hardware or operating system is called a hypervisor or virtual machine monitor (VMM). A hypervisor provides a software virtualization environment in which other software, including operating systems, can run with the assumption of full access to the underlying system hardware, but in fact such access is under the complete control of the hypervisor. Multiple VMs may be managed simultaneously by a hypervisor. Hypervisors are generally classified as Type 1 or Type 2, depending on whether the hypervisor is directly running in supervisor mode on the physical hardware (Type 1) or is itself hosted by an operating system (Type 2).
This proposal describes the first phase of developing a comprehensive virtualization solution for MIPS processor based embedded systems. As the first step we want to develop an open source Type 2 hypervisor for the Linux based MIPS64 embedded devices. The proposed hypervisor will host multiple VMs running Linux operating systems. The focus is on the high end embedded systems to realize the same benefits as that of X86 system virtualization. This iteration though concentrates on building a general purpose open source Type 2 hypervisor for MIPS64 based embedded systems using Linux as the host and guest operating systems. The main idea is to exploit the advantages of virtualization for improved hardware utilization and performance optimization in the MIPS64 processor based embedded systems by efficiently using the multiple cores. The proposed hypervisor will support the installation and running of un-changed MIPS64 Linux systems.
We have observed that MIPS based systems are lagging behind in the use of virtualization. One of the reasons is that many MIPS based processors are used in low end consumer electronic devices (e.g. TV set top box, GPS navigation system, printers etc.). There isn’t a clear cut use case for virtualization here. But few of the MIPS vendors target higher end embedded devices (e.g. Network switches and routers, Network attached storage systems, GSM / LTE base station equipment, MIPS based blade servers etc.). There are clear virtualization use cases for this higher-end MIPS segment. Few of them are:
- Providing strict isolation and security between virtual machines (e.g. segregating routing information system and forwarding tables into two virtual machines inside a router so that any malfunctioning of one doesn’t bring the other down.)
- Running older versions of Linux OS and the user-land programs on a new hardware
- Running different versions of software stack concurrently without any interference with each other
- Server consolidation by shifting loads from multiple under-utilized systems to one system such that each virtual machine is virtually equivalent to one under-utilized system.
We are targeting higher-end MIPS64 market segment in this proposal such that a hypervisor is built which could run on any standard MIPS64 Linux based system. This software should re-use code from different open source projects (e.g. QEMU) so that work could be completed in reasonable time. That implies that our hypervisor code must be released under an appropriate open source license (e.g. GPL) due to legal bindings of open source code usage.
Embedded systems` virtualization differs from virtualization in PCs and servers as embedded devices are programmed to perform specific tasks in resource constrained environments, compared to their server and PC counterparts. These devices are increasingly using multi-core processor architecture to fulfill the market demand for sophisticated functionality and advanced computing capabilities. As these cores remain underutilized in general; virtualization technology can make the effective use of multiple processor cores possible. Virtualization permits applications to run in secure partitions, which increases security by preventing unintended software interactions. In addition, the ability to put applications in isolated partitions (i.e. VMs) facilitates software migration and consolidation, leading to reduced software development effort and lower platform cost. Furthermore, through virtualization embedded systems running a real-time operating system can also run a general-purpose OS, which typically provides a richer user interface.
Embedded virtualization is in its early stages and the solutions available in the market suffer from many limitations as these hypervisors focus on specific consumer embedded devices and processor architecture. Many of these hypervisors do not support MIPS64 processors and are single-threaded, totally overlooking the possibility of multiple cores on the host hardware or just support the emulation of multiple cores at the guest level. Most of them require patching of the host OS and are proprietary software. A general purpose hypervisor for MIPS64 based multi-core embedded system is not available in the market. We intend to develop a Type 2 hypervisor for the MIPS based embedded devices which supports the MIPS64 (i.e. 64 bit version of MIPS processor), is quick and easy to install, and effectively uses the multiple cores at the host and guest levels.
As we intend to use the open source code to develop our proposed hypervisor in order to reduce the project time and costs, we will be bound to release the code of our software solution to fulfill the licensing conditions. Our aim is to develop a comprehensive virtualization solution for MIPS64 based embedded systems, customizing it for specific MIPS vendors` products. As we release the initial code in the open source market, we plan to negotiate with different MIPS vendors and customize our software solution according to their requirements. We can sell our software to MIPS vendors or we can directly offer it in the market as an independent product.
Open source software does have commercial value as opposed to the common perception and many companies have built successful businesses through open source platform. The financial returns on the open source software can be realized by providing support services rather than selling the software itself. The use of dual licensing not only facilitates the offering of the software under an open source license but also under separate proprietary license terms. Customers can be attracted to a no-cost and open source edition, and then be charged for customization and support services.