Systems Research Group
Department of Computer Science
University of Illinois at Urbana-Champaign
  > Current
  > Future

Auth. Reqd

Choices: A Reliable and Secure Operating System for Mobile Devices
Mobile devices are playing increasingly important roles in the daily lives of people. The reliability and security requirements of these devices are extremely high as they are expected to manage significant amounts of personal information in the near future. Choices is an object oriented operating system that runs on mobile devices and presents a platform for implementing techniques for reliability like component isolation, automatic restarts and micro-rebooting. Exceptions that arise in the processor are converted to language exceptions and provide a clean and simple model of error handling. Generic recovery techniques are built around the exception framework and provide improved reliability. Component isolation ensures that downloaded code on the mobile device is sandboxed and cannot compromise the security of the rest of the system.

Watchdog Recovery
We are working on extensions to Choices and Linux that allow them to use a watchdog timer to recover from kernel lockup errors.

Choices ARM Port
A port of Choices to the ARM processor runs on Texas Instruments OMAP1610 H2 hardware development kit. Choices makes use of the processor virtual memory, caches and high-interrupt vectors. Choices also includes support for peripherals like serial I/O, timers and watchdog. Most of the current Choices projects are based on the ARM port of Choices. We are investigating reliability, security and adaptation for mobile devices.

Exception Handling
Processor exceptions are mapped to language exceptions and allow kernel developers to catch and handle these error conditions locally within components. Unlike Linux and Windows, which currently only provide system-level mechanisms to handle such errors (Kernel Panic/Blue Screen), Choices uses exceptions to provide both local and system-level support for recovery.

System Interface Redesign
Choices is getting a huge makeover in the form of a redesigned interface from applications to the operating system. The new interface allows for synchronous notification of error conditions using language exception objects. It is also designed for supporting parallel threads of execution using a model that aims to be simple compared to POSIX.

Component Isolation using Virtual Memory
Isolating components within Choices helps improve reliability because a faulty component cannot corrupt data that belongs to the rest of the kernel.

ARM Virtualization
A modified QEMU is being used to simulate hardware extensions to the ARM processor similar to Intel's VMX. A version of Choices uses these extensions and acts like a hypervisor in order to provide pure virtualization support for unmodified guest operating systems.