Developer Guide

  • 10/27/2020
  • Public Content

KDI Sample

This sample is a simple Linux host application that uses KDI (Kernel DAL Interface), an Intel® Dynamic Application Loader (Intel® DAL) Linux kernel module. (Supported on platforms running API level 8 and above.)
You will be able to run the sample once a Linux kernel has been released containing KDI and Intel® Dynamic Application Loader (Intel® DAL) Test module.
 In the first release of the SDK, this sample is not included in the installer. It is located on the Intel DAL download page, under
Related downloads
. To access the download page, click the
button on the Intel DAL home page.
The sample loads a trusted application into the Intel DAL virtual machine (VM), using the Intel® DAL Host Interface Service (JHI), and uses KDI to communicate with the trusted application.
KDI is usually used by Linux modules in kernel space. This sample is run over user space to simplify its operation.
A typical use case is to create a kernel module to communicate with KDI.
The sample uses the Intel DAL test Linux module , which is compiled under the kernel configuration
, to call the KDI APIs inside the kernel space. For details, refer to the test module code for kernel developer use.


  • Bist
    applet (simple echo applet)
  • Intel DAL host application

Sample Flow

The sample does the following:
  1. Installs a trusted application. (See the java code in
    . The application uses the compiled and signed trusted application.) The installation is performed from the user space, using
  2. Uses KDI to open a session to the trusted application. The command is sent to KDI via the Intel DAL test module.
  3. Uses the trusted application's
    function to send a command and receive data, using KDI via the Intel DAL test module.
  4. Uses KDI to close the session.
  5. Uses the Intel® DAL Host Interface Service (JHI) to uninstall the trusted application.

Running the Sample

To run the sample, do the following:
  1. Install
  2. Run the following inside the sample directory:
cmake . make
       This will create an executable file:
     3. Run the executable:

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at