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.
Reports/Publications
-
Francis M. David and Roy H. Campbell,
Recovering from Operating System Errors,
Technical Report UIUCDCS-R-2007-2831,
Department of Computer Science, University of Illinois at Urbana-Champaign, 2006
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.
Reports/Publications
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.
Reports/Publications
-
Francis M. David and Jeffrey C. Carlyle and Ellick M. Chan and Roy H. Campbell,
Porting Choices to ARM based platforms,
Technical Report UIUCDCS-R-2007-2830,
Department of Computer Science, University of Illinois at Urbana-Champaign, 2006
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.
Reports/Publications
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.
Reports/Publications
-
Adam Boot and Weihang Jiang and Manlap Li and Rodolfo Pellizzoni and Enzhou Wang,
An Extensible Choices System Interface,
CS523 Course Project Report,
Department of Computer Science, University of Illinois at Urbana-Champaign, 2006
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.
Reports/Publications
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.
Reports/Publications
-
Rishi Bhardwaj and Phillip Reames and Russell Greenspan and Vijay Srinivas Nori and Ercan Ucan,
A Choices Hypervisor on the ARM architecture,
CS523 Course Project Report,
Department of Computer Science, University of Illinois at Urbana-Champaign, 2006