
A kernel panic (sometimes abbreviated as KP) is a safety measure taken by an
operating system's
kernel upon detecting an internal
fatal error
''Fatal Error'' is a 1999 TBS TV-movie starring Janine Turner and Antonio Sabàto Jr. based on Ben Mezrich's 1998 novel ''Reaper''.
It also stars Robert Wagner
Robert John Wagner Jr. (born February 10, 1930) is an American actor of stage, ...
in which either it is unable to safely recover or continuing to run the system would have a higher risk of major data loss. The term is largely specific to
Unix and
Unix-like systems. The equivalent on
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
operating systems is a
stop error, often called a "blue screen of death".
The
kernel routines that handle panics, known as
panic()
in
AT&T-derived and
BSD
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
Unix source code, are generally designed to output an
error message to the
console, dump an image of kernel memory to disk for
post-mortem debugging
In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve int ...
, and then either wait for the system to be manually rebooted, or initiate an automatic
reboot. The information provided is of a highly technical nature and aims to assist a
system administrator or
software developer in diagnosing the problem. Kernel panics can also be caused by errors originating outside kernel space. For example, many Unix operating systems panic if the
init process, which runs in
user space, terminates.
History
The
Unix kernel maintains internal consistency and
runtime correctness with
assertions as the
fault detection mechanism. The basic assumption is that the hardware and the software should perform correctly and a failure of an assertion results in a ''panic'', i.e. a voluntary halt to all system activity.
The kernel panic was introduced in an early version of Unix and demonstrated a major difference between the design philosophies of Unix and its predecessor
Multics. Multics developer
Tom van Vleck recalls a discussion of this change with Unix developer
Dennis Ritchie:
I remarked to Dennis that easily half the code I was writing in Multics was error recovery code. He said, "We left all that stuff out. If there's an error, we have this routine called panic, and when it is called, the machine crashes, and you holler down the hall, 'Hey, reboot it.'"
The original
panic()
function was essentially unchanged from Fifth Edition UNIX to the
VAX-based UNIX 32V and output only an error message with no other information, then dropped the system into an endless idle loop.
Source code of
panic()
function in
V6 UNIX:
/*
* In case console is off,
* panicstr contains argument to last
* call to panic.
*/
char *panicstr;
/*
* Panic is called on unresolvable
* fatal errors.
* It syncs, prints "panic: mesg" and
* then loops.
*/
panic(s)
char *s;
As the Unix
codebase was enhanced, the
panic()
function was also enhanced to dump various forms of debugging information to the console.
Causes
A panic may occur as a result of a hardware failure or a
software bug in the operating system. In many cases, the operating system is capable of continued operation after an error has occurred. However, the system is in an unstable state and rather than risking security breaches and data corruption, the operating system stops to prevent further damage and facilitate diagnosis of the error and, in usual cases, restart.
After recompiling a kernel binary image from
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
, a kernel panic while
booting the resulting kernel is a common problem if the kernel was not correctly configured, compiled or installed.
Add-on hardware or malfunctioning
RAM could also be sources of fatal kernel errors during start up, due to incompatibility with the OS or a missing
device driver
In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and o ...
.
A kernel may also go into
panic()
if it is unable to locate a
root file system
In a computer file system, and primarily used in the Unix and Unix-like operating systems, the root directory is the first or top-most directory in a hierarchy. It can be likened to the trunk of a tree, as the starting point where all branche ...
.
During the final stages of kernel
userspace initialization, a panic is typically triggered if the spawning of
init fails. A panic might also be triggered if the init process terminates, as the system would then be unusable.
The following is an implementation of the Linux kernel final initialization in
kernel_init()
:
[linux/init/main.c](_blank)
LXR Cross Referencer
static int __ref kernel_init(void *unused)
Operating system specifics
Linux

Kernel panics appear in
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
like in other
Unix-like systems, but they can also generate another kind of error condition, known as a
kernel oops. In this case, the kernel normally continues to run after
killing the offending
process. As an oops could cause some subsystems or resources to become unavailable, they can later lead to a full kernel panic.
On Linux, a kernel panic causes keyboard LEDs to blink as a visual indication of a critical condition.
macOS
When a kernel panic occurs in
Mac OS X 10.2 through 10.7, the computer displays a multilingual message informing the user that they need to reboot the system. Prior to 10.2, a more traditional Unix-style panic message was displayed; in 10.8 and later, the computer automatically reboots and displays a message after the restart. The format of the message varies from version to version:
* 10.0–10.1: The system displays text on the screen, giving details about the error, and becomes unresponsive.
* 10.2: Rolls down a black transparent curtain then displays a message on a white background informing the user that they should restart the computer. The message is shown in
English,
French
French (french: français(e), link=no) may refer to:
* Something of, from, or related to France
** French language, which originated in France, and its various dialects and accents
** French people, a nation and ethnic group identified with Franc ...
,
German and
Japanese.
* 10.3–10.5: The kernel panic is almost the same as version 10.2 but the background of the error screen is black.
* 10.6–10.7: The text has been revised and now includes a
Spanish translation.
* 10.8 and later: The computer becomes unresponsive before it immediately reboots. When the computer starts back up, it shows a warning message for a few seconds about the computer restarting because of a kernel panic, and then the computer restarts back up. The message now includes a
Chinese translation.
Sometimes when there are five or more kernel panics within three minutes of the first one, the Mac will display a
prohibitory sign for 30 seconds, and then shut down; this is known as a "recurring kernel panic".
In all versions above 10.2, the text is superimposed on a
standby symbol and is not full screen. Debugging information is saved in
NVRAM and written to a log file on reboot. In 10.7 there is a feature to automatically restart after a kernel panic. In some cases, on 10.2 and later, white text detailing the error may appear in addition to the standby symbol.
File:Mac OS X 10.0 10.1 Kernel Panic.jpg, Mac OS X 10.0–10.1 kernel panic
File:Mac OS X 10.2 Kernel Panic.jpg, Mac OS X 10.2 kernel panic
File:MacOSX kernel panic.png, Mac OS X 10.3–10.5 kernel panic
File:Panic10.6.png, Mac OS X 10.6 and 10.7 kernel panic
File:OS X Mountain Lion kernel panic.jpg, Message shown after the computer restarts because of a kernel panic in OS X 10.8 and later versions
See also
*
Core dump
In computing, a core dump, memory dump, crash dump, storage dump, system dump, or ABEND dump consists of the recorded state of the working Computer storage, memory of a computer program at a specific time, generally when the program has crash (comp ...
*
Blue screen of death
*
Screen of death
In computing, a screen of death is an informal term for a type of computer operating system error message displayed onscreen when the system has experienced a fatal system error. Computer users have dubbed these messages "screens of death" because ...
References
{{Error messages
Computer errors
Operating system kernels
Screens of death