A write filter is used to handle write operations by an operating system of a
computing
device that has a main storage medium in which the operating system image is stored.
The write filter is placed in the operating system to intercept write commands
for writing state data into the main storage medium and to write the state data
onto a non-volatile auxiliary storage medium to prevent the state data from being
lost when the device is shut down. The write filter creates checkpoints (or watermarks)
for the state data in the non-volatile memory to protect them from being written
over and to allow the system to roll back to a previous state. The write filter
also enables the operating system image in a writable main storage medium of the
computing device to be replaced with a new operating system image while the operating
system is still running through by gradually copying the new image into the main
storage while moving the old image into a look-aside buffer in the RAM.