一、什么是内核oops?
Linux
内核在发生kernel panic
时会打印出Oops
信息,把目前的寄存器状态、堆栈内容、以及完整的Call trace
都show
给我们看,这样就可以帮助我们定位错误。
大部分错误都在于 NULL
指针的使用或其他不正确的指针值的使用上。这些错误通常会导致一个 oops
消息。
由处理器使用的地址都是虚拟地址,而且通过一个复杂的称为页表的结构映射为物理地址。
当引用一个非法指针时,页面映射机制就不能将地址映射到物理地址,此时处理器就会向操作系统发出一个“页面失效”的信号。
如果地址非法,内核就无法“换页”到并不存在的地址上。