内核糟糕与内核崩溃之间有什么区别?


51

我知道什么是内核恐慌,但我也看到过“内核哎呀”一词。我一直以为他们是一样的,但也许不是。所以:

什么是内核哎呀,它与内核崩溃有什么区别?

Answers:


45

哎呀 ”是一个严重的Linux内核问题,可能会影响系统可靠性。

有些“糟糕”的情况非常糟糕,内核决定立即停止运行,以免造成数据丢失或其他损坏。这些被称为内核恐慌

后一个术语是原始的,可以追溯到Linux Unix的最早版本,当它们出现时,它还会在控制台上显示“ panic”消息。处理此类情况的原始AT&T Unix内核函数称为panic()。您可以通过AT&T Unix的公共源代码发行版追溯到其最初发行版:

  • 的OpenSolaris的版本panic()是由Sun发布了2005年。它相当复杂,其标题注释充分说明了在紧急情况下会发生什么。

  • Unix的V4落实panic()在1973年发布了它基本上只是将内核到控制台的核心状态,并停止处理器。

  • 据阿米特·辛格(Amit Singh)称,该功能在Unix V3中基本没有变化,他着名地剖析了较旧的Mac OS X版本并对其进行了解释。第一个链接带您进入一篇可爱的文章,解释macOS实现的方法panic(),该文章从相关的历史讨论开始。

  • 从扫描的源代码打印输出中恢复Unix V1 的“ unix-jun72 ”项目显​​示了该功能的非常早的PDP-11汇编版本,该版本在1972年6月之前的某个时候编写,而Unix在之前完全用C重写。缩减为6条指令的例程,该例程仅比重新启动PDP-11有用。


刚好看到您的编辑(大概是为什么我对此问题有更多的反对?)-真的很棒,谢谢您的补充:)
奋力

14

oops是内核遇到的特定错误。糟糕包含以下信息:

  • 简要描述;简介
  • 糟糕
  • 它发生在哪个CPU上,以及CPU正在执行的代码
  • 注册内容

Oops是一种调试内核代码的方法,并且有一些实用程序可以帮助您。内核崩溃意味着系统无法恢复,必须重新启动。但是,使用Oops,系统通常可以继续。您可以将klogd和syslogd配置为将oops消息记录到文件中,而不是标准输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.