VMS uses the console boot device drivers (the typical VMS hardware console program is well past what BIOS offers, and closer to EFI) to write (optionally compressed, optionally pruned) system crashdump images containing the running system memory out to a pre-allocated hunk of disk storage.
Use of the console callbacks avoids issues with potential errors or corruptions within the running system device drivers, while keeping the exception handler footprint small, and also delegating device dependencies over to the console drivers.
The last barrage of hardware errors in the system error log buffer (if any) are specifically and separately captured into a file, too. This ensures that the error-logging tools can easily capture and log errors that arose in the run-up to the crash, and without having to know the details of the virtual memory structures within the crashdump.
Windows does something similar, but it uses the swap file as temporary storage for the crash dump. On next boot, the system checks the swap file for crash dump signatures. If it finds a crash signature, it creates a minidump out of it and stores the dump in %SYSTEMROOT%\Minidumps. It also optionally prompts the user to upload the dump to it's automated analysis servers. I think it stores a bigger dump in %SYSTEMROOT%\memory.dmp too depending on how the machine is configured.
oh my, this is useful. Linux has lagged on crash dumps for many years; lacking a standardized way of dealing with dumps. For years, *BSD has had a much better and standard (though still imperfect) way of dealing with crash dumps.
This idea is not new. Macs have had such a device for ages. Among other things, it stores the speaker volume setting (ever notice Macs don't make the boot sound at startup if the volume has been muted?) as well as kernel panic info, which is subsequently relayed to Apple.
Use of the console callbacks avoids issues with potential errors or corruptions within the running system device drivers, while keeping the exception handler footprint small, and also delegating device dependencies over to the console drivers.
The last barrage of hardware errors in the system error log buffer (if any) are specifically and separately captured into a file, too. This ensures that the error-logging tools can easily capture and log errors that arose in the run-up to the crash, and without having to know the details of the virtual memory structures within the crashdump.