Download (ARM/x86)

The Popcorn Linux kernel is distributed under the GNU GENERAL PUBLIC LICENSE.

The Popcorn Linux compiler toolchain is also distributed under the GNU GENERAL PUBLIC LICENSE, except for the following components:


  • Popcorn Linux has been prototyped on a setup containing an Intel Core-i7 4790K/Xeon E5-1650v2 paired with an APM X-Gene 1 (X-C1 development board) using Dolphin PXH810/IXH610 adapters. We are currently investigating expanding support to other processors and platforms.
  • The release is our ASPLOS 2017 version and the code is released as-is.

Getting Started

There are two repositories for Popcorn Linux on ARM/x86 -- one for the kernel and one for the compiler, which includes the state transformation runtime.

Getting and installing Popcorn Linux

  1. Clone the repository on both the ARM and x86 machines:

    $ git clone
    $ cd mklinux && git checkout arm-x86

  2. Run the "" installation script which will detect the architecture and perform the appropriate kernel build and installation
  3. Reboot into Popcorn Linux and run the installation scripts provided by Dolphin to install the drivers for the PXH810/IXH610 adapters
  4. Follow the README in "mklinux/msg_layer" to build the Popcorn messaging layer
  5. Insert the messaging layer modules into the kernel on both machines using insmod (NOTE: the ARM messaging layer kernel module must be inserted before the x86 messaging layer kernel module!):

    $ insmod msg_layer.ko

    Note that this step must be repeated every time the machine is rebooted.  It generally helps to wait a few seconds between inserting the module on ARM and then on x86.

Getting and installing the compiler toolchain

  • Clone the compiler repository:

    $ git clone This email address is being protected from spambots. You need JavaScript enabled to view it. :ssrg-vt/mklinux-compiler.git

  • Run the "" script to build and install the toolchain
  • See README, INSTALL, APPLICATIONS, ISSUES for more information on how to build, run & migrate applications