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


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804