In the academic project named Otherworld [7] developed
for the Linux-x86 platform, the authors propose to replace
the entire kernel with the repair-kernel instead of rebooting
separate subsystems. They achieve this by having a hidden
crash kernel that takes control once the main kernel crashes.
The crash kernel performs the needed recovery procedures
and the original kernel is discarded. Otherworld’s approach
is different from ALDR’s approach, as Otherworld tries
to revive individual processes one at a time while ALDR
revives the whole OS instance. Otherworld also requires
some applications to register a crash procedure that will be
invoked by the crash kernel for recovery. In addition, they
do not have any support from the hypervisor, which limits
the applicability of their approach. ALDR does not require
the applications to register for anything, nor does it require
changes to the applications.