web-development-kb-pt.site

O que é um "kernel pânico"?

O que significa quando seu computador tem um "Kernel Panic" ?

Ele equivale ao Windows BSOD ?

Além disso, quais métodos, dicas, truques estão disponíveis para o usuário quando A Kernel Panic Strikes?

19
Stefan

O kernel Panic é o mesmo que o BSOD e o IIRC não resgenável. No entanto, o fracasso menor é oops que denota algum erro no kernel.

  1. Você pode usar kexec que muda para o novo kernel no pânico (você pode ameaçar como reinicialização rápida) - possivelmente ficando significativo despejo do sistema para depurar o problema
  2. Você pode usar panic parâmetro que reinicia o kernel após n segundos. Você pode instruir GRUB para mudar para o kernel de fallback em tal caso
  3. Use Magic Sysrq Keys para imprimir traços de pilha etc.
16
Maciej Piechotka

Um pânico do kernel do Linux é uma chamada sub-rotina que o kernel executa quando a lógica do kernel determina que existe uma condição que faz a execução continuada da lógica normal impossível ou irresponsável.

O kernel pode chamar um pânico quando:

  1. Ele detecta um erro de software no código ou pilha do kernel
  2. Quando há uma condição de tempo de execução, como fora de memória sem processos kitable
  3. Uma exceção da CPU durante a execução do modo privilegiado resulta em uma condição do OSOPS

Há cerca de 950 condições distintas onde um pânico é chamado nos kernels 3.x. O Panic SubRoutine primeiro imprime a despejo de pilha de kernel e os registros da CPU para o console. Em seguida, se um kexec kexec kernel for configurado, ele inicializa o kexec kernel. Caso contrário, a rotina de pânico bustos todos os spinlocks e realiza uma reinicialização de emergência.

Um oops é uma sub-rotina chamada de um manipulador de exceção da CPU para uma exceção da CPU que ocorre durante a execução no modo privilegiado (i.E kernel). A exceção pode ocorrer como resultado de um erro no código do kernel ou devido a uma falha de hardware ou como resultado de uma condição externa que causa uma exceção específica. O manipulador para a exceção imprime um log do kernel com registros de CPU e lista de módulos. Ao contrário das chamadas do pânico, a lógica do kernel em si nunca chama um oops fora do contexto dos manipuladores de exceção da CPU.

Se o kernel estiver configurado para o KEXEC, então um OSOPS resultará no kexec kernel sendo inicializado. Caso contrário, se a exceção ocorrer durante a execução de um manipulador de interrupção, o OSOPs resultará em uma chamada de pânico do kernel. Caso contrário, se o kernel estiver configurado com "Panic On Oops", o OSOPS resultará em uma chamada de pânico. Caso contrário, o kernel sai do manipulador de exceção e retoma a execução. Quando o kernel sai do manipulador de exceção e retoma a execução, a integridade do kernel é suspeita.

Os manipuladores de exceção da CPU são específicos de arquitetura. Eles geralmente são implementados em Arch/*/Kernel/Traps.c e definidos no código de entrada do kernel específico da arquitetura que configura a tabela de interrupção. Veja por exemplo Arch/powerpc/kernel/traps.c e Arch/powerpc/kernel/head_fsl_booke.S.

Ambos os kernel Panic e Oops As condições podem ser configuradas para chamar um kmsg_dump rotina que você pode usar para salvar informações de depuração de falha na RAM, ou para a memória flash, a menos que o OSOP tenha ocorrido no contexto de interrupção, caso em que a rotina "kmsg_dump" só pode ser usada para salvar na RAM, não para MTD. Ao salvar a RAM, é a sua responsabilidade a) garantir que o RAM área usada não seja sobrescrita durante o kexec boot ou reinício de emergência inicialização e B) para colher a área de memória do kexec kernel ou da lógica do carregador de inicialização.

6
Jonathan Ben-Avraham

É o comportamento de fluxo de programa inesperado (kernel é um programa neste caso). Em caso de programa de pânico parar de funcionar. It IS igual ao Windows BSOD. KP significa algo errado com kernel ou módulos. Se é um kernel estável - olhe para os motoristas. Se nada de especial e todos os motoristas forem comuns, poderá ser um problema de hardware.

5
Dmytro Leonenko