Skip to content

Build TransProc

Xiaoguang Wang edited this page Mar 13, 2023 · 6 revisions

This page shows how to install all the necessary dependencies and build all components of TransProc within the environment setup.

On each node (e.g., VMs), you need to install the required package first. You can refer to the criu project page for detailed information. Here is an example of the packages needed for Ubuntu 20.04:

sudo apt install -y libprotobuf-dev libprotobuf-c-dev protobuf-c-compiler protobuf-compiler python-protobuf \
    pkg-config libnl-3-dev libnet-dev libcap-dev libbsd-dev python3-pip cmake

Build criu-3.15 and tools for inserting a breakpoint (code migration point):

❯ pwd
/home/ubuntu/TransProc
❯ make -C criu-3.15/
❯ make -C tools/

After this step, you should have CRIU/CRIT binaries generated:

❯ find . -type f \( -name criu -o -name crit \)
./criu-3.15/crit/crit
./criu-3.15/criu/criu
❯ ls tools
attach_pid  debugger  tracer ...

The code provided in this repository has the following dependencies on python3 modules: pyelftools, jsonpath-ng, pyro4, psutil ,scp, protobuf==3.20, capstone, keystone and keystone-engine. Install them as follows:

python3 -m pip install pyelftools jsonpath-ng pyro4 psutil scp protobuf==3.20 capstone keystone keystone-engine

NOTE: This project's process migration and stack-shuffling features have been tested using python 3.8. It is recommended to use the python2 interpreter only for criu dump and restore. The Makefiles provided within the test directory can be used as a reference to decide on the python interpreter versions.