Predictable Virtualization on Memory Protection Unit-Based Microcontrollers

With the increasing penetration of embedded systems into the consumer market there is a pressure to have all of inexpensiveness, predictability, reliability, and security. As these systems are often attached to networks and execute complex code from varying sources, reliability and security become essential. To maintain low price and small power budgets, many systems use small microcontrollers with limited memory (on the order of 128KB of SRAM). Unfortunately, the isolation and protection facilities of these systems are often lackluster, making a principled treatment of reliability and security difficult. This paper details a system that provides isolation along the three dimensions of CPU, memory, and I/O on small microcontrollers. A key challenge is providing a effective means of harnessing the limited hardware memory protection facilities of microcontrollers. This is achieved through a combination of a static analysis to make the most of limited hardware protection facilities, and a run-time based on our Composite OS. On this foundation, we build a virtualization infrastructure to execute multiple embedded real-time operating systems predictably. We show that VMs based on FreeRTOS achieve reasonable efficiency and predictability, while easily enabling scaling up to 8 VMs in 512 KB SRAM.

[1]  Philip Levis,et al.  Multiprogramming a 64kB Computer Safely and Efficiently , 2017, SOSP.

[2]  Philip Levis,et al.  The nesC language: a holistic approach to networked embedded systems , 2003, SIGP.

[3]  J. Shapiro,et al.  EROS: a fast capability system , 2000, OPSR.

[4]  Qi Wang,et al.  SPeCK: a kernel for scalable predictability , 2015, 21st IEEE Real-Time and Embedded Technology and Applications Symposium.

[5]  Michael Norrish,et al.  seL4: formal verification of an OS kernel , 2009, SOSP '09.

[6]  Udo Steinberg,et al.  NOVA: a microhypervisor-based secure virtualization architecture , 2010, EuroSys '10.

[7]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[8]  Frank Mueller,et al.  Providing task isolation via TLB coloring , 2015, 21st IEEE Real-Time and Embedded Technology and Applications Symposium.

[9]  James R. Larus,et al.  Singularity: rethinking the software stack , 2007, OPSR.

[10]  Jay Lepreau,et al.  Evolving Mach 3.0 to A Migrating Thread Model , 1994, USENIX Winter.

[11]  Gabriel Parmer,et al.  Temporal Capabilities: Access Control for Time , 2017, 2017 IEEE Real-Time Systems Symposium (RTSS).

[12]  Chong Li,et al.  Prioritizing soft real-time network traffic in virtualized hosts based on Xen , 2015, 21st IEEE Real-Time and Embedded Technology and Applications Symposium.

[13]  Wolfgang Schröder-Preikschat,et al.  SAFER SLOTH: Efficient, hardware-tailored memory protection , 2014, 2014 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[14]  Richard West,et al.  Predictable Interrupt Management and Scheduling in the Composite Component-Based System , 2008, 2008 Real-Time Systems Symposium.

[15]  Yuting Zhang,et al.  Process-Aware Interrupt Scheduling and Accounting , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[16]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[17]  Jochen Liedtke,et al.  Guarded page tables on Mips R4600 or an exercise in architecture-dependent micro optimization , 1996, OPSR.

[18]  Jeffrey S. Chase,et al.  Opal: A Single Address Space System for 64-bit Architectures , 1992, OPSR.

[19]  Richard West,et al.  HiRes: A System for Predictable Hierarchical Resource Management , 2011, 2011 17th IEEE Real-Time and Embedded Technology and Applications Symposium.

[20]  Mani B. Srivastava,et al.  A dynamic operating system for sensor nodes , 2005, MobiSys '05.

[21]  Henry M. Levy,et al.  Capability-Based Computer Systems , 1984 .

[22]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[23]  Luca Benini,et al.  Lightweight IO virtualization on MPU enabled microcontrollers , 2018, SIGBED.

[24]  Butler W. Lampson,et al.  A note on the confinement problem , 1973, CACM.

[25]  Andrew Warfield,et al.  Xen and the art of virtualization , 2003, SOSP '03.

[26]  Peter Druschel,et al.  Transparent operating system support for superpages , 2004 .

[27]  Robert I. Davis,et al.  Mixed Criticality Systems - A Review , 2015 .