Mengapa panggilan sistem UNIX kill bernama 'kill'?

41

Saya ingin tahu tentang sejarah nama itu, bagi saya sepertinya 'kill' system call bisa dinamai 'signal', dan system call 'signal' bisa dinamai 'handle'.

Saya bertanya-tanya apakah penggunaan asli dari panggilan sistem mungkin hanya untuk membunuh proses lain, dan penggunaannya mungkin diperluas ke mekanisme pengiriman sinyal yang lebih umum ketika sistem dikembangkan - tetapi ini adalah spekulasi di pihak saya.

Apakah ada yang tahu?

Neil Salter
sumber

Jawaban:

55

Memang, tujuan asli dari sinyal adalah untuk membunuh proses target. killmuncul di Unix 3rd Edition ; pada saat itu, itu dicadangkan untuk root dan prosesnya secara paksa dibunuh (seperti SIGKILL hari ini) dan meninggalkan tempat pembuangan inti.

Unix 4th edition menambahkan argumen nomor sinyal, serta signalpanggilan sistem pendamping untuk mengatur penangan sinyal. Pada saat itu, semua sinyal membunuh proses target kecuali proses target telah memanggil ignore.

Seiring waktu, semakin banyak sinyal yang muncul, beberapa di antaranya tidak mematikan proses target secara default. Namun nama itu tetap ada.

The komite POSIX diperdebatkan mengubah nama kill, karena ketika Anda perhatikan tidak semua sinyal yang ditujukan untuk mengakhiri proses target, tapi ini bercokol penggunaan sejarah pada saat itu, sehingga mengubah itu akan telah lebih membingungkan daripada tidak.

Gilles 'SANGAT berhenti menjadi jahat'
sumber