CheckPoint and Restore in Userspace (CRIU) is a toolkit designed to preserve and restore processes in the user space. This project allows users to maintain the condition of one or a group of processes, and then resume work with a saved position, even after rebooting the system or on another server without disrupting already established network connections. CRIU is written in SI and is used in container control systems such as OpenVZ, LXC/LXD, and Docker. The necessary changes for CRIU to work are included in the main composition of the Linux kernel.
The applications of CRIU technology include ensuring the reloading of the operating system without interrupting the continuity of long-term processes, live-migration of isolated containers, accelerating the launch of slow processes, conducting kernel updates without restarting services, periodic preservation of the state of long-running computing tasks for resuming work in case of a crash, load balancing on nodes in clusters, process duplication to another machine, creating user application snapshots for analysis on another system, and canceling further actions in the program.
In the new issue, the following updates have been made:
- Added CUDA plugin, which provides the possibility of preserving and restoring applications based on NVIDIA CUDA technology.
- Added support for the Shadow Stack mechanism, supported by the Linux 6.6 kernel, which allows blocking the work of many exploits using the hardware capabilities of Intel processors.
- Added support for the osctl command pagemap_scan to obtain information about the contents of memory pages, which is used with userfaultfd() to determine the recording facts in a specific memory area.
- Implemented the possibility of restoring the flow in the correct Cgroup v1.