Recentemente ho trovato informazioni sui processi in GNU / Linux e ho incontrato la famigerata bomba a forcella:
:(){ : | :& }; :
Teoricamente, dovrebbe duplicarsi all'infinito fino a quando il sistema esaurisce le risorse ...
Tuttavia, ho provato a testare sia su una CLI Debian che su una GUI Mint distro, e non sembra avere un grande impatto sul sistema. Sì, ci sono tonnellate di processi che vengono creati e dopo un po 'ho letto nei messaggi della console come:
bash: fork: risorsa temporaneamente non disponibile
bash: fork: retry: nessun processo figlio
Ma dopo qualche tempo, tutti i processi vengono uccisi e tutto torna alla normalità. Ho letto che ulimit ha impostato una quantità massima di processo per utente, ma non riesco a sollevarlo molto lontano.
Quali sono le protezioni del sistema contro una bomba a forcella? Perché non si replica da solo fino a quando tutto si blocca o almeno resta molto indietro? C'è un modo per far davvero schiantare un sistema con una bomba a forcella?
:(){ :& :; }; :
invece? Alla fine finiscono anche per essere uccisi tutti? Che dire :(){ while :& do :& done; }; :
?