AppWatch: detecting kernel bug for protecting consumer electronics applications

Most consumer electronics products are equipped with diverse devices since they try to provide more services following the convergence trends. Device drivers for those devices are known to cause system failures. Most previous approaches to enhance reliability have been concerned with the kernel, not with applications. In consumer electronics, however, a main application plays a core role of the product. This paper proposes a new mechanism called AppWatch to keep a consumer electronics application reliable against misbehavior of device drivers. AppWatch exploits page management mechanism of the operating system to protect the address space of the application. Since AppWatch can be implemented at a low engineering cost, it is applicable to most systems only if they have the virtual memory system. AppWatch also provides selective protection of applications so that other unprotected applications are isolated from performance loss, if any. We have tested AppWatch in a consumer electronics environment. The result shows that AppWatch effectively protects application programs at a reasonable performance overhead in most workloads, whereas data-intensive workloads show high overhead. AppWatch also protects applications with little performance interference to other unprotected applications.

[1]  Jochen Liedtke,et al.  On micro-kernel construction , 1995, SOSP.

[2]  Michael M. Swift,et al.  Nooks: an architecture for reliable device drivers , 2002, EW 10.

[3]  Junfeng Yang,et al.  An empirical study of operating systems errors , 2001, SOSP.

[4]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[5]  Steven G. Johnson,et al.  The Design and Implementation of FFTW3 , 2005, Proceedings of the IEEE.

[6]  Dae-Wha Seo,et al.  Embedded Linux implementation on a commercial digital TV system , 2003, IEEE Trans. Consumer Electron..

[7]  Martín Abadi,et al.  An Overview of the Singularity Project , 2005 .

[8]  Herbert Bos,et al.  Can we make operating systems reliable and secure? , 2006, Computer.

[9]  Jim Lipkis,et al.  A New Look at Microkernel-Based UNIX Operating Systems : Lessons in Performance and Compatibility , 1991 .

[10]  Stefan Götz,et al.  Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines , 2004, OSDI.

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

[12]  Robert O. Hastings,et al.  Fast detection of memory leaks and access errors , 1991 .

[13]  Herbert Bos,et al.  MINIX 3: a highly reliable, self-repairing operating system , 2006, OPSR.

[14]  Peter M. Chen,et al.  The Rio file cache: surviving operating system crashes , 1996, ASPLOS VII.

[15]  Robbert van Renesse,et al.  Amoeba A Distributed Operating System for the 1990 s Sape , 1990 .

[16]  Krste Asanovic,et al.  Mondrian memory protection , 2002, ASPLOS X.

[17]  Robert Love,et al.  Linux Kernel Development , 2003 .

[18]  No License,et al.  Intel ® 64 and IA-32 Architectures Software Developer ’ s Manual Volume 3 A : System Programming Guide , Part 1 , 2006 .

[19]  Xiaoxin Chen,et al.  Overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems , 2008, ASPLOS.

[20]  Brian N. Bershad,et al.  Improving the reliability of commodity operating systems , 2005, TOCS.

[21]  Brian N. Bershad,et al.  Recovering device drivers , 2004, TOCS.

[22]  David R. Cheriton The V Kernel: A Software Base for Distributed Systems , 1984, IEEE Software.

[23]  Roy H. Campbell,et al.  CuriOS: Improving Reliability through Operating System Structure , 2008, OSDI.

[24]  Krste Asanovic,et al.  Mondrix: memory isolation for linux using mondriaan memory protection , 2005, SOSP '05.

[25]  Herbert Bos,et al.  Modular System Programming in MINIX 3 , 2006, login Usenix Mag..

[26]  Margo I. Seltzer,et al.  Dealing with disaster: surviving misbehaved kernel extensions , 1996, OSDI '96.

[27]  Robert Love,et al.  Linux Kernel Development (2nd Edition) (Novell Press) , 2005 .

[28]  Jack Dongarra,et al.  Special Issue on Program Generation, Optimization, and Platform Adaptation , 2005, Proc. IEEE.