There are several advantages to use virtual machine monitors (VMMs) for better security, reliability, and/or availability of systems. As embedded systems become more complex and open systems, there are more reasons to employ VMMs on embedded systems. Although there are more temptations to use VMMs, there are only a small number of VMMs available for embedded systems, and more of them are commercial proprietary software. Therefore, we decided to develop our own VMM on the ARM processor. We call it SIVARM: a simple VMM for the ARM architecture, because it is based on a simple trap and emulation model to virtualize the ARM processor. Since the VMM executes in privileged mode and its guest OS executes in non-privileged mode, the VMM can catch the execution of sensitive instructions as exceptions and emulate them appropriately. The guest OS can execute in non-privileged mode thanks to the virtual banked registers and the virtual processor mode provided by the VMM. The VMM was implemented for the ARM 1136JF-S processor, and can successfully boot Linux on it.
['Akihiro Suzuki', 'Shuichi Oikawa']
Implementing a Simple Trap and Emulate VMM for the ARM Architecture