Kernel Panic

Publicado: 26/08/2008 em Sistemas Operacionais

Uma dos argumentos que eu mais usava na época da faculdade contra o pessoal cego pelo código fonte aberto era: "Quantas pessoas vocês conhecem que podem ler o código fonte de um sistema operacional, entendê-lo e alterar alguma coisa se necessário?".
Outro dia me disseram que eu estava mudado, justamente porque eu atualmente estou estudando Sistemas Operacionais e adivinhem, estou me enquadrando e me beneficiando de sistemas operacionais de código-fonte aberto para os estudos 😀 heheheh

Eu lembro também que na época da faculdade, de certa forma, eu ignorava alguns livros passados pelos professores, dentre eles o que estou atualmente lendo e gostando muito:

21364106_4

Sistemas Operacionais: Projeto e Implementação, livro de ALBERT S. WOODHULL   e ANDREW S. TANENBAUM  
http://www.submarino.com.br/books_productdetails.asp?Query=ProductPage&ProdTypeId=1&ProdId=21364106&ST=SR

O livro aborda a arquitetura dos sistemas operacionais e usa o Minix3 www.minix3.org  como base para os estudos. Um CD acompanha o livro e este traz o código fonte do sistema operaciona, e também a instalção e uma versão live, e realmente funciona muito bem!

Sinceramente? Eu deveria ter lido este livro no terceiro ano e aproveitado, mas acredito que não era o momento… mas agora é!

Pois bem, durante esta leitura ja encontrei muitos ítens interessantes e pretendo mostrar sempre pontos de implementação do SO aqui no blog… pra começar eu estava dando uma olhada hoje no fonte do arquivo utitlity.c e encontrei uma função muito interessante, a Kernel Panic!

Todo mundo já ouviu falar da Tela Azul do Windows certo? Em linhas gerais ela acontece quando uma exceção grave acontece no Sistema Operacional, a niver de Kernel mesmo, hoje este tipo de exceção diminuiu muito, porém já presenciei o driver da minha plata ATI estourando o Windows Vista 😦

Para quem já trabalhou com Linux e afins já deve ter se deparado com o parente X da tela azul o Kernel Panic!
Que também trata de uma excepção crítica no nível do Kernel… para descontrair e matar um pouco a curiosidade vamos dar uma olhada na função panic do Minix, que é a saída para estas exceções críticas

/*===========================================================================*
*                panic                                        *
*===========================================================================*/
PUBLIC void panic(mess,nr)
_CONST char *mess;
int nr;
{
/* The system has run aground of a fatal kernel error. Terminate execution. */
  static int panicking = 0;
  if (panicking ++) return;        /* prevent recursive panics */

  if (mess != NULL) {
    kprintf("nKernel panic: %s", mess);
    if (nr != NO_NUM) kprintf(" %d", nr);
    kprintf("n",NO_NUM);
  }

  /* Abort MINIX. */
  prepare_shutdown(RBT_PANIC);
}

Basicamente esta função é invocada quando acontece o pânico no Kernel e ela simplesmente cuida para que não aconteça um pânico recursivo generalizado (ehehehe), exibe uma mensagem de Kernel Panic na tela e invoca o shutdown do sistema operacional!! WOW!

Essa foi pra começar com chave de ouro! eeheheh Vamos falar mais de sistemas operacionais estudando o fonte do Minix, porém o meu desejo mesmo era ver o código fonte do Windows e comparar as implementação, ver onde a Microsoft acerta mais que os Unix based acertam mais! É um mundo fabuloso!

Divirtam-se!!!!

[]’s
Shinji

comentários
  1. Juliano disse:

    Fala Shinji meu brother,Tem aquele programa acadêmico (Microsoft Shared Source) que permite a visualização do código fonte do Windows, será que não rola da sua faculdade aderir?No site tem um link pra download de uma versão que eu acho que irá lhe atender: http://www.academicresourcecenter.net/curriculum/pfv.aspx?ID=7366

  2. Murilo disse:

    entaaaaaaaaaaao…. pena que eu já me formei em 2006 eheheheh 😀
     
    Cara este link ae me deixou com água na boca eheh Valeu!

  3. Rafael disse:

     
    hehehehe, se rendeu as maravilhas dos sistemas operacionais!
     
    Tem muita coisa legal neste livro do Tanenbaum, foi livro de cabiceira na faculdade, mas do MINIX pro LINUX tem muitas mudanças, uma delas é na invocação do erro "kernel panic" ocasionado geralmente por problemas de file system mas pode ocorrer por problemas de hardware, driver ou alocação de memoria errada. Se não me engano a chamada do panic() esta em sys/system.h
     
    Cara mas pra ser sincero, peguei uma vez um erro de kernel panic em 11 anos de utilização do UNIX 😀 fazer o que até os melhores tem problemas
    hehehe
     

  4. Murilo disse:

    Com certeza o linux tem muito mais recursos que o minix, afinalo kernel do minix 3 tem menos de 4000 linhas, quero dar uma olhada no source dele mais pra frente pra ver onde estao as melhorias e ver se concordo com elas, e ver até onde o linus chupiscou o minix heheheheheheEu peguei várias vezes o KP, geralmente eram problemas relacionado à hardware 😀 mas era no LinuxQuanto mais falo disso mais quero ver o source do Wndows!!!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s