¿Por qué se decidió llamar al kill
comando "matar"?
Quiero decir, sí, esta utilidad a menudo se usa para terminar procesos, pero en realidad se puede usar para enviar cualquier señal.
¿No es un poco confuso? Tal vez hay algunas razones históricas.
Todo lo que sé es man kill
que este comando apareció en la Versión 3 de AT&T UNIX.
terminology
history
unix
shabunc
fuente
fuente
cd
solía llamarsechdir
, lo que definitivamente es una locura. ¿5 caracteres para una operación tan común? Conozco personas que aliasls
al
;-)assassinate
cada vez que lo usabanRespuestas:
Originalmente, el
kill
comando solo podía matar un proceso, solo más tarde sekill
mejoró para permitirle enviar cualquier señal.Desde la versión 7 de Unix (1979), el valor predeterminado ha sido señalar el proceso de una manera que se pueda atrapar y manejar con gracia o ignorar (enviando una señal SIGTERM ), pero también se puede usar para sacar la alfombra de debajo un proceso (a
kill -9
envía una señal SIGKILL que no se puede capturar y, por lo tanto, no se puede ignorar).Antecedentes
La informática, y Unix en particular, está plagada de metáforas.
La metáfora principal de los procesos es la de un ser vivo que nace, vive y muere.
En Unix, todos los procesos excepto init tienen padres , y cualquier proceso que genera otros procesos tiene hijos . Los procesos pueden quedar huérfanos (si sus padres mueren) e incluso pueden convertirse en zombis , si se quedan después de su muerte.
Por lo tanto, el
kill
comando encaja con esta metáfora.Arqueología de Unix
En la página del manual de la versión 4 de Unix (la versión donde
kill
se introdujo, junto conps
) encontramos:Me gusta especialmente la sección final de esta página de manual:
Cuando llegó la quinta edición, el
kill
comando ya se había sobrecargado para permitir que se enviara cualquier señal.Del Manual de Programadores de Unix, Quinta Edición (p70):
Sin embargo, el valor predeterminado era enviar una señal 9, ya que la señal 15 aún no existía (ver p150).
Con la versión 6, la
kill
página de manual ya no menciona la misma máquina de escribir error de .Fue solo con la versión 7 de Unix que se introdujo la señal 15 (consulte las páginas de manual de la señal (2) y kill (1) para v7) y se
kill
cambió a eso en lugar de usar la señal 9.fuente
Este es Unix.
kill
es capaz de no matar un proceso.mv
es capaz de cambiar el nombre y no solo mover archivos de un lugar a otro.touch
es capaz de crear un archivo y no solo cambiar su última hora de modificación.od
significa volcado octal, pero puede realizar muchos más tipos de volcados.yes
es capaz de dar salida no.Más exótico:
grep
lleva el nombre deled
comando que realiza la misma operación:g/re/p
awk
lleva el nombre de sus autores: Aho, Weinberger y Kernighan.yacc
significa otro compilador compilador. Tenga en cuenta quebison
es el GNU yacc.fuente
La página de manual de kill de Unix versión 7 dice:
y
No habría ningún motivo para no llamar a ese comando kill, que sin duda es la mejor metáfora disponible.
fuente