- Kernel panic
A kernel panic is an action taken by an
operating system upon detecting an internalfatal error from which it cannot safely recover; the term is largely specific toUnix andUnix-like systems.The kernel routines that handle panics (in
AT&T -derived andBSD Unix source code, a routine known aspanic()
) are generally designed to output anerror message to the console, dump an image of kernel memory to disk for post-mortemdebugging and then either wait for the system to be manually rebooted, or initiate an automatic reboot. The information provided is of highly technical nature and aims to assist asystem administrator orsoftware developer in diagnosing the problem.Attempts by the operating system to read an invalid or non-permitted
memory address are a common source of kernel panics. A panic may also occur as a result of a hardware failure or a bug in the operating system. While technically often the operating system could continue operation, after memory violations have occurred the system is in an unstable state. Rather than risk security breaches and data corruption, the operating system stops to prevent further damage and facilitate diagnosis of the error.The kernel panic was introduced in an early version of
Unix and demonstrated a major difference between the design philosophies of Unix and its predecessorMultics . Multics developerTom van Vleck recalls a discussion of this change with Unix developerDennis Ritchie :The original
panic()
function was essentially unchanged from Fifth Edition UNIX to theVAX -based UNIX 32V and output only an error message with no other information, then dropped the system into an endless idle loop. As the Unix codebase was enhanced, thepanic()
function was also enhanced to dump various forms of debugging information to the console.See also
*
Bug check
*Screens of death References
External links
* [http://opensolaris.org/os/community/documentation/files/book.pdf The Solaris Operating System on x86 Platforms: Crashdump Analysis Operating System Internals]
* [http://www.amazon.com/gp/product/0131493868 "Panic! Unix System Crash Dump Analysis" (SunSoft Press / Prentice Hall book by Chris Drake & Kimberley Brown]
* The file [http://minnie.tuhs.org/UnixTree/V6/usr/sys/ken/prf.c.html prf.c] fromVersion 6 Unix and theLions Book , containing the "panic()" routine as implemented on early Unix systems (will not compile with modern C compilers)
* Kernel panic source code examples from [http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/panic.c OpenSolaris] , [http://darwinsource.opendarwin.org/10.4.2/xnu-792.2.4/osfmk/kern/debug.c Darwin/Mac OS X] , [http://www.eng.mu.edu/corlissg/MSCS207.1998/Minix_tree/S/sys%20src%20kernel%20main.c.html#130 Minix] , and [http://developer.osdl.org/ogasawara/kernel_gcov/kernel/panic.c.gcov.html Linux]
Wikimedia Foundation. 2010.