Mengapa diputuskan untuk memanggil kill
perintah "bunuh"?
Maksud saya, ya, utilitas ini sering digunakan untuk mengakhiri proses, tetapi sebenarnya dapat digunakan untuk mengirim sinyal apa pun.
Bukankah ini sedikit membingungkan? Mungkin ada beberapa alasan historis.
Yang saya tahu dari man kill
itu perintah ini muncul di Versi 3 AT&T UNIX.
terminology
history
unix
shabunc
sumber
sumber
cd
dulu dipanggilchdir
, yang pasti gila! 5 karakter untuk operasi yang umum? Saya tahu orang-orang yang aliasls
kel
;-)assassinate
setiap kali mereka menggunakannyaJawaban:
Awalnya,
kill
perintah hanya bisa mematikan proses, hanya kemudiankill
ditingkatkan untuk memungkinkan Anda mengirim sinyal apa pun.Sejak versi 7 dari Unix (1979) standarnya adalah untuk memberi sinyal proses dengan cara yang dapat ditangkap dan ditangani dengan baik atau diabaikan (dengan mengirimkan sinyal SIGTERM ), tetapi juga dapat digunakan untuk menarik karpet keluar dari bawah sebuah proses (a
kill -9
mengirimkan sinyal SIGKILL yang tidak dapat ditangkap dan karenanya tidak dapat diabaikan).Latar Belakang
Komputasi, dan Unix khususnya, penuh dengan metafora.
Metafora utama untuk proses adalah dari makhluk hidup yang lahir, hidup dan mati.
Di Unix semua proses kecuali init memiliki orang tua , dan setiap proses yang menumbuhkan proses lain memiliki anak . Proses dapat menjadi yatim (jika orang tua mereka meninggal) dan bahkan dapat menjadi zombie , jika mereka berkeliaran setelah kematian mereka.
Dengan demikian,
kill
perintah ini cocok dengan metafora ini.Unix Archaeology
Dari halaman manual dari versi 4 Unix (versi di mana
kill
diperkenalkan, bersama denganps
) kami menemukan:Saya terutama menyukai bagian terakhir dari halaman manual ini:
Pada saat edisi kelima tiba,
kill
perintah sudah kelebihan beban untuk memungkinkan sinyal dikirim.Dari Manual Programmer Unix, Edisi Kelima (hal. 70):
Defaultnya adalah mengirim sinyal 9, karena sinyal 15 belum ada (lihat hal. 150).
Dengan versi 6 yang
kill
halaman manual tidak lagi menyebutkan mesin tik yang sama bug.Hanya dengan versi 7 dari Unix sinyal 15 diperkenalkan (lihat lihat sinyal (2) dan bunuh (1) halaman manual untuk v7) dan
kill
beralih ke itu daripada menggunakan sinyal 9.sumber
Ini adalah Unix.
kill
tidak dapat mematikan proses.mv
dapat mengubah nama dan tidak hanya memindahkan file dari satu tempat ke tempat lain.touch
mampu membuat file dan tidak hanya mengubah waktu modifikasi terakhirnya.od
berarti Dump Octal, tetapi mampu melakukan lebih banyak jenis kesedihan.yes
dapat menghasilkan no.Lebih eksotis:
grep
diberi nama setelahed
perintah yang melakukan operasi yang sama:g/re/p
awk
dinamai menurut penulisnya: Aho, Weinberger dan Kernighan.yacc
berarti kompiler lagi. Perhatikan itubison
adalah GNU yacc.sumber
Unix version 7 kill menyatakan halaman manual :
dan
Tidak ada alasan untuk tidak memanggil perintah kill yang tentu saja merupakan metafora terbaik yang ada.
sumber