Linux kernel oops on SPARC
Linux kernel oops on PA-RISC with a dead ASCII cow

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

edit

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 (10,000 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 Documentation/admin-guide/bug-hunting.rst[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

edit
  • 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

References

edit
  1. ^ Horn, Jann (7 November 2022). "[PATCH] exit: Put an upper limit on how often we can oops". lore.kernel.org. Retrieved 31 January 2023.
  2. ^ "Documentation for /proc/sys/kernel/". docs.kernel.org. Retrieved 31 January 2023.
  3. ^ Corbet, Jonathan (18 November 2022). "Averting excessive oopses". LWN.net.
  4. ^ Jenkins, Seth (19 January 2023). "Exploiting null-dereferences in the Linux kernel". Google Project Zero.
  5. ^ "bug-hunting". kernel.org.
  6. ^ "DevDocs/KernelOops". madwifi-project.org. Archived from the original on 2020-08-03. Retrieved 2010-08-21.
  7. ^ "kerneloops(8) - Linux man page". Retrieved 31 January 2023.
  8. ^ Larabel, Michael (19 April 2024). "Linux 6.10 Preps A Kernel Panic Screen - Sort Of A "Blue Screen of Death" - Phoronix". Phoronix.

Further reading

edit

📚 Artikel Terkait di Wikipedia

Rust for Linux

bugs when writing kernel drivers. Progress has been slower than hoped by both Rust advocates and Linus Torvalds, lead of the Linux kernel project. In December

Oops

by 808 State featuring Björk Linux kernel oops, a response created from the abnormal operation of the Linux kernel Object-oriented programming system

Kernel panic

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

Comparison of operating system kernels

A kernel is a component of a computer operating system. It serves as an intermediary connecting software to hardware, enabling them to work together seamlessly

Linux kernel

The Linux kernel is a free and open-source Unix-like kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds

Cowsay

plus a descending U to represent an extruded tongue, also used on Linux kernel oops. -g “Greedy”, uses $$. -p “Paranoid”, uses @@. -s “Stoned”, uses ** to

Loadable kernel module

"Documentation/oops-tracing.txt". kernel.org. Archived from the original on 2011-10-02. Retrieved 2011-10-03. "Tainted kernels". The Linux kernel user’s and

System.map

address, is needed. It is especially useful for debugging kernel panics and kernel oopses. The kernel does the address-to-name translation itself when CONFIG_KALLSYMS