Pourquoi a-t-il été décidé d'appeler la kill
commande "tuer"?
Je veux dire, oui, cet utilitaire est souvent utilisé pour terminer les processus, mais il peut en fait être utilisé pour envoyer n'importe quel signal.
N'est-ce pas un peu déroutant? Il y a peut-être des raisons historiques.
Tout ce que je sais de man kill
cette commande est apparue dans la version 3 AT&T UNIX.
terminology
history
unix
shabunc
la source
la source
cd
on appelait autrefoischdir
, ce qui est définitivement de la folie! 5 caractères pour une opération aussi courante? Je connais des gens qui aliasls
àl
;-)assassinate
chaque fois qu'ils l'utilisaientRéponses:
À l'origine, la
kill
commande ne pouvait tuer qu'un processus, mais elle a étékill
améliorée ultérieurement pour vous permettre d'envoyer n'importe quel signal.Depuis la version 7 d'Unix (1979), la valeur par défaut a été de signaler le processus d'une manière qui peut être interceptée et gérée avec élégance ou ignorée (en envoyant un signal SIGTERM ), mais elle peut également être utilisée pour retirer le tapis de sous un processus (a
kill -9
envoie un signal SIGKILL qui ne peut pas être capturé et ne peut donc pas être ignoré).Contexte
L'informatique, et Unix en particulier, regorge de métaphores.
La métaphore principale des processus est celle d'un être vivant qui naît, vit et meurt.
Sous Unix, tous les processus sauf init ont des parents , et tout processus qui engendre d' autres processus a des enfants . Les processus peuvent devenir orphelins (si leur parent décède) et peuvent même devenir des zombies , s'ils traînent après leur mort.
Ainsi, la
kill
commande correspond à cette métaphore.Archéologie Unix
À partir de la page de manuel de la version 4 d'Unix (la version où a
kill
été introduite, avecps
), nous trouvons:J'aime particulièrement la dernière section de cette page de manuel:
Au moment de la cinquième édition, la
kill
commande avait déjà été surchargée pour permettre l'envoi de tout signal.Dans le manuel des programmeurs Unix, cinquième édition (p70):
La valeur par défaut était cependant d'envoyer un signal 9, car le signal 15 n'existait pas encore (voir p150).
Avec la version 6, la
kill
page de manuel ne mentionnait plus le même bogue de machine à écrire .Ce n'est qu'avec la version 7 d'Unix que le signal 15 a été introduit (voir les pages de manuel signal (2) et kill (1) pour v7) et est
kill
passé à cela plutôt que d'utiliser le signal 9.la source
C'est Unix.
kill
est capable de ne pas tuer un processus.mv
est capable de renommer et non seulement de déplacer des fichiers d'un endroit à un autre.touch
est capable de créer un fichier et non seulement de changer sa dernière heure de modification.od
signifie Octal Dump, mais est capable d'effectuer de nombreux autres types de vidages.yes
est capable de sortir non.Plus exotique:
grep
est nommé d'après laed
commande qui effectue la même opération:g/re/p
awk
porte le nom de ses auteurs: Aho, Weinberger et Kernighan.yacc
signifie encore un autre compilateur Compilateur. Notez quebison
c'est le GNU yacc.la source
La page de manuel d' Unix version 7 kill déclare:
et
Il n'y aurait aucune raison de ne pas appeler cette commande kill qui est certainement la meilleure métaphore disponible.
la source