An interesting new tool for PC drops users into a Linux shell if Windows crashes. The BugCheck2Linux tool from NSG650, recently highlighted by NTDEV on Twitter, makes use of the bug check callback function in Windows to run an executable - even after a BSOD (Blue Screen of Death) crash. So, "Death" isn't the end in this case, it is just where Linux begins.
It isn't common knowledge that programs can run after a Windows BSOD, but BugCheck2Linux stretches the current possibilities of running executables via the 'bug check callback function' to fire up a completely different OS. You can read about the intended use of the bug check callback routine on the Microsoft Learn documentation site.
BugCheck2Linux runs as a driver, which in turn "runs a tiny RISC V emulator running Linux." NSG650 says that the screen output uses bootvid.dll, and the input relies upon polling of a PS/2 keyboard driver. The developer credits the ReactOS Project for bootvid documentation, mini-rv32ima for the RISC V emulator and Linux image, and OSdev Wiki for PS/2 documentation.
There are some pretty severe limits on the Linux install that can run after the Windows BSOD. For example, the display output is limited to 640 x 480 pixels and 16 colors, the system will only work on BIOS-based (not UEFI) systems, it runs slowly, and keyboard support has limits such as not allowing users to backspace. In other words, this BSOD tool isn't dropping you into a modern Ubuntu install.
On it's own, it is impressive to be able to continue to use the computer after a BSOD, but the future potential beyond a tiny limited Linux OS is what catches the imagination here. NTDEV raises the possibility of having a Windows PC crash into BSOD and then instantly firing up Doom to let off some post-crash steam. Perhaps it would be a more modest step to try and post-BSOD run a classic arcade title like Asteroids or Galaxian.
If you want to try out this tool, the GitHub page where it is found provides a step-by-step guide. Basically, you must download and start the tool's driver process, so it can be ready to run if you BSOD.
In NTDEV's video above, you can see the Tiny11 developer making his Windows 11 install crash by executing winini (as Administrator) in PowerShell. Then you get to see the Linux install running post-BSOD.
This is an fun project, but please be careful with your PCs, and make sure to perform regular backups just in case.
Why would you want to keep 'running' the system, and not actually discover and fix the problem?
Especially given the limitations of this subsystem.
Wasn't fully thinking the situation through.
Who still runs these?
Because you maybe hit on the interesting bit you were hunting for. If you're fuzzing or buzzing memory protection or erstwhile DMA maybe you get the proverbial license number on a callback to a wrong ring. Also at least you could pull a little state out to see what wrong number was dialed (in a JIT engine like a Java or JS engine) otherwise, realize a little bad magic got pulled in as fine magic...