Eu sei o que é um pânico no kernel, mas também vi o termo "kernel oops". Eu sempre pensei que eles eram iguais, mas talvez não. Assim:
O que é um kernel oops e como ele é diferente de um pânico no kernel?
fonte
Eu sei o que é um pânico no kernel, mas também vi o termo "kernel oops". Eu sempre pensei que eles eram iguais, mas talvez não. Assim:
O que é um kernel oops e como ele é diferente de um pânico no kernel?
Um " oops " é um problema do kernel Linux ruim o suficiente para afetar a confiabilidade do sistema.
Alguns "ops" são ruins o suficiente para que o kernel decida parar de executar imediatamente, para que não haja perda de dados ou outros danos. Estes são chamados de pânico do kernel .
O último termo é primordial, remonta às versões mais antigas dos antepassados Unix do Linux, que também imprimem uma mensagem de "pânico" no console quando elas acontecem. A função original do kernel da AT&T Unix que lida com essas condições é chamada panic()
. Você pode rastreá-lo através dos lançamentos de código-fonte público da AT&T Unix até seus primeiros lançamentos:
A versão do OpenSolarispanic()
foi lançada pela Sun em 2005 . É bastante elaborado, e seus comentários no cabeçalho explicam muito sobre o que acontece em uma situação de pânico.
A implementação do Unix V4panic()
foi lançada em 1973. Basicamente, apenas imprime o estado do núcleo do kernel no console e para o processador.
Essa função é substancialmente inalterada no Unix V3, de acordo com Amit Singh, que famosa dissecou uma versão mais antiga do Mac OS X e a explicou. Esse primeiro link leva você a um artigo adorável que explica a abordagem do macOS para a implementação do panic()
, que começa com uma discussão histórica relevante.
O projeto " unix-jun72 " para ressuscitar o Unix V1 das impressões de código-fonte digitalizadas mostra uma versão de montagem muito inicial do PDP-11 dessa função, escrita antes de junho de 1972, antes que o Unix fosse totalmente reescrito em C. Nesse ponto, sua implementação é reduzidos a uma rotina de 6 instruções que faz pouco mais do que reiniciar o PDP-11.
Um oops é um erro específico que o kernel encontra. Um Ops contém as seguintes informações:
Opa, é uma maneira de depurar o código do kernel, e existem utilitários para ajudá-lo. Um pânico no kernel significa que o sistema não pode se recuperar e deve ser reiniciado. No entanto, com um Ops, o sistema geralmente pode continuar. Você pode configurar o klogd e o syslogd para registrar mensagens Oops nos arquivos, em vez de excluir o std.
fonte