เมื่อเร็ว ๆ นี้ฉันได้ขุดข้อมูลเกี่ยวกับกระบวนการใน GNU / Linux และฉันได้พบกับระเบิดที่น่าอับอาย:
:(){ : | :& }; :
ในทางทฤษฎีมันควรจะทำซ้ำตัวเองอย่างไม่มีที่สิ้นสุดจนกว่าระบบจะหมดทรัพยากร ...
อย่างไรก็ตามฉันได้ลองทดสอบทั้งในCLI DebianและGUI Mint distro และดูเหมือนว่าจะไม่ส่งผลกระทบต่อระบบมากนัก ใช่มีกระบวนการมากมายที่ถูกสร้างขึ้นและหลังจากนั้นไม่นานฉันก็อ่านในข้อความคอนโซลเช่น:
bash: fork: ทรัพยากรไม่สามารถใช้งานได้ชั่วคราว
bash: fork: ลองอีกครั้ง: ไม่มีกระบวนการลูก
แต่หลังจากเวลาผ่านไปกระบวนการทั้งหมดเพิ่งถูกฆ่าและทุกอย่างกลับสู่ปกติ ฉันได้อ่านว่าulimitตั้งค่าจำนวนสูงสุดของกระบวนการต่อผู้ใช้ แต่ฉันไม่สามารถยกมันได้ไกลนัก
ระบบป้องกันการระเบิดจากส้อมคืออะไร? ทำไมมันไม่ทำซ้ำตัวเองจนกว่าทุกอย่างจะหยุดหรืออย่างน้อยก็ล่าช้ามาก? มีวิธีที่จะทำให้ระบบพังด้วยส้อมระเบิดหรือไม่?
:(){ :& :; }; :
แทน ในที่สุดพวกเขาก็ถูกฆ่าตายด้วยหรือไม่? เกี่ยวกับ:(){ while :& do :& done; }; :
อะไร