什么是内核恐慌?

什么是内核恐慌?

我刚刚完成了操作系统课程。我听到了这样一句话内核恐慌很多。你能解释一下吗

  1. 什么是内核恐慌?
  2. 为什么会发生这种情况?
  3. 我如何才能发现发生了内核恐慌?
  4. 它对系统有什么影响?
  5. 它只发生在 Linux 中吗?
  6. 我该如何预防?

答案1

每次回答 1 个问题常问问题

  1. 什么是内核崩溃?
    内核无法正确加载或“失控”,无法正常启动或崩溃(请参阅底部的编辑记录)。

  2. 为什么会发生这种情况?
    更新失败、硬件故障、硬件不受支持、驱动器或分区故障或丢失(请参阅底部的编辑信用)

  3. 我如何了解内核崩溃的发生?
    查看启动提示(关闭安静内核参数)或者您的机器无法启动

  4. 对系统有什么影响?
    无法启动或系统崩溃

  5. 它只发生在 Linux 中吗?
    不,所有类 Unix 操作系统都可能出现内核崩溃。这相当于Windows 蓝屏死机

  6. 我该如何预防?
    通常不会发生这种情况。测试更新并解决问题。使用稳定版本而不是开发版本。

附加说明:内核崩溃和系统故障/关机可能直接影响计算机免受物理损坏。例如,在极端过热或磁盘损坏之前停止运行。请参阅底部的编辑致谢以获取直接引用。

編輯

B. 罗兰磁盘或卷丢失或损坏也会导致这种情况。
(很好的观点,但我忽略了这一点)

基斯运行时也可能发生内核崩溃。
注意:当内核中的某个函数正常失败时,可能会发生这种情况,但最常发生在模块或内核加载期间(通常在启动期间)。我以为我在“启动或系统崩溃期间”提到过它,但我看到我对 (1) 的回答说它只发生在启动期间。

拉法尔切斯拉克直接引用 - “有一件非常重要的事情必须补充:整个内核恐慌的主要目的是保护您的计算机。内核冻结不仅是因为它未能执行某些操作,也是为了防止您的计算机过热、硬盘损坏和任何其他硬件问题,如果执行了某些不正确的命令,模块(例如负责控制风扇的模块)加载失败等,则可能会发生这些问题。这就是为什么内核宁愿冻结,也不愿克服问题。”

答案2

A内核恐慌当内核检测到无法恢复的错误时,就会发生这种情况。一个用来panic()处理这种情况的函数(通常是通过转储一些调试信息和/或重新启动系统)最早是在 UNIX 的早期版本中引入的,因此这个名字就源于此(在大多数类 UNIX 操作系统中,包括 Mac OS X,它仍然这样称呼)。

有名的蓝屏死机(正式称为严重系统错误微软 NT 内核中的错误(例如 VMS/OpenVMS)也是一种“内核恐慌”的形式。

Linux 内核错误,导致内核(部分或暂时)恢复被称为内核错误(有时您可能会在dmesg输出中看到这些)。

内核崩溃的原因可能是内核中的错误(例如,内核的驱动程序中的错误),或者是硬件或软件问题,导致内核出现意外/不可预测的情况(例如,无法启动进程init或被终止)。

要找出导致此问题的原因,您可以查看屏幕上或串行控制台(如果您配置了控制台)上是否有任何内容打印出来。如果配置了控制台,您还可以让系统执行Linux 内核崩溃转储,在发生崩溃时将内核内存保存到磁盘,以便内核开发人员可以对其进行分析(当然,这需要它能够写入磁盘)。在某些情况下/var/log/messages也可能有有用的信息(例如,在某些情况下从 oops 中恢复可能会导致以后出现无法恢复的错误)。还有一些更详细的信息这里

答案3

我的系统 Ubuntu 16.04 现在出现内核崩溃。我的电脑一直抱怨启动盘已满,所以我运行了“apt autoremove”。它删除了我认为不必要的文件,结果导致内核崩溃。

所以我猜想对启动盘的任何程度的编辑都可能导致内核崩溃。所以如果你不注意自己在做什么,就不要胡乱修改它。

答案4

@RobotHumans 的回答解决了你问题的所有部分。不过,我想详细说明 Kernel Panic 的原因。

首先,内核恐慌有两种类型 - 软内核恐慌(也称为 Oops)和硬内核恐慌(也称为 Aieee!)。

当系统遇到无法处理的异常时,系统会进入硬内核恐慌模式。软内核恐慌相对比较容易处理。

内核崩溃的原因

原因有多种,但最常见的原因如下:

  • RAM 缺陷或不兼容是导致内核崩溃 (Kernel Panic) 的最常见且频繁的原因。
  • 过时、不兼容或损坏的内核扩展
  • 过时、不兼容或损坏的内核驱动程序。
  • 硬盘损坏或者诸如坏扇区或目录损坏之类的问题也可能导致内核崩溃。
  • RAM 或硬盘空间不足
  • 硬件缺陷、程序编写不良或硬件故障也可能导致内核恐慌。

还需要注意的是,只有位于内核空间内的模块才会导致内核恐慌。lsmod可以运行命令来获取动态加载模块的列表。

要排除内核恐慌,请检查 /var/log/messages。有时所有信息可能都记录在那里,而有时与内核恐慌无关的信息可能不记录在那里。虽然不可避免地会遇到内核恐慌,但没什么可担心的。

相关内容