I have a very fragmentary understanding of shells, subshells, functions, background processes and therefore I am insecure in understanding how this fork bomb works in detail,
However I tell you how what I know:
- :() Here the colon is simply an unusually looking function name
- {...} Here is described what the function is doing
- {:()} Here the function calls the next iteration of itself
- {:()&} Here the function calls itself and puts the next iteration of itself into the background of the shell
- ...;: The last colon is the starting point of the function's actual execution, what is before is just its definition
So, my basic understanding is, it is a recursive function, which works like a spawning machine, spawning copies of itself until the point the system can not proliferate social wellfare anymore.
But, I do not really understand in a visually way what is happening step by step.
For instance
- :()|:()& Why are both function callings combined through a pipe symbol?
- Is the fork bomb spawning in a linear fashion, a constant number of processes per time unit or is it more abombically exponential like the two function calls suggest.
Could some one provide additionally a visual step by step comic strip of the spawning process, no matter how sloppy?