fbpx
维基百科

内核错误

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

init发送SIGSEGV使其退出,导致FreeBSD中发生的内核错误。

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

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

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

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

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

Mac OS X

Mac OS X v10.6 Snow Leopard中,当进入内核错误后,会在畫面上出现一個有英語法語德語西班牙语日語的當機畫面,被多数麥金塔電腦使用者称为“五國語言當機”,简称“五国”。同时,调试信息被存储在NVRAM中,并会在重启时写出日志文件。

出现这样的问题除了是作業系統上的問題,絕大多數是擴充記憶體出現問題,但亦有可能是其他硬件出現問題。此画面亦多发生于黑苹果安装过程中。通常重新開機即可解決問題,但有時候必須被送去維修才可以解決問題。

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

OS X v10.8 Moutain Lion和之後的版本,除了原有的英語、法語、德語、西班牙语及日語外,又增加簡體中文的語系。

Linux内核oops

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

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

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

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

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

参见

参考文献

  1. ^ Unix and Multics. [2010-09-18]. (原始内容存档于2012-08-06). 
  2. ^ http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.27.y.git;a=blob;f=Documentation/oops-tracing.txt;h=b152e81da5923e5150de6ba6a67d6ec37219ca43;hb=HEAD[永久失效連結]
  3. ^ 存档副本. [2010-09-21]. (原始内容于2019-09-05). 
  4. ^ . [2010-09-21]. (原始内容存档于2012-10-04). 

外部連結

  • 简说五国语言的另外意思[永久失效連結]
  • John Bradford. . LKML (邮件列表). 2003-03-08 [2006-05-22]. (原始内容存档于2007-03-10). 
  • Szakacsits Szabolcs. . LKML (邮件列表). 2003-03-08 [2006-05-22]. (原始内容存档于2007-03-13). 
  • Al Viro. . LKML (邮件列表). 2008-01-14 [2008-01-14]. (原始内容存档于2008-04-21). 
  • Kernel Oops Howto (the madwifi project) (页面存档备份,存于互联网档案馆) Useful information on configuration files and tools to help display oops messages. Also lots of other links.

内核错误, 英語, kernel, panic, 是指操作系统在监测到内部的致命错误, 并无法安全处理此错误时采取的动作, 这个概念主要被限定在unix以及类unix系统中, 对于microsoft, windows系统, 等同的概念通常被称为蓝屏死机, 向init发送sigsegv使其退出, 导致freebsd中发生的, 操作系统内核中处理kernel, panic的子程序, 在at, t衍生类以及bsd类unix中, 通常称为panic, 通常被设计用来向控制台输出错误信息, 向磁盘保存一份内核内存的转储, 以. 内核错误 英語 Kernel Panic 是指操作系统在监测到内部的致命错误 并无法安全处理此错误时采取的动作 这个概念主要被限定在Unix以及类Unix系统中 对于Microsoft Windows系统 等同的概念通常被称为蓝屏死机 向init发送SIGSEGV使其退出 导致FreeBSD中发生的内核错误 操作系统内核中处理Kernel panic的子程序 在AT amp T衍生类以及BSD类Unix中 通常称为panic 通常被设计用来向控制台输出错误信息 向磁盘保存一份内核内存的转储 以便事后的调试 然后等待系统被手动重新引导 或自动重新引导 该程序提供的技术性信息通常是用来帮助系统管理员或者软件开发者诊断问题的 操作系统试图读写无效或不允许的内存地址是导致内核错误的一个常见原因 内核错误也有可能在遇到硬件错误或操作系统BUG时发生 在不同情况中 操作系统可以在内存访问违例发生时继续运行 然而 系统处于不稳定状态时 操作系统通常会停止工作以避免造成破坏安全和数据损坏的风险 并提供错误的诊断信息 内核错误在早期的Unix系统中被引入 显示了在Unix与Multics在设计哲学上的主要差异之一 Multics的开发者Tom van Vleck曾引述了一段在这个问题上与Unix开发者Dennis Ritchie的讨论 我提醒Dennis说 我在Multics中写的近半数代码都是错误恢复代码 他说 我们不需要这些 我们有称为panic的子程序 如果发生了错误就可以调用这个函数 使得系统崩溃 然后你可以在大厅里面大叫 嘿 重启机器 1 原始的panic 函数从UNIX第五版开始到基于VAX的UNIX 32V期间几乎没有变化 只是输出一条错误信息 然后就使系统进入NOP的死循环中 当改进UNIX的基础代码的时候 panic 函数也有所改进 可以向控制台输出多种格式的调试信息 目录 1 Mac OS X 2 Linux内核oops 3 参见 4 参考文献 5 外部連結Mac OS X 编辑在Mac OS X v10 6 Snow Leopard中 当进入内核错误后 会在畫面上出现一個有英語 法語 德語 西班牙语及日語的當機畫面 被多数麥金塔電腦使用者称为 五國語言當機 简称 五国 同时 调试信息被存储在NVRAM中 并会在重启时写出日志文件 出现这样的问题除了是作業系統上的問題 絕大多數是擴充記憶體出現問題 但亦有可能是其他硬件出現問題 此画面亦多发生于黑苹果安装过程中 通常重新開機即可解決問題 但有時候必須被送去維修才可以解決問題 在Mac OS X v10 3至10 5版本中 死机画面没有西班牙语 只包含英語 法語 德語及日語四种语言 因此被称为 四國語言當機 简称 四国 由于使用时间较长 可能是多数用户习惯的名称 在OS X v10 8 Moutain Lion和之後的版本 除了原有的英語 法語 德語 西班牙语及日語外 又增加簡體中文的語系 Mac OS X 10 0與10 1版的當機畫面 Mac OS X 10 2版的四國語言當機畫面 Mac OS X 10 3至10 5版的四國語言當機畫面 Mac OS X 10 6與10 7版的内核错误警告 俗称 五国 OS X 10 8及之後版本的當機畫面Linux内核oops 编辑主条目 Linux内核oops 在Linux上 oops即Linux内核的行为不正确 并产生了一份相关的错误日志 许多类型的oops会导致内核错误 即令系统立即停止工作 但部分oops也允许继续操作 以保证系统的稳定性 这个概念只代表一个简单的错误 当内核检测到问题时 它会打印一个oops信息然后终止全部相关进程 oops信息可以帮助Linux内核工程师调试 检测oops出现的条件 并修复导致oops的程序错误 Linux官方内核文档中提到的oops信息被放在内核源代码Documentation oops tracing txt中 2 通常klogd是用来将oops信息从内核缓存中提取出来的 然而 在某些系统上 例如最近的Debian发行版中 rsyslogd代替了klogd 因此 缺少klogd进程并不能说明log文件中缺少oops信息的原因 若系统遇到了oops 一些内部资源可能不再可用 即使系统看起来工作正常 非预期的副作用可能导致活动进程被终止 内核oops常常导致内核错误 若系统试图使用被禁用的资源 Kernelloops提到了一种用于收集和提交oops到其网站的软件 3 Kerneloops org同时也提供oops的统计信息 4 Linux中由硬盘硬件错误导致的内核错误 SPARC上的Linux内核 内核版本为2 4 oops PA RISC上发生的Linux内核 内核版本为2 6 oops 用ASCII艺术显示一头死牛参见 编辑Bug check 蓝屏死机 System map参考文献 编辑 Unix and Multics 2010 09 18 原始内容存档于2012 08 06 http git kernel org p linux kernel git stable linux 2 6 27 y git a blob f Documentation oops tracing txt h b152e81da5923e5150de6ba6a67d6ec37219ca43 hb HEAD 永久失效連結 存档副本 2010 09 21 原始内容存档于2019 09 05 存档副本 2010 09 21 原始内容存档于2012 10 04 外部連結 编辑steffi yy Mac出現四國語言當機灰畫面 怎麼辦 简说五国语言的另外意思 永久失效連結 John Bradford Re what s an OOPS LKML 邮件列表 2003 03 08 2006 05 22 原始内容存档于2007 03 10 Szakacsits Szabolcs Re what s an OOPS LKML 邮件列表 2003 03 08 2006 05 22 原始内容存档于2007 03 13 Al Viro OOPS report analysis LKML 邮件列表 2008 01 14 2008 01 14 原始内容存档于2008 04 21 Kernel Oops Howto the madwifi project 页面存档备份 存于互联网档案馆 Useful information on configuration files and tools to help display oops messages Also lots of other links https web archive org web 20121004201248 http www kerneloops org 取自 https zh wikipedia org w index php title 内核错误 amp oldid 69871332 Mac OS X, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。