Changes

Line 53: Line 53:     
|-
 
|-
| Need in modified kernel
+
| Uses standard kernel?
| No, provided it's 3.11 and above
+
| {{Yes}}, provided it's 3.11 or later
| No
+
| {{Yes}}
| No, just need to load module. May be problems with installation on new kernels
+
| {{Yes}}, just needs to load module
| Yes
+
| {{No}}. OpenVZ kernel is required
    
|-
 
|-
| App need to pre-load special libraries
+
| Can be used without preloading special libraries before app start?
| No
+
| {{Yes}}
| Yes
+
| {{No}}
| Yes
+
| {{No}}
| No
+
| {{Yes}}
    
|-
 
|-
| Requires root privileges
+
| Can be used as non-root user?
| No, but user can only manipulate tasks belonging to him
+
| {{Yes}}, but user can only manipulate tasks belonging to him
| No
+
| {{Yes}}
| No
+
| {{Yes}}
| Yes
+
| {{No}}
    
|-
 
|-
| Need to modify programs to C/R
+
| Can run unmodified programs?
| No
+
| {{Yes}}
| No
+
| {{Yes}}
| Yes. There are some difficulties with statically linked applications, and with LinuxThreads (it does not support them at all)
+
| {{No}}. Statically linked and/or threaded apps are unsupported.
| No
+
| {{Yes}}
 
      
|-
 
|-
| Need to prepare tasks
+
| Can run unprepared tasks?
| No
+
| {{Yes}}
| Yes. It preloads the DMTCP library. That library runs before the routine main(). It creates a second thread. The checkpoint thread then creates a socket to the DMTCP coordinator and registers itself. The checkpoint thread also creates a signal handler.
+
| {{No}}. It preloads the DMTCP library. That library runs before the routine main(). It creates a second thread. The checkpoint thread then creates a socket to the DMTCP coordinator and registers itself. The checkpoint thread also creates a signal handler.
| Yes. CR shall notify processes when a checkpoint is to occur (before the kernel takes a checkpoint) to allow the processes to prepare itself accordingly.
+
| {{No}}. CR shall notify processes when a checkpoint is to occur (before the kernel takes a checkpoint) to allow the processes to prepare itself accordingly.
| No
+
| {{Yes}}
 
      
|-
 
|-
| Does it change behavior of the c/r-ed programs?
+
| Retains behavior of the c/r-ed programs?
| No
+
| {{Yes}}
| Yes, because of wrappers on system calls
+
| {{No}}, because of wrappers on system calls
| Yes, because of wrappers on system calls
+
| {{No}}, because of wrappers on system calls
| No
+
| {{Yes}}
    
|-
 
|-
 
| Live migration
 
| Live migration
| Yes, even if kernel, libs, etc are newer. Can use Memory Changes Tracking to decrease freeze time
+
| {{Yes}}, even if kernel, libs, etc are newer. Can use Memory Changes Tracking to decrease freeze time
| Yes, if both kernels are recent
+
| {{Yes}}, if both kernels are recent
| Yes, but if all components are the same. Even if prelinked addresses are different,it will not restore, but it can save the whole used libs and localization files to restore program on the different machine
+
| {{Yes}}, but if all components are the same. Even if prelinked addresses are different, it will not restore, but it can save the whole used libs and localization files to restore program on the different machine
| Yes
+
| {{Yes}}
    
|-
 
|-
 
| Containers
 
| Containers
| Yes, LXC and OpenVZ containers
+
| {{Yes}}, LXC and OpenVZ containers
| No. It doesn't support namespaces, so it probably can’t dump containers  
+
| {{No}}. It doesn't support namespaces, so it probably can’t dump containers  
| Looks like no
+
| {{No|Looks like no}}
| Yes
+
| {{Yes}}
    
|-
 
|-