23、深入解析内核 Oops:含义、触发与解读

深入解析内核 Oops:含义、触发与解读

1. 内核 Oops 概述

内核 Oops 是内核层面的重要问题标识,但它既不同于段错误(segfault),也有别于全面的内核崩溃(kernel panic)。

  • 与段错误的区别 :Oops 可能会引发段错误,使进程上下文收到致命的 SIGSEGV 信号,但这只是其可能产生的副作用。
  • 与内核崩溃的区别 :内核崩溃意味着系统处于不可用状态,而 Oops 不一定导致系统崩溃。不过,在某些情况下,Oops 可能会使内核变得无响应、不稳定,甚至可能最终导致内核崩溃。

内核提供了一些 sysctl 可调参数,可由 root 用户编辑,用于控制在何种情况下会触发内核崩溃。例如,在 x86_64 的 Ubuntu 20.04 系统上,可以通过以下命令查看相关参数:

$ cd /proc/sys/kernel/
$ ls panic_on_*
panic_on_io_nmi  panic_on_oops  panic_on_rcu_stall  panic_on_unrecovered_nmi  panic_on_warn

默认情况下,这些参数的值都为 0,意味着不会触发内核崩溃。但如果将 panic_on_oops 参数设置为 1,那么无论 Oops 看起来多么微不足道,内核都会崩溃。

2. 触发内核 Oops

以向空结构指针的成员写入数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值