Hi Sebastian,
when the kernel initialises, it creates a number of standard predefined capabilities and hands them to the initial thread (root task), including capabilities to the device regions in the machine, and Untyped capabilities to free memory. The initial task can then use these to set up the rest of the system (creating threads, page tables, IPC endpoints, loading executables, etc).
There is a separate tool (capDL-loader) that takes a static description of the capability distribution the initial thread should achieve and produces an initial thread for you that sets up the system accordingly. There is no requirement to use this tool, but it has been quite handy for us so far.
IPC is managed by kernel calls (Wait, Send, Call, Reply) that have an endpoint capability as argument.
Cheers,
Gerwin
On 16.02.2015, at 17:54, Sebastian Lau