MIPS64 - System Mode Emulation in QEMU - [funded by HEC, PKR 4.05 M]
Emulation is a virtualization technique which is commonly used to run non-X86 software on a commonplace X86 based machines. Android emulator is an example which allows software developers run their Android programs on X86 computers. Such a use case has practical benefits like ‘convenience during software development’, ‘need to have fewer special embedded hardware for final testing’, ‘multiplexing actual hardware among many developers’ etc. Quick Emulator (QEMU) is another example of emulator which can run on many type of host machines (e.g. X86, PPC, etc.) and can emulate many target systems. QEMU does not support Cavium Inc’s Octeon processor based systems, which is a popular MIPS64 target. Octeon is based on MIPS64 cores and a single processor can have as many as 32 cores. This processor is heavily used in network switches and network attached storages. This proposal is about enhancing QEMU capability such that it can emulate Octeon MIPS Linux Operating System and user applications. Developing such an emulator has same kind of benefits as are explained for Android emulator above. Additionally this work requires high proficiency in Linux Operating System and MIPS64 architecture. This project will also flourish human resource for much needed open source knowledge. Linux Operating System is at the heart of many technological innovations from a personal mobile device (e.g. Android based phone) to warehouse-scale computer (e.g. Google’s 50,000 node datacenters running Linux). Similarly code contribution to a famous open source project is a desirable skill. We aim to make our code contributions accepted at QEMU central code repository so that it is available to a larger audience.
Nouman, Abdul Qadeer, Dr. Abdul Waheed
Ehsan ul Haq, Khansa Butt, Zain Ahmed, Ali Naeem
The project is funded by Higher Education Commission (HEC).