Frank, C. (2020):
ARMv8 Virtualization Using VMware ESXi Hypervisor
One of the fastest-growing sectors in the digital technology market is the embedded device domain. Embedded devices are simple computing devices that form the basis of nearly all complex systems. However, embedded device development is limited by issues such as system complexity, security vulnerabilities, and resource constraints. Virtualization has been used since the 1970s to solve these same issues in mainframes and later servers and personal computers. This paper aims to answer whether hardware virtualization is a practical solution to the problems embedded devices currently face. First, the constraints that an embedded hypervisor would need to adhere to are elucidated and use cases examined for virtualization on embedded devices. A feasibility study was performed using VMware's ESXi hypervisor, which supports many of the use cases identified in the server domain. The ESXi hypervisor, programmed initially to only run on x86 processors, was modified to run on ARM processors, one of the market leaders in the embedded devices domain. Using the benchmarking suites LMbench3 and MiBench, it was found that the ESXi hypervisor on the MACCHIATObin Single Shot development board equipped with an ARMv8 processor has modest virtualization overhead compared to native execution. Additionally, ESXi was able to host up to five virtual machines, with variable virtualization overhead depending on the application. Although the evaluated ESXi hypervisor may already be suitable for some embedded devices, further evaluation and work needs to be performed on the scheduling policy of ESXi for devices that have real-time needs. Using Linux's cyclictest, it was determined that ESXi significantly increased the scheduling latency, which lowered the deterministic behavior of the system and increased the worst-case execution time, both crucial characteristics of real-time devices.