1. A computer-implemented method, comprising: recording a processor context for each thread of a program in a partial checkpoint; recording results of system calls made by the program in the partial checkpoint; and recording memory pages accessed by the program in the partial checkpoint, wherein the computer-implemented method further comprises: creating a shadow process for each program process being executed; in response to an accessed memory page being modified by a program process, recording an original copy of the modified memory page obtained from the shadow process in the partial checkpoint; and replaying a program execution in a different operating system using the partial checkpoint.