Building a Self-Healing Embedded System in a Multi-OS Environment
Paper in proceeding, 2009
In this paper we describe our approach to improve dependability of a commodity OS for embedded systems. Usually it is too difficult for end-users to resolve the problem inside a single OS, especially for embedded systems. We propose a self-healing mechanism for Linux kernel to improve the system dependability without any operations by administrators. This paper presents our white box approach for monitoring and recovering Linux kernel. Key components
are a system monitor and a virtual machine monitor. The
system monitor is used to detect the inconsistency of data
structures inside Linux kernel. The virtual machine monitor
provides a multi-OS environment and it isolates the system
monitor from Linux kernel. In a multi-OS environment, the
system monitor is able to resolve failures inside Linux kernel without stopping crucial services running on another OS. We have developed a prototype for an embedded system to
verify our approach. The experiment results show that our
system can remove hidden processes and reload buggy kernel
modules. The performance evaluation results show that our
self-healing mechanism can be used even when Linux kernel
is heavily-loaded and the overhead of the system monitor is
vanishingly small in actual use.
multi-OS environment
Self-healing
monitoring