+/** Execute some code in kernel context on behalf of the user code.
+ *
+ * Every modification of the environment must be protected this way: every setter, constructor and similar.
+ * Getters don't have to be protected this way.
+ *
+ * This allows deterministic parallel simulation without any locking, even if almost nobody uses parallel simulation in
+ * SimGrid. More interestingly it makes every modification of the simulated world observable by the model-checker,
+ * allowing the whole MC business.
+ *
+ * It is highly inspired from the syscalls in a regular operating system, allowing the user code to get some specific
+ * code executed in the kernel context. But here, there is almost no security involved. Parameters get checked for
+ * finitness but that's all. The main goal remain to ensure reproductible ordering of uncomparable events (in [parallel]
+ * simulation) and observability of events (in model-checking).