内核错误

✍ dations ◷ 2025-02-28 09:51:41 #计算机错误,操作系统核心,Linux核心

内核错误(英语:Kernel Panic)是指操作系统在监测到内部的致命错误,并无法安全处理此错误时采取的动作。这个概念主要被限定在Unix以及类Unix系统中;对于Microsoft Windows系统,等同的概念通常被称为蓝屏死机。

操作系统内核中处理Kernel panic的子程序(在AT&T派生类以及BSD类Unix中,通常称为panic())通常被设计用来向控制台输出错误信息,向磁盘保存一份内核内存的转储,以便事后的调试,然后等待系统被手动重新引导,或自动重新引导。该程序提供的技术性信息通常是用来帮助系统管理员或者软件开发者诊断问题的。

操作系统试图读写无效或不允许的内存地址是导致内核错误的一个常见原因。内核错误也有可能在遇到硬件错误或操作系统BUG时发生。在不同情况中,操作系统可以在内存访问违例发生时继续运行。然而,系统处于不稳定状态时,操作系统通常会停止工作以避免造成破坏安全和数据损坏的风险,并提供错误的诊断信息。

内核错误在早期的Unix系统中被引入,显示了在Unix与Multics在设计哲学上的主要差异之一。Multics的开发者Tom van Vleck曾引述了一段在这个问题上与Unix开发者Dennis Ritchie的讨论:

我提醒Dennis说,我在Multics中写的近半数代码都是错误恢复代码。他说:“我们不需要这些。我们有称为panic的子程序,如果发生了错误就可以调用这个函数,使得系统崩溃,然后你可以在大厅里面大叫:‘嘿,重启机器’。”

原始的panic()函数从UNIX第五版开始到基于VAX的UNIX 32V期间几乎没有变化,只是输出一条错误信息,然后就使系统进入NOP的死循环中。当改进UNIX的基础代码的时候,panic()函数也有所改进,可以向控制台输出多种格式的调试信息。

在Mac OS X v10.6 Snow Leopard中,当进入内核错误后,会在画面上出现一个有英语、法语、德语、西班牙语及日语的死机画面,被多数麦金塔电脑用户称为“五国语言死机”,简称“五国”。同时,调试信息被存储在NVRAM中,并会在重启时写出日志文件。

出现这样的问题除了是操作系统上的问题,绝大多数是扩展存储器出现问题,但亦有可能是其他硬件出现问题。此画面亦多发生于黑苹果安装过程中。通常重启即可解决问题,但有时候必须被送去维修才可以解决问题。

在Mac OS X v10.5 Leopard及以前的版本中,死机画面没有西班牙语,只包含英语、法语、德语及日语四种语言,因此被称为“四国语言死机”,简称“四国”,由于使用时间较长,可能是多数用户习惯的名称。

在Mac OS X v10.8 Moutain Lion和之后的版本,除了原有的英语、法语、德语、西班牙语及日语外,又增加简体中文的语系。

Mac OS X 10.6的内核错误警告,俗称“五国”。调试信息同时被存储在NVRAM中,并会在重启时写出日志文件。

四国语言死机画面

在Linux上,oops即Linux内核的行为不正确,并产生了一份相关的错误日志。许多类型的oops会导致内核错误,即令系统立即停止工作,但部分oops也允许继续操作,以保证系统的稳定性。这个概念只代表一个简单的错误。

当内核检测到问题时,它会打印一个oops信息然后终止全部相关进程。oops信息可以帮助Linux内核工程师调试,检测oops出现的条件,并修复导致oops的程序错误。

Linux官方内核文档中提到的oops信息被放在内核源代码Documentation/oops-tracing.txt中。通常klogd是用来将oops信息从内核缓存中提取出来的,然而,在某些系统上,例如最近的Debian发行版中,rsyslogd代替了klogd,因此,缺少klogd进程并不能说明log文件中缺少oops信息的原因。

若系统遇到了oops,一些内部资源可能不再可用。即使系统看起来工作正常,非预期的副作用可能导致活动进程被终止。内核oops常常导致内核错误,若系统试图使用被禁用的资源。

Kernelloops提到了一种用于收集和提交oops到其网站的软件 。Kerneloops.org同时也提供oops的统计信息。

Linux中由硬盘硬件错误导致的内核错误。

SPARC上的Linux内核(内核版本为2.4)oops

PA-RISC上发生的Linux内核(内核版本为2.6)oops,用ASCII艺术显示一头死牛

相关

  • 雨夹雪雨夹雪(sleet),又称作霙(汉语拼音:yīng,注音:ㄧㄥ,音同“英”)、夹冰丸,是雪和雨一同降下的现象。与液态的冻雨不同,以及与颗粒坚硬的冰珠不同,雨夹雪降下的颗粒柔软,呈半透明。由于雪花
  • 卡米拉·马尔廷卡米拉·马尔廷(丹麦语:Camilla Martin Nygaard,1974年3月23日-),丹麦著名女子羽毛球单打运动员。容貌俏丽的她,曾是丹麦男子名将彼得·盖德的女友,并被丹麦人誉为第二女王。1999年5
  • 宣传模式宣传模式(英文:Propaganda model),由Edward S. Herman和诺姆·乔姆斯基提出的理论,以结构性经济原则解释大众传媒报道是无可避免会有偏见的原因。最先出现于两人的1988年著作《Ma
  • 礼亲王和硕礼亲王(满语:ᡥᠣᡧᠣᡳᡩᠣᡵᠣᠩᡤᠣ ᠴᡳᠨ ᠸᠠᠩ,穆麟德:Hošoi doronggo cin wang,太清:Hoxoi doronggo qin wang;“礼”音译“多隆乌”,意为“有礼的、端庄的”),清朝世袭
  • 迭戈·马拉多纳迭戈·阿尔芒多·马拉多纳·弗朗哥(西班牙语:Diego Armando Maradona Franco,1960年10月30日-),生于阿根廷首都布宜诺斯艾利斯,昵称“世纪球王”、“球场上帝”,已退役的阿根廷足球
  • 英联邦山脉英联邦山脉(英语:Commonwealth Range)是南极洲的山脉,属于毛德王后山脉的一部分,长144公里、宽66公里,面积4,820平方公里,最高点海拔高度4,000米,该山脉在1907至1909年被英国探险队
  • 镭的同位素镭没有稳定的同位素,故无法给出它们的标准原子量。备注:画上#号的数据代表没有经过实验的证明,只是理论推测而已,而用括号括起来的代表数据不确定性。
  • 卡嘉·瑞曼 卡嘉·汉兴·莱妮·瑞曼(德语:Katja Hannchen Leni Riemann;1963年11月1日-),是一名德国一代艳星威尼斯影后女演员,著名电影如《该死的歌德》及《吸特乐回来了》等。此外,她还曾经
  • 弗里茨·海德弗里茨·海德(Fritz Heider,1896年2月18日-1988年1月2日)是一位美国格式塔心理学家,以发展认知平衡理论和归因理论而著称。1896年2月18日,弗里茨·海德出生在奥匈帝国京城维也纳,是
  • 试观此人“试观此人”(拉丁语:;教会拉丁语:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium"