Blue Screen of Death

From Wikipedia, the free encyclopedia

Jump to: navigation, search
A Blue Screen of Death as seen in Windows XP

The Blue Screen of Death (also known as a stop error, BSOD, bluescreen, or Blue Screen of Doom) is an error screen displayed by some operating systems, most notably Microsoft Windows, after encountering a critical system error which can cause the system to shut down, to prevent damage.

Bluescreens on NT-based Windows systems can be caused by poorly written device drivers or malfunctioning hardware. In the Win9x era, incompatible DLLs or bugs in the kernel of the operating system could also cause bluescreens.

Bluescreens can also be caused by physical faults such as faulty memory, power supply issues, overheating of components, or hardware running beyond its specification limits. Bluescreens have been present in all Windows-based operating systems since Windows 3.1; earlier, OS/2 and MS-DOS suffered the Black Screen of Death, and early builds of Windows Vista displayed the Red Screen of Death after a boot loader error.

The term "Blue Screen of Death" originated during OS/2 pre-release development activities at Lattice Inc, the makers of an early Windows and OS/2 C compiler. During porting of Lattice's other tools, developers encountered the stop screen when NULL pointers were dereferenced either in application code or when unexpectedly passed into system API calls. During reviews of progress and feedback to IBM Austin, the developers described the stop screen as the Blue Screen of Death to denote the screen and the finality of the experience.[citation needed]

Contents

[edit] Types of BSoDs

[edit] Windows NT

A Blue Screen of Death as seen on an advertising display in the Chadstone Shopping Centre

In Windows NT-based operating systems, the blue screen of death occurs when the kernel or a driver running in kernel mode encounters an error from which it cannot recover. This is usually caused by an illegal operation being performed. The only safe action the operating system can take in this situation is to restart the computer. As a result, data may be lost, as users are not given an opportunity to save data that has not yet been saved to the hard drive.

Blue screens are known as "Stop errors" in the Windows Resource Kit documentation. They are referred to as "bug checks" in the Windows Software development kit and Driver development kit documentation.

The text on the error screen contains the code of the error and its symbolic name (e.g. "0x0000001E, KMODE_EXCEPTION_NOT_HANDLED") along with four error-dependent values in parentheses that are there to help software engineers fix the problem that occurred. Depending on the error code, it may display the address where the problem occurred, along with the driver which is loaded at that address. Under Windows NT and 2000, the second and third sections of the screen may contain information on all loaded drivers and a stack dump, respectively. The driver information is in three columns; the first lists the base address of the driver, the second lists the driver's creation date (as a Unix timestamp), and the third lists the name of the driver.[1]

By default, Windows will create a memory dump file when a blue screen error occurs. Depending on the OS version, there may be several formats this can be saved in, ranging from a 64kB "minidump" to a "complete dump" which is effectively a copy of the entire contents of physical RAM. The resulting memory dump file may be debugged later, using a kernel debugger. A debugger is necessary to obtain a stack trace, and may be required to ascertain the true cause of the problem; as the information on-screen is limited and thus possibly misleading, it may hide the true source of the error.

Microsoft Windows can also be configured to send live debugging information to a kernel debugger running on a separate computer. Windows XP also allows for kernel debugging from the machine that is running the OS. If a blue screen error is encountered while a live kernel debugger is attached to the system, Windows will halt execution and cause the debugger to break in, rather than displaying the BSoD. The debugger can then be used to examine the contents of memory and determine the source of the problem.

The Windows debugger is available as a free download from Microsoft.[2]

Windows includes a feature that can be used to cause a blue screen manually. To enable it, the user must add a value to the Windows registry (using regedit.exe). After that, a BSoD will appear when the user presses the SCROLL LOCK key twice while holding the right CTRL key.[3] This feature is primarily useful for obtaining a memory dump of the computer while it is in a given state. As such, it is generally used to aid in troubleshooting system hangs.

By default, Windows XP is configured to save only a 64kB minidump when it encounters a blue screen, and to then automatically reboot the computer. Because this process happens very quickly, the blue screen may be seen only for an instant or not at all. Users have sometimes noted this as a random reboot rather than a traditional stop error, and are only aware of an issue after Windows reboots and displays a notification that it has recovered from a serious error. This happens only when the computer has a function called "Auto Restart" enabled, which can be disabled in the Control Panel which in turn shows the BSoDs.

A BSoD can also be caused by a critical boot loader error, where the operating system is unable to access the boot partition due to incorrect storage drivers, a damaged file system or similar problems. The error code in this situation is STOP 0x0000007B (INACCESSIBLE_BOOT_DEVICE). In such cases, there is no memory dump saved. Since the system is unable to boot from the hard drive in this situation, correction of the problem often requires booting from the Microsoft Windows CD. After booting to the CD, it may be possible to correct the problem by performing a repair install or by using the Recovery Console (with CHKDSK).

The colour blue was chosen because the console colours of DEC Alpha, a platform that runs a version of Windows NT, could not be changed easily.[4] For consistency reasons, blue became the colour for Stop errors on all platforms (alpha/i386/mips/ppc).

Another famous instance of a BSoD was at the 2008 Summer Olympics Opening Ceremony. [5] Media reports that Windows XP was used for the ceremony rather than Windows Vista. [6] Another BSOD was displayed through the Beijing 2008's Water Cube projection system.[7]

[edit] ReactOS

ReactOS, an attempt at creating a free software/open source implementation of a Windows NT-compatible operating system, also features its own BSoD similar to the Windows NT/XP one.

[edit] Windows 9x/Me

The blue screen of death frequently occurs in Microsoft's home desktop operating systems Windows 95, 98, and Me. Here it is usually less serious, but much more common. In these operating systems, the BSoD is the main way for virtual device drivers to report errors to the user. It is internally referred to by the name of "_VWIN32_FaultPopup". A Windows 9x/Me BSoD gives the user the option either to restart or continue. However, VxDs do not display BSoDs frivolously — they usually indicate a problem that cannot be fixed without restarting the computer, and hence after a BSoD is displayed the system is usually unstable or unresponsive.

On the GUI-based members of the MS-DOS-Win95 stream of operating systems and reportedly OS/2, the most common BSoD is the 25x80 screen which is in fact the operating system's way of reporting an interrupt due to a processor exception; it is therefore a more serious form of the Illegal Operation GPF/IPF error boxes seen in a couple of forms on these operating systems. Indeed, the memory address of the error is given and the error type is a hexadecimal number from 00 to 11 (0 to 17 decimal) and is most commonly 0E (Page Fault) or 0D (General Protection Fault), with invalid opcode (06), division by zero (00), and stack fault (0C) being less common and Overflow (04) and the Double Fault (08) forming a third tier of more rare processor exception errors. Assembly language and graphics programmers may see some of the others on occasion but as a rule 0E and 0D are the fatal exceptions that may crop up in everyday use. The error codes are as follows:

00: Divide Fault
01: Corrupted operating system
02: Non-Maskable Interrupt
03: Hardware malfunction
04: Overflow Trap
05: Bounds Check Fault
06: Invalid Opcode Fault
07: Coprocessor Not Available Fault
08: Double Fault
09: Coprocessor Segment Overrun
10 (0Ah): Invalid Task State Segment Fault
11 (0Bh): Not Present Fault
12 (0Ch): Stack Fault
13 (0Dh): General Protection Fault
14 (0Eh): Page Fault
15 (0Fh): System board malfunction or corrupted
16 (10h): Coprocessor Error Fault
17 (11h): Alignment Check Fault

Source: Intel 80486 manual, and Microsoft article at http://support.microsoft.com/?kbid=150314

Two of the most common reasons for BSoDs are:

  • Problems that occur with incompatible versions of DLLs. Windows loads these DLLs into memory when they are needed by application programs; if versions are changed, the next time an application loads the DLL it may be different from what the application expects. These incompatibilities increase over time as more new software is installed, and is one of the main reasons why a freshly-installed copy of Windows is more stable than an "old" one.
  • Faulty or poorly written device drivers, hardware incompatibilities, or damaged hardware may also cause a BSoD.

In Windows 95 and 98, a BSoD occurs when the system attempts to access the file "c:\con\con" on the hard drive. This was often inserted on websites to crash users' machines. Microsoft has released a patch for this.[8]

The BSoD can appear if a user ejects removable media while it is being read on 9x/ME. This is particularly common while using Microsoft Office: if a user simply wants to view a document, they might eject a floppy disk before exiting the program. Since Microsoft Office always creates a temporary file in the same directory, it will trigger a BSoD upon exiting because it will attempt to delete the file on the disk that is no longer in the drive.

This type of blue screen is no longer seen in Windows NT, 2000, and XP. In the case of these less serious software errors, the program may still crash, but it will not take down the entire operating system with it due to better memory management and decreased legacy support. In these systems, the "true" BSoD is seen only in cases where the entire operating system crashes.

Perhaps the most famous instance of a Windows 9x BSoD occurred during a presentation of a Windows 98 beta by Bill Gates at COMDEX on April 20, 1998. The demo PC crashed with a BSoD when his assistant (Chris Capossela, who is still working for Microsoft as Corporate VP in the Information Working business unit) connected a scanner to the PC, trying to demonstrate Windows 98's support for Plug and Play devices. This event brought thunderous applause from the crowd and Gates replied after a nervous pause: "That must be why we're not shipping Windows 98 yet."[9]

[edit] Windows CE

The simplest version of the blue screen occurs in Windows CE except the versions for Pocket PC. The blue screen in Windows CE 3.0 is similar to the one in Windows 95 and 98.

[edit] Windows 3.1

Windows 3.1 was the first version of Windows to use the Blue Screen of Death. In Windows 3.1's 386 enhanced mode, the Blue Screen is also displayed when Control-Alt-Delete is pressed. In a beta version of Windows 3.1, the screen basically looked the same, but it used a black background instead of a blue one.

[edit] Xbox

Although the Microsoft Xbox usually shows a Green Screen of Death when a critical error occurs, this model was seen showing a BSoD during the presentation of Forza Motorsport at the CeBIT computer fair in Hannover in March 2005. Additionally the recalled Game Kakuto Chojin displays a BSoD as an error message when the disc is dirty.[citation needed]

An early development version of the Microsoft Xbox showing a Blue Screen of Death during a presentation of a racing game at the CeBIT in March 2005.

[edit] Mac OS X 10.5 Leopard

Unlike many other blue screens of death, Leopard's was part of a regular boot process in some situations. Some users, upgrading from Mac OS X 10.4 Tiger to Mac OS X 10.5 Leopard and having installed Application Enhancer, experienced a similar experience to a blue screen of death: on booting, the screen remained blue for an indefinite period of time because Application Enhancer's framework was not compatible with the new handlers that Leopard included. However, Apple became aware of the problem and posted a solution[10]. Nevertheless, Leopard's blue screen was not meant to inform and/or describe an error as the blue screen is just a consequence of the regular boot process.

In the new Finder sidebar, all Windows PCs connected to the same local network of a Mac running Leopard are shown with an icon representing a CRT monitor displaying the blue screen of death. [11]

[edit] PlayStation Portable

The PlayStation Portable shows a Blue Screen of Death when the internal settings in flash1:\ become corrupted or are missing. The BSoD instructs that the Playstation Portable will attempt to recreate the registry setting files. The BSoD is encountered often when downgrading a Playstation Portable because of non-backward-compatible registry files. Under very rare conditions (usually as a result of firmware modifications), the system may be thrown into a loop in which the PSP will continue to restart and display the BSoD screen.

The PlayStation Portable also has a red screen of death which can appear when portions of the internal flash0:\ are corrupted or missing. This is usually more fatal than the blue screen of death as there is no option to repair the problem since the missing operating system, unlike the user settings, cannot be restored.

[edit] Game Boy Advance

If a cartridge is removed from the console as it is still running, the screen will display a textless BSoD, or more commonly will just continue displaying a frozen image of the game as it was at the exact moment before it froze and continuing to play the sound made at said moment. Replacing the cartridge will not stop either occurrence; to stop it one must turn the power off, replace the cartridge and turn it back on. Most games will start off at the last save point. The same thing happens when playing a GBA game on the Nintendo DS.

[edit] Nintendo DS

Nintendo DS Blue Screen
Nintendo DS Lite "Blue" Screen

The Nintendo DS will give a textless single-color on both screens when the user removes a DS card or GBA card while on the Pictochat room selection menu. The color of the screens is based on the DS firmware version -- version 6 firmware, found on most DS machines is blue (blue LEDs on only), while the version 5 firmware, found on DS Lite consoles, is magenta (red and blue LEDs on only). Some DS machines have green screens of death when the user removes a DS card or GBA cards while on the Pictochat room selection menu. While playing Animal Crossing: Wild World during wireless communication, should the wireless connection be disrupted, a light blue screen will appear featuring the character Mr.Resetti looking grim, along with a text stating that the game has been discontinued and that all unsaved progress of the game will be lost. Corrupted data on Pokémon Diamond and Pearl will result in a blue error screen.

[edit] Wii

Wii has a so-called Green Screen of Death that does not arise during normal usage, but may appear after running buggy homebrew or other problematic unofficial software.[citation needed]

[edit] Display

By default, the display is white lettering (CGA color 0x0F; HTML color #FFFFFF) on a blue background (CGA color 0x01; HTML color #0000AA,) with information about current memory values and register values. For visually impaired users, Microsoft has added a utility that allows the user to change a setting in SYSTEM.INI that controls the colors that the BSoD code uses to any of the 16 CGA colors. Doing so requires the edit or addition of the "MessageBackColor=X" and "MessageTextColor=X" lines to the [386enh] section of the SYSTEM.INI, where X is a hexadecimal number from 0 to F corresponding with a color in the CGA 16-color palette.

Windows 95, 98 and Me use 80x25 text mode. The Windows NT BSoD uses 80x50 text mode. The screen resolution is 720x400. The XP BSoD uses the Lucida Console font while the Vista BSoD uses the Consolas font.

When getting the BSoD, the screen will go black for about a second and any playing audio will start to skip, and then a dark blue screen will come up with white writing.

[edit] Details

Each BSoD usually displays a message such as FILE_SYSTEM, and a number like 0x00000022. The usual parameters displayed for the BSoD are these:

number of error (parameter, parameter, parameter, parameter) name of error

All of the above information is important in understanding and determining the cause of the BSOD.[12]

Depending on the value "number of error", all, some or even none of the parameters contain data pertaining to what went wrong, and/or where it happened.

[edit] See also

[edit] References

[edit] External links

Personal tools