Linux kernel oops explained
In computing, an oops is a serious but non-fatal error in the Linux kernel. An oops may precede a kernel panic, but it may also allow continued operation with compromised reliability. The term does not stand for anything, other than that it is a simple mistake.
Functioning
When the kernel detects a problem, it kills any offending processes and prints an oops message, which Linux kernel engineers can use in debugging the condition that created the oops and fixing the underlying programming error. After a system has experienced an oops, some internal resources may no longer be operational. Thus, even if the system appears to work correctly, undesirable side effects may have resulted from the active task being killed. A kernel oops often leads to a kernel panic when the system attempts to use resources that have been lost. Some kernels are configured to panic when many oopses (by default) have occurred.[1] [2] This oops limit is due to the potential, for example, for attackers to repeatedly trigger an oops and an associated resource leak, which eventually overflows an integer and allows further exploitation.[3] [4]
The official Linux kernel documentation regarding oops messages resides in the file [5] of the kernel sources. Some logger configurations may affect the ability to collect oops messages.[6] The kerneloops
software can collect and submit kernel oopses to a repository such as the www.kerneloops.org website,[7] which provides statistics and public access to reported oopses.
A simplified crash screen was introduced in Linux 6.10, similar to the Blue Screen of Death on Windows.[8]
See also
- kdump (Linux) Linux kernel's crash dump mechanism, which internally uses kexec
- System.map contains mappings between symbol names and their addresses in memory, used to interpret oopses
Further reading
- Linux Device Drivers, 3rd edition, Chapter 4.
- Re: what's an OOPS . John Bradford . 2003-03-08 . . 2006-05-22 . dead . https://web.archive.org/web/20070310214850/http://www.ussg.iu.edu/hypermail/linux/kernel/0303.1/0009.html . 2007-03-10.
- Re: what's an OOPS . Szakacsits Szabolcs . 2003-03-08 . LKML . 2006-05-22 . dead . https://web.archive.org/web/20070313235208/http://www.ussg.iu.edu/hypermail/linux/kernel/0303.1/0027.html . 2007-03-13.
- OOPS report analysis . Al Viro . 2008-01-14 . LKML . 2008-01-14 . https://web.archive.org/web/20080421030623/http://article.gmane.org/gmane.linux.kernel/624292 . 2008-04-21 . dead .
- Kernel Oops Howto (the madwifi project) Useful information on configuration files and tools to help display oops messages. Also many other links.
Notes and References
- Web site: [PATCH] exit: Put an upper limit on how often we can oops]. Horn. Jann. 7 November 2022. lore.kernel.org. 31 January 2023.
- Web site: Documentation for /proc/sys/kernel/. docs.kernel.org. 31 January 2023.
- Web site: Averting excessive oopses . . Corbet . Jonathan . 18 November 2022 .
- Web site: Exploiting null-dereferences in the Linux kernel . . 19 January 2023 . Jenkins . Seth .
- Web site: bug-hunting . kernel.org.
- Web site: DevDocs/KernelOops . madwifi-project.org . 2010-08-21 . 2020-08-03 . https://web.archive.org/web/20200803071136/http://madwifi-project.org/wiki/DevDocs/KernelOops . dead .
- Web site: kerneloops(8) - Linux man page. 31 January 2023.
- Web site: Linux 6.10 Preps A Kernel Panic Screen - Sort Of A "Blue Screen of Death" - Phoronix. Larabel. Michael. 10 March 2019. Phoronix.