Logue no seu Linux preferido e digite o seguinte comando:
:(){ :|:& };:
Surpreso com o que aconteceu ? eu também :D
Analizando o comando temos:
:|: ele coloca algo em Loop, mas o que, não tenho nem idéia.
Alguém pode me dar solução disso ? A bomba tá na tua mão Eri
UPDATE 1:
Até agora o descoberto foi:
Em bash trava na hora
Em openbsd com /bin/sh nao faz absolutamente nada
Em openbsd com /bin/bash ele tenta dar fork nos processos mas os sistema barra
Aparenta ser algum limite do sistema que no bsd vem configurado e no linux vem totalmente sem limites
UPDATE 2:
Meu camarada, Lucas "Desenhado" Fontes falou algumas coisas que dão uma ajudinha
:(){ } == cria a função :
:|: & == ja imagina né... chama a própria função 2x em background
o : no final chama a funçao 1 vez. Só para começar o regaço.....
roda isso q acho q explica melhor
:(){ echo bla; } ; :
UPDATE 3:
É o famoso "shell fork bomb"
Se você ler com /bastante/ calma vai entender que ele fica criando uma seqüência de sub-shells infinitamente.
É basicamente um loop infinito de forks de shell.
Numa máquina sem nenhum ulimit setado, ou algum outro meio de impedir forks psicopatas, o kernel eventualmente começa a rodar o "OOM killer" nos processos, mas nessa hora a máquina já está inutilizável porque a fila de inicialização de processos já vai estar entupida e ele provavelmente vai estar swapando bem forte, pra piorar.
Analizando o comando temos:
& envia pra background
{} ele entende que é algo para ser executado:|: ele coloca algo em Loop, mas o que, não tenho nem idéia.
Alguém pode me dar solução disso ? A bomba tá na tua mão Eri
UPDATE 1:
Até agora o descoberto foi:
Em bash trava na hora
Em openbsd com /bin/sh nao faz absolutamente nada
Em openbsd com /bin/bash ele tenta dar fork nos processos mas os sistema barra
Aparenta ser algum limite do sistema que no bsd vem configurado e no linux vem totalmente sem limites
UPDATE 2:
Meu camarada, Lucas "Desenhado" Fontes falou algumas coisas que dão uma ajudinha
:(){ } == cria a função :
:|: & == ja imagina né... chama a própria função 2x em background
o : no final chama a funçao 1 vez. Só para começar o regaço.....
roda isso q acho q explica melhor
:(){ echo bla; } ; :
UPDATE 3:
É o famoso "shell fork bomb"
Se você ler com /bastante/ calma vai entender que ele fica criando uma seqüência de sub-shells infinitamente.
É basicamente um loop infinito de forks de shell.
Numa máquina sem nenhum ulimit setado, ou algum outro meio de impedir forks psicopatas, o kernel eventualmente começa a rodar o "OOM killer" nos processos, mas nessa hora a máquina já está inutilizável porque a fila de inicialização de processos já vai estar entupida e ele provavelmente vai estar swapando bem forte, pra piorar.
Comentários
[]'s
Eri
roda com ulimit no linux que vai acontecer a mesma coisa q acontece no bsd
BTW, se você rodar no cygwin o Windows cai.
O Solaris se comporta igual o BSD neste caso (me falaram, mas não testei).