เหตุใดการเรียกระบบ kill ของ UNIX จึงเรียกว่า 'kill'


41

ฉันอยากรู้เกี่ยวกับประวัติของชื่อดูเหมือนว่าการเรียกระบบ 'ฆ่า' อาจมีชื่อว่า 'สัญญาณ' และการเรียกของระบบ 'สัญญาณ' อาจถูกตั้งชื่อว่า 'จัดการ'

ฉันสงสัยว่าการใช้การเรียกใช้ระบบดั้งเดิมอาจเป็นเพียงการฆ่ากระบวนการอื่นและการใช้งานอาจขยายไปสู่กลไกการส่งสัญญาณทั่วไปมากขึ้นตามที่ระบบพัฒนาขึ้น - แต่นี่เป็นการคาดเดาในส่วนของฉัน

มีใครรู้บ้าง

คำตอบ:


55

อันที่จริงวัตถุประสงค์ดั้งเดิมของสัญญาณคือการฆ่ากระบวนการเป้าหมาย killปรากฏในUnix รุ่นที่ 3 ; ในเวลานั้นมันถูกสงวนไว้เพื่อรูทและกระบวนการถูกบังคับให้ฆ่า (เช่น SIGKILL วันนี้) และทิ้งดัมพ์หลัก

รุ่น Unix ที่ 4เพิ่มอาร์กิวเมนต์หมายเลขสัญญาณเช่นเดียวกับการsignalเรียกระบบสหายเพื่อตั้งตัวจัดการสัญญาณ ในขณะนั้นสัญญาณทั้งหมดจะฆ่ากระบวนการเป้าหมายเว้นแต่กระบวนการเป้าหมายได้เรียกignoreใช้

เมื่อเวลาผ่านไปมีสัญญาณมากขึ้นเรื่อย ๆ ซึ่งบางส่วนไม่ได้ฆ่ากระบวนการเป้าหมายตามค่าเริ่มต้น แต่ชื่อยังคงอยู่

คณะกรรมการ POSIXถกเถียงกันเปลี่ยนชื่อkillเพราะในขณะที่คุณไม่ทราบสัญญาณทั้งหมดมีวัตถุประสงค์เพื่อยุติกระบวนการเป้าหมาย แต่ถูกยึดที่มั่นการใช้งานทางประวัติศาสตร์โดยจุดนั้นเพื่อให้การเปลี่ยนแปลงก็จะได้รับมากขึ้นกว่าไม่ทำให้เกิดความสับสน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.