Hi Oak,
You're correct that capDL is not specific to CAmkES. The human-readable spec isn't XML, but a capDL-specific language.
CapDL consists of 2 parts:
- the capDL translator takes human-readable spec describing a seL4 system, and converts it into a c file
- the capDL loader is a program that is intended to run on seL4 in the root thread (the first userlevel thread with access to all resources). It creates kernel objects and distributes caps according to the spec. It gets statically linked against the c file
produced by the translator, which is how it has access to the spec.
CAmkES generates a human-readable capDL spec. Using CAmkES, in our build system, after the build is complete, the capDL spec for an app named "example" will be located at "build/x86/pc99/example/example.cdl" (assuming the build targets x86). The c code generated
from that spec will be located at "build/x86/pc99/capdl-loader-experimental/src/capdl_spec.c".
CapDL is not specific to CAmkES, in that it's possible to use capDL without CAmkES. In practice however, applications that run on seL4 without CAmkES tend not to use capDL.
The source for the capDL translator (capDL-tool) and loader (capdl-loader-app) can be found here: https://github.com/seL4/capDL
Can you clarify what you mean by "regular seL4".
Hope this helps!
Cheers,
Stephen