The virtual file table also checks if a file is both read and written by an application, and will warn if one is, as this can cause inconsistencies across a restart. +There is also a libzsyscall.a which is directly analogous to libsyscall.a, except it performs compression of the checkpoints as they are read/written. + {subsection: Checkpointing} One of the things in libsyscall is a replacement for crt0.o, which has a special main() function. This function configures the signal handlers for SIGTSTP and SIGUSR2 (which checkpoint & stop, or checkpoint & resume). It also determines if it's a restart or not. Because we're overriding main(), global constructors can be called multiple times per run, but that's probably not important.