Trustworthy Systems

CAmkES: A component model for secure microkernel-based embedded systems


Ihor Kuz, Yan Liu, Ian Gorton and Gernot Heiser

NICTA, Sydney, Australia
UNSW, Australia



Component-based software engineering promises to provide structure and reusability to embedded-systems software. At the same time, microkernel-based operating systems are being used to increase the reliability and trustworthiness of embedded systems. Since the microkernel approach to designing systems is partially based on the componentisation of system services, component-based software engineering is a particularly attractive approach to developing microkernel-based systems. While a number of widely used component architectures already exist, they are generally targeted at enterprise computing rather than embedded systems. Due to the unique characteristics of embedded systems, a component architecture for embedded systems must have low overhead, be able to address relevant non-functional issues, and be flexible to accommodate application specific requirements. In this paper we introduce a component architecture aimed at the development of microkernel-based embedded systems. The key characteristics of the architecture are that it has a minimal, low-overhead, core but is highly modular and therefore flexible and extensible. We have implemented a prototype of this architecture and confirm that it has very low overhead and is suitable for implementing both system-level and application level services.

BibTeX Entry

    month            = may,
    journal          = {Journal of Systems and Software Special Edition on Component-Based Software Engineering of
                        Trustworthy Embedded Systems},
    volume           = {80},
    number           = {5},
    doi              = {10.1016/j.jss.2006.08.039},
    author           = {Ihor Kuz and Yan Liu and Ian Gorton and Gernot Heiser},
    title            = {{CAmkES}: A component model for secure microkernel-based embedded systems},
    year             = {2007},
    abstractlink     = {/publications/papers/Kuz_LGH_07.abstract.pml},
    pages            = {687--699}