CAmkES

CAmkES (component architecture for microkernel-based embedded systems) is a software development and runtime framework for quickly and reliably building microkernel-based multiserver (operating) systems. It follows a component-based software engineering approach to software design, resulting in a system that is modelled as a set of interacting software components. These software components have explicit interaction interfaces and a system design that explicitly details the connections between the components.

The development framework provides:

  • a language to describe component interfaces, components, and whole component-based systems
  • a tool that processes these descriptions to combine programmer-provided component code with generated scaffolding and glue code to build a complete, bootable, system image
  • full integration in the seL4 environment and build system

Get Camkes

mkdir camkes-project
cd camkes-project
repo init -u https://github.com/seL4/camkes-manifest.git
repo sync

Build and run simple application

The following will configure, build, and run a simple example CAmkES system:

cd camkes-project
mkdir build
cd build
../init-build.sh -DPLATFORM=sabre -DAARCH32=1 -DCAMKES_APP=adder -DSIMULATION=1
ninja
./simulate

Read Tutorial

To learn about developing your own CAmkES application, read the Tutorials#CAmkES_tutorials.

Camkes Terminology/Glossary

Can be found here.

CAmkES VM

Information about the x86 camkes vm can be found here.

Visual CAmkES

CAmkES comes with a tool for visualising the components and connections making up an application. For more info, see here.

Changes in CAmkES 3

The current version of CAmkES introduces a number of syntactic and functional changes. For details about what’s changed, see here.

Internals

Here’s some information about the internals of the CAmkES tool: CAmkESInternals

Command Line Interface

There is an experimental command line interface for managing CAmkES projects. Read more: CAmkESCLI