Kernel panic 221277 221010375 2008-06-22T17:19:23Z Andreas Kaufmann 72502 Removed category "Operating system technology"; Quick-adding category "Operating system kernels" (using [[WP:HOTCAT|HotCat]]) {{merge|Screens of death|Talk:Red Screen of Death#Merger proposal|date=May 2008}} [[Image:Forced-linux-kernel-panic-under-qemu.jpg|thumb|right|[[Linux]] kernel panic under [[QEMU]].]] [[Image:MacOSX kernel panic.png|right|thumb|[[Mac OS X]] kernel panic alert. Debugging information is saved in [[NVRAM]] and written to a log file on reboot.]] A '''kernel panic''' is an action taken by an [[operating system]] upon detecting an internal [[fatal error]] from which it cannot safely recover; the term is largely specific to [[Unix]] and [[Unix-like]] systems. The [[Kernel (computer science)|kernel]] routines that handle panics (in [[AT&T]]-derived and [[BSD]] Unix source code, a routine known as <code>panic()</code>) are generally designed to output an [[error message]] to the [[computer console|console]], dump an image of kernel memory to disk for post-mortem [[debugging]] and then either wait for the system to be manually rebooted, or initiate an automatic [[Reboot (computer)|reboot]]. The information provided is of highly technical nature and aims to assist a [[system administrator]] or [[software 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 predecessor [[Multics]]. Multics developer [[Tom van Vleck]] recalls a discussion of this change with Unix developer [[Dennis Ritchie]]: {{cquote|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.'"<ref>[http://www.multicians.org/unix.html Unix and Multics<!-- Bot generated title -->]</ref>}} The original <code>panic()</code> 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. As the Unix codebase was enhanced, the <code>panic()</code> function was also enhanced to dump various forms of debugging information to the console. == See also == * [[Bug check]] * [[Screens of death]] ==References== {{reflist}} ==External links== * [http://docs.info.apple.com/article.html?artnum=106227 What's a "kernel panic"? (Mac OS X)] * [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] from [[Version 6 Unix]] and the [[Lions Book]], containing the ''panic()'' routine as implemented on early Unix systems (will not compile with modern [[C (programming language)|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] [[Category:Screens of death]] [[Category:Computer errors]] [[Category:Operating system kernels]] {{Screens of death}} [[bg:Kernel panic]] [[de:Kernel panic]] [[es:Kernel panic]] [[fr:Panique du noyau]] [[it:Kernel panic]] [[hu:Kernelpánik]] [[pl:Kernel panic]] [[ru:Kernel panic]] [[fi:Kernel panic]] [[sv:Kernel panic]] [[zh:四國語言當機]]