Ostatnio kopałem informacje o procesach w GNU / Linux i spotkałem niesławną bombę widelcową:
:(){ : | :& }; :
Teoretycznie ma się powielać w nieskończoność, dopóki systemowi nie zabraknie zasobów ...
Jednak próbowałem przetestować zarówno Debian CLI, jak i dystrybucję GUI Mint i wydaje się, że nie ma to większego wpływu na system. Tak, powstaje mnóstwo procesów, a po chwili czytam w komunikatach konsoli, takich jak:
bash: fork: zasób tymczasowo niedostępny
bash: fork: retry: Brak procesów potomnych
Ale po pewnym czasie wszystkie procesy po prostu giną i wszystko wraca do normy. Czytałem, że ulimit ustawił maksymalną liczbę procesów na użytkownika, ale nie wydaje mi się, żeby być w stanie podnieść go naprawdę daleko.
Jakie są zabezpieczenia systemu przed bombą widełkową? Dlaczego się nie powiela, dopóki wszystko się nie zawiesi lub przynajmniej nie zostanie zbyt długo opóźnione? Czy istnieje sposób na naprawdę rozbicie systemu za pomocą bomby widelcowej?
:(){ :& :; }; :
zamiast tego pobiegniesz ? Czy oni też ostatecznie zostaną zabici? Co :(){ while :& do :& done; }; :
?