Black Screen of Death

From Wikipedia, the free encyclopedia

A Windows 3.1 black screen of death captured inside a VMWare virtual machine.
A Windows 3.1 black screen of death captured inside a VMWare virtual machine.

The black screen of death (BSoD), is either of two things: a failure mode of Microsoft Windows 3.x, or the screen displayed by the OS/2 operating system in the event of either a system error from which it cannot recover or a "hard" error in a program running in "full screen" mode (the former being a serious system failure but the latter being a less serious application failure).

The black screen of death has been present in all versions of OS/2.

Contents

[edit] The Windows black screen of death

In Windows 3.x the black screen of death is the behaviour that occurred when a DOS application failed to execute properly. It was often known to occur in connection with attempting certain operations while networking drivers were resident in memory. (Most commonly, but not exclusively, it was seen while the Novell NetWare client for DOS, NETX, was loaded.) The system would switch the display to text mode, but would display nothing, leaving the user looking at an entirely black screen with a blinking cursor in the upper left corner. At this point, the user could do nothing but perform a cold reboot to get the system running normally again.

According to Wallace McClure of ASP.net [1], the phrase was originally coined in the summer of 1991 by Ed Brown, a technician with Coca-Cola Company's IT department in Atlanta, GA. He reports that the company was rolling out Windows 3.0 within the Global Marketing group and when the users would attempt to run WordPerfect, they would randomly receive a BSOD.


[edit] The OS/2 Black screen of death

In OS/2, a black screen of death is either a "TRAP screen" or "full-screen hard-error VIO pop-up". They switch the display adapter to text mode. The display is 80 columns by 25 rows, with white lettering on a black background and a black border, and uses the text mode font of the display adapter.

[edit] TRAP screens

An example of an OS/2 TRAP screen.
An example of an OS/2 TRAP screen.

A "TRAP screen" occurs when the kernel encounters an error from which it cannot recover, a system crash. Usually this is a result of faulty (or overclocked) hardware, but it may also result from a software error in either the kernel or a device driver.

The "TRAP screen" contains a dump of the processor registers and stack, and information about the version of the operating system and the actual processor exception that was triggered.

The only actions the user can take in this situation is to perform a soft reboot by pressing Control-Alt-Delete or to perform a system dump by pressing Control-Alt-NumLock twice.

[edit] Hard error screens

A "full-screen hard-error VIO pop-up" occurs when a process incurs a "hard" error, either an outright application program crash or a potentially recoverable hard error (such as an attempt to access a floppy disc device where no disc has been inserted into the drive).

The screen is displayed by the "hard error daemon" process, which handles hard errors from all other processes. Technically, the screen is a "VIO pop-up" screen. All processes (except the one that has incurred the error, any that also incur hard errors whilst the first error is being displayed, and any that themselves wish to display a "VIO pop-up" screen) continue to run, and the system continues to operate as normal. The hard error daemon uses a VIO pop-up when either the system has been booted into text mode or the hard error has occurred in a process running in a full-screen session.

The "pop-up screen" contains information about the processor exception that was triggered and the identity of the process.

The user is prompted for the action to be taken, and may choose

  • to end the process,
  • to display more information (which comprises a dump of the processor registers and stack for that process),
  • to retry the operation (if appropriate — I/O errors are retryable, CPU errors are not), or
  • to ignore the problem and continue (if appropriate — I/O errors are ignorable, CPU errors are not).

[edit] See also

In other languages