内核错误 内核错误英語Kernel Panic是指操作系统在监测到内部的致命错误且无法安全处理此错误时采取的动作这个概念主要被限定在Unix以及类Unix系统中对于Microsoft Windows系统等同的概念通常被称为蓝屏死机 操作系统内核中处理Kernel panic的子程序在ATT衍生类以及BSD类Unix中通常称为panic通常被设计用来向控制台输出错误信息向磁盘保存一份内核内存的转储以便事后的调试然后等待系统被手动重新引导或自动重新引导该程序提供的技术性信息通常是用来帮助系统管理员或者软件开发者诊断问题的 操作系统试图读写无效或不允许的内存地址是导致内核错误的一个常见原因内核错误也有可能在遇到硬件错误或操作系统BUG时发生在不同情况中操作系统可以在内存访问违例发生时继续运行然而系统处于不稳定状态时操作系统通常会停止工作以避免造成破坏安全和数据损坏的风险并提供错误的诊断信息 内核错误在早期的Unix系统中被引入显示了在Unix与Multics在设计哲学上的主要差异之一Multics的开发者Tom van Vleck曾引述了一段在这个问题上与Unix开发者Dennis Ritchie的讨论 我提醒Dennis说我在Multics中写的近半数代码都是错误恢复代码他说我们不需要这些我们有称为panic的子程序如果发生了错误就可以调用这个函数使得系统崩溃然后你可以在大厅里面大叫嘿重启机器 原始的panic函数从UNIX第五版开始到基于VAX的UNIX V期间几乎没有变化只是输出一条错误信息然后就使系统进入NOP的死循环中当改进UNIX的基础代码的时候panic函数也有所改进可以向控制台输出多种格式的调试信息