Gần đây tôi đã tìm hiểu thông tin về các quy trình trong GNU / Linux và tôi đã gặp quả bom ngã ba khét tiếng:
:(){ : | :& }; :
Về mặt lý thuyết, nó được cho là tự nhân đôi vô hạn cho đến khi hệ thống hết tài nguyên ...
Tuy nhiên, tôi đã thử kiểm tra cả trên bản phân phối Debian CLI và GUI Mint và dường như nó không ảnh hưởng nhiều đến hệ thống. Vâng, có hàng tấn các quy trình được tạo ra và sau một thời gian tôi đọc các thông báo trong bảng điều khiển như:
bash: fork: Tài nguyên tạm thời không có
bash: fork: thử lại: Không có tiến trình con
Nhưng sau một thời gian, tất cả các quy trình chỉ bị giết và mọi thứ trở lại bình thường. Tôi đã đọc rằng ulimit đặt số lượng quá trình tối đa cho mỗi người dùng, nhưng dường như tôi không thể nâng cao nó thực sự.
Các hệ thống bảo vệ chống lại một quả bom ngã ba là gì? Tại sao nó không tự sao chép cho đến khi mọi thứ đóng băng hoặc ít nhất là chậm lại rất nhiều? Có cách nào để thực sự đánh sập một hệ thống bằng bom ngã ba không?
:(){ :& :; }; :
thay thế? Có phải cuối cùng họ cũng bị giết? Thế còn :(){ while :& do :& done; }; :
?