The CAmkES platform provides a solution for quickly and reliably building complex microkernel-based embedded systems software.
Motivation: CAmkES is a platform that abstracts the low-level mechanisms of a microkernel, providing communication primitives and support for decomposition of a system into functional units. 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 combination of a proven kernel and hardware protection, resulting systems have the potential to be highly reliable and secure.
The design of such a modular system becomes increasingly complicated as the number of services and degrees of interconnection grow. In addition to the platform itself, CAmkES provides a model and tools that reduce this complexity and make the design and implementation of large microkernel-based systems feasible.
Approach: Using a component-based software development approach to building microkernel-based embedded systems software, the system is modelled as a set of interacting software components. These software components have explicit interaction interfaces, and a system design details the connections between components. Furthermore, the components are designed in such a way as to be reusable in different systems and not to rely on the implementation specifics of the connection mechanisms. This enables more rapid development, portability and more manageable systems.
Challenges: 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.
The CAmkES platform for seL4 has been released as open source (under a BSD license). It is available as part of the seL4 open source release and is hosted on GitHub.
Current areas of active CAmkES research include:
Further information about the design, implementation, and use of CAmkES can be found on the following pages:
Past
|
![]() |
![]() |
Gernot Heiser, Gerwin Klein and June Andronick seL4 in Australia: From research to real-world trustworthy systems Communications of the ACM, Volume 63, Issue 4, pp. 72-75, April, 2020 |
![]() |
![]() |
Gerwin Klein, June Andronick, Ihor Kuz, Toby Murray, Gernot Heiser and Matthew Fernandez Formally verified software in the real world Communications of the ACM, Volume 61, Issue 10, pp. 68-77, October, 2018 |
![]() |
![]() |
Matthew Fernandez Formal verification of a component platform PhD Thesis, School of Computer Science and Engineering, UNSW, Sydney, Australia, Sydney, Australia, July, 2016 |
![]() |
![]() |
Matthew Fernandez, Peter Gammie, June Andronick, Gerwin Klein and Ihor Kuz CAmkES glue code semantics Technical Report, NICTA and UNSW, November, 2013 |
![]() ![]() |
![]() |
Matthew Fernandez, Ihor Kuz, Gerwin Klein and June Andronick Towards a verified component platform Workshop on Programming Languages and Operating Systems (PLOS), pp. 1–7, Farmington, PA, USA, November, 2013 |
![]() |
![]() |
Matthew Fernandez, Gerwin Klein, Ihor Kuz and Toby Murray CAmkES formalisation of a component platform Technical Report, NICTA and UNSW, November, 2013 |
![]() |
![]() |
Matthew Fernandez, Ihor Kuz and Gerwin Klein Formalisation of a component platform Poster presented at Operating Systems Design and Implementation 2012, October, 2012 |
![]() |
![]() |
Nicholas FitzRoy-Dale Architecture optimisation PhD Thesis, UNSW, Sydney, Australia, March, 2011 |
![]() |
![]() |
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, Volume 41, Number 4, pp. 3–11, December, 2007 |
![]() |
![]() |
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, Volume 80, Number 5, pp. 687–699, May, 2007 Preprint |
![]() |
![]() |
Nicholas FitzRoy-Dale A declarative approach to extensible interface compilation International Workshop on Microkernels for Embedded Systems, Sydney, Australia, January, 2007 |