Fundamental Concepts

Multi-Sandboxing is based on the Kernel & Features Specification (KF).

It allows an application code to be split into multiple parts:

  • the main application, called the Kernel,

  • zero or more applications called Features.

Therefore, a Kernel Application relates to the Kernel concept and a Sandboxed Application relates to the Feature concept.

Some fundamental points:

  • The Kernel is mandatory. It is assumed to be reliable, trusted, and immutable.

  • A Feature is an application “extension” managed by the Kernel.

  • A Feature is fully controlled by the Kernel: it can be installed, started, stopped and uninstalled at any time independent of the system state (particularly, a Feature never depends on another Feature to be stopped).

  • A Feature is optional, potentially untrusted, and possibly unreliable, yet it can be executed without jeopardizing the safety of the Kernel or other Features.

  • Resource access (RAM, hardware peripherals, CPU time, …) are under control of the Kernel.

Note

For more details, refer to the Kernel & Features Specification (KF).

Classpath Processing

The MicroEJ Classpath of a Sandboxed Application is composed of both Application classpath and Kernel classpath entries. According to Class Spaces specification, a type exposed as Kernel API takes precedence over types loaded from classpath. A classpath entry is considered a Kernel classpath entry if it contains at least one type exposed as Kernel API. All other classpath entries are considered Application classpath entries.

Only *.[extension].list files declared in Kernel classpath entry are processed.