The Project

The Popcorn Linux project is exploring how to improve the programmability of emerging heterogeneous hardware, in particular, those with Instruction Set Architecture (ISA)-diverse cores, from node-scale (e.g., Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGAs) to rack-scale (e.g., Scale-out processors, Firebox, The Machine), in both native and virtualized settings.  Additionally, the project is exploring how to automatically compile/synthesize/execute code on ISA-heterogeneous hardware.

 

 

The project is exploring a replicated-kernel OS model for the Linux operating system. In this model, multiple Linux kernel instances running on multiple nodes collaborate each other to provide applications with a single-image operating system over the nodes. The kernels transparently provide a consistent memory view across the machine boundary, so threads in a process can be spread across the nodes without an explicit declaration of memory regions to share nor accessing through a custom memory APIs. The nodes are connected through a modern low-latency interconnect, and each of them might be based on different ISA and/or hardware configuration. In this way, Popcorn Linux utilizes the ISA-affinity in applications and scale out the system performance beyond a single system performance while retaining full POSIX compatibility.

Popcorn Linux uses an LLVM-based customized compiler that translates C/C++ applications into machine code suitable for execution and runtime migration across multiple instruction set architectures.  The compiler generates machine code for each target ISA on which Popcorn Linux runs and instruments the code with migration points.  The linker aligns global data, code and thread-local storage to be available at identical locations across all ISAs.  A run-time system translates a program's execution state (e.g., runtime stack and registers) at migration time between ISA-specific formats based on metadata generated by the compiler. 

The native version of Popcorn Linux targets execution and runtime migration of native application across multiple ISA. Concerning the ongoing virtualization effort, Popcorn Xen, it focuses on Unikernels: minimal small sized-guests where a single application is statically compiled with a small OS layer in a LibOS fashion.

News

  • September 11th, 2017: We will be at the 2017 Linux Plumbers Conference to present Popcorn Linux. Read our presentation here. Go Popcorn Linux!
  • July 13th, 2017: Dr. Changwoo Min, who joins SSRG and the ECE Department as an Assistant Professor, becomes a Popcorn-er.  Welcome Dr. Min!
  • July 11th, 2017: The Naval Science & Technology Future Force Magazine's July 2017 issue features Popcorn Linux on the cover.  Go Popcorn-ers!
  • June 23, 2017: We will be at the ARM Research Summit 2017!  Read our abstract here and our poster here.
  • June 20, 2017: Popcorn-er, Rob Lyerly, has won the ACM SRC 2017 competition, co-located with PLDI 2017.  Rob's award-winning abstract is here.  Congratulations Rob!
  • April 26, 2017: Our Popcorn student Rob Lyerly has been selected for the ACM SRC 2017 competition, co-located with PLDI 2017. He will be presenting his abstract at the conference -- good luck Rob!
  • April 19, 2017: We will be presenting our ASPLOS 2017 paper as a Highlight Paper at ACM SYSTOR 2017!
  • March 29, 2017: We will be at HotOS 2017 in Whistler!  Read the paper we'll present here!
  • November 11, 2016: The sources for the ARM/x86 version of Popcorn Linux and the Popcorn compiler toolchain are available here!
  • November 10, 2016: We will be at ASPLOS XXII in Xi'an China!  Read the paper we'll present here!
  • March 15, 2016: We will be at EuroSys/MaRS 2016 and Eurosys/CloudDP 2016 in London! Read the papers we will present here and here.
  • November 19, 2015: Our SOSP/HotPower 2015 paper has been selected as one of the Best Papers for publication in ACM Operating Systems Review (OSR), December 2015 issue.
  • September 24, 2015: We will be at SOSP/HotPower 2015 in Monterey! Read the paper we will present here. Come to see our ARM+x86 demo! Photo.
  • April 16, 2015: We released Popcorn Linux and Compiler Framework for Xeon+Xeon Phi! Download it here.
  • April 10, 2015: We will be at Eurosys 2015 in France! Read the paper we will present here.
  • January 19, 2015: Saif Ansary's paper accepted at 2015 ASPLOS SRC ACM Competition here.
  • October 1, 2014: We released Popcorn Linux YOCTO! Download it here.
  • July 1, 2014: We will be at OLS 2014 in Ottawa! Read the paper we will present here.
  • March 28, 2014: We will be at EuroSys/SFMA 2014 in Amsterdam! Read the paper we will present here.
  • March 15, 2014: Popcorn code is open-source and now hosted on Sourceforge! popcornlinux.sourceforge.net

Credits

Popcorn Linux is an open-source project of the Systems Software Research Group at Virginia Tech.

 

This work is supported in part by ONR under grants N00014-13-1-0317, N00014-16-1-2104, and N00014-16-1-2711, AFOSR under grants FA9550-14-1-0163 and FA9550-16-1-0371, and NAVSEA/NEEC under grants 3003279297 and N00174-16-C-0018. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of ONR, AFOSR, and NAVSEA.