La fork bomb est un programme se dupliquant a l’infini. Si l’on prend en compte que le nombre de processus pouvant être exécutés simultanément sur un ordinateur est limité, vous comprendrez vite ou cela nous mène !
Comme je vous l’ai dit plus haut, Elle créé un grand nombre de processus très rapidement afin de saturer le nombre de processus maximum du système. Si la table des processus est saturée, aucun nouveau programme ne peut démarrer tant qu’aucun autre ne termine. Et encore, même si cela arrive, il est peu probable qu’un programme utile démarre étant donné que les instances de la bombe attendent chacune d’occuper cet emplacement libre. Bref, la misère.
Non seulement les fork bombs utilisent de la place dans la table des processus, mais elles utilisent chacune du temps processeur et de la mémoire. En conséquence, le système et les programmes tournant à ce moment-là ralentissent et deviennent même impossibles à utiliser. Pour peut que les processus lancés soit un peut gourmand en mémoire, le système peut rapidement swapper et occuper toute la mémoire virtuelle (SWAP). Les fork bomb peuvent donc être considérées comme des virus non destructifs… Bien que énervants.
En Perl:
1 | perl -e "fork while fork" & |
en Bash :
1 | $ :(){ :|:& };: |
Via .Bat, ms-dos:
1 2 3 | :s start notepad.exe goto s |
En C:
1 2 3 4 5 6 7 | #include <unistd.h> int main(void) { while(1) { fork(); } return 0; } |
En HTML:
forkbomb.htm:
1 2 3 4 5 6 | < html> < frameset> < frame src="forkbomb.htm" name="ForkB1"> < frame src="forkbomb.htm" name="ForkB2"> < /frameset> < /html> |
Une fois la fork bomb lancée avec succès dans un système, il peut devenir impossible de retrouver un fonctionnement normal sans redémarrer, étant donné que la seule solution à une fork bomb est de détruire toutes ses instances. Essayer d’utiliser un programme pour tuer les processus requiert la création d’un processus, ce qui peut être impossible s’il n’y a pas d’emplacement vide dans la table des processus, ou d’espace dans les structures mémoires.
La fork bomb fonctionne en créant autant de processus que possible. Ainsi, pour empêcher une fork bomb, il suffit simplement de limiter le nombre de processus pouvant être exécutés par un programme ou par un utilisateur. En permettant aux utilisateurs de lancer seulement un petit nombre de processus.
J’aborderais uniquement la solution sous linux, sachant que je ne connais que celle la. :)
Les systèmes de type Unix permettent de limiter le nombre de processus via la commande ulimit.



Non mais je rêve ? C’est quasiment un copier-coller de wikipedia !
@Tuxologue: Franchement, tu as vu la date de l’article ? Sur Wikipedia, l’article date de 2009..