@mikeh: stoute jongen, forkloopjes posten hier :)
nog ff en hij doet dd if=/dev/zero of=/dev/sda \o/
Afdrukvoorbeeld
@mikeh: stoute jongen, forkloopjes posten hier :)
nog ff en hij doet dd if=/dev/zero of=/dev/sda \o/
Ik zit nu niet op IRC, maar denk dat ik me met Mike in de deuk zou liggen. Grappig dat mensen dit inderdaad gaan proberen. De exacte werking was mij ook bekend, maar zal al wel een leuke loop. Lekker honderden processen per seconde forken.
De snelste manier misschien, zeker niet de beste :p
Aangezien niemand het wil uitleggen aan de rest:
het bestaat uit twee delen, gescheiden door een punt-komma:
Deel 1
Vervang even de ':' door foo, en voeg wat enters toe, en je krijgt:Code::() {:|:&}
Je defineert dus een "functie", met de naam "foo" (correctie, met de naam ":", wat mag). In die functie roep je jezelf twee keer op (foo pipe foo), en ga je dit naar de achtergrond sturen (&). Hiermee dupliceer je (^2 factor neem ik aan, ) en fork je...Code:foo()
{
foo|foo &
}
Deel twee voert de functie het gewoon uit.
Op zich niet vreemd dat weinig mensen snappen wat er gebeurt, de ':' zorgt voor wat verwarring, en zolang je niets weet over functies in de shell, kan je de functie van bovenstaande code niet weten...
Bovenstaande is een bash functie en al zo oud als methusalem.
HIERRRRRRRRRRR meer informatie
Q. Can you explain following bash code or bash fork() bomb?
A. This is a bash function. It gets called recursively (recursive function). This is most horrible code for any Unix / Linux box. It is often used by sys admin to test user processes limitations (Linux process limits can be configured via /etc/security/limits.conf and PAM).Code::(){ :|:& };:
Once a successful fork bomb has been activated in a system it may not be possible to resume normal operation without rebooting, as the only solution to a fork bomb is to destroy all instances of it.
En je kunt je er tegen wapenen door in de /etc/security/limits.conf het volgende op te nemen:
Dit limiteert het aantal processen dat iedereen mag hebben, waarna het forken vanzelf stopt. Slimmer is om geen * te gebruiken, maar een username. Of iets als "ulimit -u 1000" in de /etc/profile.conf bijvoorbeeld.Code:* hard nproc 1000
lol, way to go mikeh!