So, it uses the fact that bash allows functions with non-alphanumeric names, in this case it defines a function called :. If we rename that to, for example bomb it becomes a little clearer:
bomb(){ bomb | bomb& };bomb
This defines a function that calls itself piped into a version of itself in a separate, background, process (that’s what the & does) and then calls that function. Calling itself means the function never ends (it’s essentially a recursive version of an infinite loop) and the extra background process that is created each time it’s called means that it just keeps exponentially creating new processes that don’t exit and each of which infinitely forks off more processes until the OS runs out of resources (unless you use ulimit to set per-session/per-user process limits - this may even be done by default on some distros these days, it’s been a while since I looked)
Thank you, this is the first time I’ve ever actually seen the fork bomb described in a way that makes sense. I knew what it did but I didn’t understand how the input string caused it, it was effectively just a magic rune of crashing to me. This is a great explanation.
Can you explain for us casuals?
So, it uses the fact that bash allows functions with non-alphanumeric names, in this case it defines a function called
:. If we rename that to, for examplebombit becomes a little clearer:bomb(){ bomb | bomb& };bombThis defines a function that calls itself piped into a version of itself in a separate, background, process (that’s what the
&does) and then calls that function. Calling itself means the function never ends (it’s essentially a recursive version of an infinite loop) and the extra background process that is created each time it’s called means that it just keeps exponentially creating new processes that don’t exit and each of which infinitely forks off more processes until the OS runs out of resources (unless you useulimitto set per-session/per-user process limits - this may even be done by default on some distros these days, it’s been a while since I looked)Thank you, this is the first time I’ve ever actually seen the fork bomb described in a way that makes sense. I knew what it did but I didn’t understand how the input string caused it, it was effectively just a magic rune of crashing to me. This is a great explanation.
So does it actually hurt anything?
Worse case you just gotta reboot your PC.
It might freeze up your computer.
Casual here ,
It is a process that copies and splits itself until all the computer’s processing power is used up, causing it to crash.
Test it at your own risk
Usually, you can restart without problems afterwards .
I did this 10 years ago on a Mint computer.
This is the fun part of your journey with Linux , you are the boss of your computer.