criu

DMTCP vs. CRIU

This article explains the fundamental differences between CRIU and DMTCP (Distributed MultiThreaded Checkpointing), focusing on their architectural approaches to process capture and restoration.

Architectural Approach

DMTCP: Library-Level Interception

DMTCP implements checkpoint/restore at the userspace library level. To use it, an application must be launched with the DMTCP library dynamically linked (LD_PRELOAD).

CRIU: Kernel-Level Integration

CRIU, by contrast, operates primarily from outside the process using standard kernel interfaces (extended where necessary for C/R).

PID Handling and Virtualization

Restoring a process tree often requires restoring specific Process IDs (PIDs).

Summary

DMTCP is often easier to deploy on older kernels since it doesn’t require specific kernel support, but it suffers from the inherent limitations and risks of userspace interception. CRIU is the more robust and transparent solution for modern Linux systems, offering faithful restoration of the entire process environment.