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
- Make sure that you already have the tools to build seL4 and Camkes.
- Download 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