The University of New South Wales

CAmkES: Component Architecture for microkernel-based Embedded Systems

Composing Embedded Systems Software

The CAmkES project provides a solution for quickly and reliably building complex microkernel-based embedded systems software.


CAmkES is part of NICTA's Embedded, Real-Time and Operating Systems (ERTOS) group, whose research focuses on improving the reliability and trustworthiness of embedded systems software.

The group provides a platform, based on a formally verified, secure microkernel, upon which to build reliable embedded systems software. With this platform as a base, embedded systems software is designed as a set of protected and separated services that communicate with each other through highly efficient and secure interprocess communication mechanisms. Given that services are protected from each other by a combintation of a proven kernel and hardware protection, resulting systems have the potential to be highly reliable and secure.

However, the design of such a modular system becomes increasingly difficult as the number of services and the complexity of their interconnection grows. The CAmkES project provides a model and tools that reduce this complexity and makes the design and implementation of complex microkernel-based systems feasible.


We adopt a component-based software development approach to building microkernel-based embedded systems software. In this approach a system is modelled as a set of interacting software components. These software components have explicit interaction interfaces, and a system design explicitly details the connections between components. Furthermore, the components are designed in such a way as to be reusable in different systems, thus enabling the rapid development of embedded systems software from reusable software components


Component-based development shifts the development emphasis from programming software to composing software systems. It brings with it obvious benefits for embedded systems such as reusability, maintainability, and a reduction of software complexity which leads to improved productivity. However, applying component-based development in the embedded domain also introduces several new concepts and challenges.

  • Must work in resource-constrained environments.
  • Must fulfill the real-time requirements of embedded systems.
  • Should provide flexibility for component design and implementation. For example, it should allow components to be parameterised and configured, it should allow various ways of connecting componnets, and it should allow components to make as few assumptions as possible about their environment.
  • Should support a variety of computational models (or architectural styles), including event-based models, dataflow models, etc.


CAmkES is a joint project between the Empirical Software Engineering (ESE) and Embedded, Real-Time and Operating Systems (ERTOS) groups in NICTA. The official project page can be found here. While the official CAmkES project has ended, research based on CAmkES and componentised systems within ERTOS continues under the CAmkES banner.

The CAmkES technology has been licensed to Open Kernel Labs for integration into their products.

The CAmkES framework for OKL4 has been released as open source. Please see our software pages for more information and to download it.

Further Documentation

Further information about the design and implementation of CAmkES can be found on the following pages:



plain text PDF Nicholas FitzRoy-Dale
Architecture optimisation, PhD Thesis, School of Computer Science and Engineering, Sydney, Australia, 2011
plain text PDF Nicholas FitzRoy-Dale and Ihor Kuz
Towards automatic performance optimisation of componentised systems
2nd Workshop on Isolation and Integration in Embedded Systems, Nuremberg, Germany, April, 2009
plain text PDF Gernot Heiser, Kevin Elphinstone, Ihor Kuz, Gerwin Klein and Stefan M. Petters
Towards trustworthy computing systems: Taking microkernels to the next level
ACM Operating Systems Review, 41(4), 3–11, (July, 2007)
plain text PDF Ihor Kuz and Yan Liu
Extending the capabilities of component models for embedded systems
Proceedings of the Third International Conference on the Quality of Software-Architectures (QoSA), Boston, MA, USA, July, 2007
plain text link Ihor Kuz, Yan Liu, Ian Gorton and Gernot Heiser
CAmkES: A component model for secure microkernel-based embedded systems
Journal of Systems and Software Special Edition on Component-Based Software Engineering of Trustworthy Embedded Systems, 80(5), 687–699, (May, 2007)
plain text PDF Nicholas FitzRoy-Dale
A declarative approach to extensible interface compilation
Proceedings of the 1st International Workshop on Microkernels for Embedded Systems (MIKES), Sydney, Australia, January, 2007


For more information about the project please contact Ihor (ihor.kuz at