Blue screen of death

The Blue Screen of Death is a common name for the screen that occurs during a system crash in Windows operating systems. It is shown when the operating system can no longer function safely due to a fatal system error.

History
Contrary to popular belief, Windows 1.0 up to Windows 3.0 did not have a crash screen. When Windows 1.0 or Windows 2.x is run on a newer version of MS-DOS, it will print out an "Incorrect DOS version" error message, followed by garbled contents of the memory during the boot before loading into the Windows shell due to incompatibility with the newer DOS versions, which is often thought to be a crash screen, however, it is only a bug in the logo code. Whenever Windows did crash, it often resulted in a system hang or the shell returning back into DOS.

A concept of the blue screen debuted in Windows 3.1 build 043e as a black screen, which would be changed to blue in the RTM. In the enhanced-mode of Windows, pressing Ctrl + Alt + Del would open up a full-screen Task Manager warning. This warning would allow the user to terminate an unresponsive program, or if there's no unresponsive programs, simply allow the user to exit the screen or press Ctrl + Alt + Del again to reboot the system. Steve Ballmer wrote the original message for the Task Manager warning.

Raymond Chen would modify the Task Manager warning for Windows 95. Eventually, the Task Manager warning was replaced with a more user-friendly dialog box. The blue screen would be used for severe errors at this point. Notably in Windows 9x builds, most crashes can be ignored by pressing any key on the blue screen, but doing so would often result in the system being unstable.

Windows NT-based operating systems would introduce the STOP errors, with each STOP error providing a different code for the cause of the crash. Windows NT 3.1 up to Windows 2000 build 1773.1 would list the addresses of multiple drivers during the crash. From Windows 2000 build 1796.1 onwards, the message would be simplified to only include possible instructions for the user should they encounter the blue screen. The font would be slightly changed on Windows XP.

During the development of Windows 8, the blue screen has significantly changed. Around build 7850, the blue screen was updated to support higher resolutions using VBE 2.0 and anti-aliasing. At first, this updated blue screen only appeared if the system crashed at boot, however, by the time of build 7880 it was used for all bug checks. It would be quickly replaced to a more simplified black screen on build 7927, and would remain until build 8045 released with a black screen that would resemble the RTM. The black screen was changed back to the blue color on build 8102.

In Windows 10 version 1607, a QR code was added to the blue screen, linking to Microsoft's website for diagnosing blue screen errors. Windows 10 build 14993 changed the color and wording of the bug check screen to green for insider builds in order to be able to quickly distinguish between Insider and production build bug reports.

Implementation
The blue screen on NT-based systems is implemented in the  and   functions, which are contained in the kernel executable. The difference between the two functions is that the former accepts only the bugcheck code as an integer parameter, while the latter also accepts four more integers as bugcheck parameter codes, which can have different meaning depending on the bugcheck code. A component running in kernel mode can call either function to bring the system down in controlled manner if it detects a fatal uncorrectable error that can lead to data corruption. The respective function then takes care of switching to a compatible video mode, rendering the blue screen itself, saving a memory dump, and, if enabled, restarting the system.

Encountering
'''WARNING: Be careful. Forcing your computer to crash could potentially damage it or prevent it from booting properly. Do this at your own risk.'''

Windows XP: Third party software required (Process Hacker or NotMYFault)

Windows Vista/7/8/8.1: Ending csrss.exe using Task Manager

Windows 10: Ending svchost.exe using Task Manager