Oops
Quem disse que o Linux não trava ?? Que atire a primeira pedra quem nunca viu ao menos um kernel panic na tela ? Pois bem, quando um erro grave ocorre no sistema, entre outras coisas que o kernel faz uma delas é exibir no terminal e/ou sistema de log, uma mensagem bastante conhecida por quem já passou por isso, a famosa mensagem de Oops. Trata-se de um dump do estado do CPU e da pillha do Kernel no momento em que o problema ocorreu. A mensagem de Oops mais conhecida é a que vem acompanhada de um kernel panic. Muitos ao se deparar com isso, percebem que nada funciona (na maioria dos casos), Ctrl+Alt+Backspace, teclas de função, e nem água, ai, simplesmente reiniciam a máquina, podendo causar ainda mais problemas.
Abaixo um exemplo de uma mensagem de Oops:
Unable to handle kernel paging request at virtual address 00010015
printing eip:
c01e6608
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[usb_unlink_urb+8/64] Tainted: P
EFLAGS: 00010202
eax: 00010001 ebx: d70c6494 ecx: c7c81000 edx: 00010001
esi: c7c81640 edi: d70c6400 ebp: d70c64f0 esp: d2daded0
ds: 0018 es: 0018 ss: 0018
Process kpilotDaemon (pid: 30778, stackpage=d2dad000)
Stack: d892a2ed 00010001 d70c6494 d70c6400 d3df51c0 00000000 d8924350 d70c6494
d3df51c0 d725a000 cc5faa40 c16063c0 c018c460 d725a000 d3df51c0 d3df51c0
cc5faa40 c16063c0 c8117e40 00000001 d3df51c0 bffff0e8 00000000 00000000
Call Trace: [] [] [release_dev+576/1280]
[n_tty_ioctl+257/1200] [tty_release+10/16]
[fput+76/224] [filp_close+92/112] [sys_close+67/96] [system_call+51/56]
Code: 8b 42 14 85 c0 74 21 8b 80 bc 00 00 00 85 c0 74 17 8b 40 18
Esta mensagem pode ajudar aos desenvolvedores do kernel a depurar melhor o problema, e mesmo que você não reporte o bug, você pode se utilizar de um recurso que foi desenvolvido pensando nisto: As Magic SysRq Keys.
Trata-se de uma combinação de teclas que é utilizada para comunicar-se com o kernel do Linux, caso a opção CONFIG_MAGIC_SYSRQ tiver sido habilitada durante a compilação do kernel, ou em /proc/sys/kernel/sysrq.
Basta apertar Alt+PrintScreen+Tecla e a saída (dependendo da tecla) é enviada para o dmesg. Abaixo apenas algumas teclas:
| Tecla | Descrição |
| t | Lista de tarefas/processos com suas informações detalhadas |
| u | Remonta todas as partições montadas, só que em read-only |
| m | Mostra informações sobre o estado atual da memória |
| e | Envia um sinal do tipo SIGTERM para todos os processos, exceto para o init |
Existe a famosa combinação: Alt+PrintScreen+R E I S U B, onde basicamente mata todos os processos, sincroniza os discos, remonta todas os filesystems montados em read-only, e só então reinicia a máquina. Por tanto, antes de "meter o dedão" no botão de power, REISUB.


















5 Comments, Comment or Ping
Karlisson
Um dia, eu sei que serei capaz de fazer tudo isso que estou vendo…
Sep 25th, 2007
Israel Junior
Fala caraaa uahauhua
Ficou bebendo até as 4h30 né? Velho, gostei muito da tua palestra… o KIDS é um puta projeto. Tenho vontade de participar e ajudar em algo só que odeio programar em C :/ será que existe algo em que eu possa ajudar?
A propósito, to te adicionando no meu blogroll.
Um abração!
Oct 3rd, 2007
Beraldo Leal
Olá Israel, que bom que gostou
Estarei fazendo o commit na árvore cvs do projeto nos próximos dias. Ai você poderá ajudar de várias formas, seja documentando, seja usando ou reportando bugs…
De qualquer forma.. você ficará informado! E obrigado.
Oct 3rd, 2007
Carlos Felipe
Puts.. muito show… valeu pela dica.
[]’s
Oct 11th, 2007
Igor Freire
Parabens pelo artigo cara, show de bola.. ja estava perdendo meus cabelos pra desenrolar esse Oops..vou testar assim que possivel, valew!
=)
Nov 13th, 2007
Reply to “Oops”