Nezha: Mobile OS Virtualization Framework for Multiple Clients on Single Computing Platform

2019 
Mobile OSes, such as Android [1], have spread to non-smartphone use cases such as in-vehicle infotainment, electronic classrooms, and physical retail stores. These scenarios often require the installation of multiple standalone mobile devices to simultaneously serve different users. Meanwhile, computing capacity has increased quickly even on relatively low-cost computing platforms. To reduce the total cost of ownership, it is natural to ask: Is it possible to host multiple simultaneously interactive mobile clients1 on a shared computing platform? Android multi-user or virtualization techniques allow running multiple Android profiles or instances on one device. However, they are only able to multiplex one set of peripherals such as one screen, one touch input, and one audio output between instances, which means only one instance at a time can be operated by the user. Therefore, Android virtualization techniques cannot meet the requirements of supporting multiple standalone screens for users with one computing platform. This paper presents Nezha, a system to support multiple simultaneous interactive clients with an uncompromised user experience on a shared computing device. Nezha reduces total cost of ownership, lowers management overhead, and supports dynamic sharing of system resources. Nezha offers every client a full mobile OS instance that is virtualized based on container-like OS virtualization technology [2][3][4]. In our Android-based implementation, all clients utilize fully accelerated 3D graphics and standalone I/O peripherals such as touch, audio, and display. All clients share the computing capacity of a low cost but still powerful x86 platform. To our knowledge, Nezha is the first system that enables the full Android experience for multiple interactive clients backed by one computing platform. It is worth noting that Nezha employs a non-invasive design principle: Nezha extensions are made within the bounds of the hardware abstraction layer, with no modifications to the kernel and only minimal changes to the mobile OS framework. This makes Nezha easy to maintain against the quickly evolving upstream kernel and Android source tree. Our paper includes performance test results that demonstrate the scalability and low overhead of Nezha.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    15
    References
    0
    Citations
    NaN
    KQI
    []