Por que foi decidido chamar o kill
comando "matar"?
Quero dizer, sim, esse utilitário geralmente é usado para finalizar processos, mas na verdade pode ser usado para enviar qualquer sinal.
Não é um pouco confuso? Talvez haja algumas razões históricas.
Tudo o que sei é man kill
que esse comando apareceu na versão 3 da AT&T UNIX.
terminology
history
unix
shabunc
fonte
fonte
cd
costumava ser chamadochdir
, o que é definitivamente loucura! 5 caracteres para uma operação tão comum? Conheço pessoas que apelidols
paral
;-)assassinate
cada vez que o usouRespostas:
Originalmente, o
kill
comando só podia matar um processo, apenas mais tarde foikill
aprimorado para permitir o envio de qualquer sinal.Desde a versão 7 do Unix (1979), o padrão é sinalizar o processo de uma maneira que possa ser capturada e manipulada normalmente ou ignorada (enviando um sinal SIGTERM ), mas também pode ser usada para puxar o tapete de baixo para baixo. um processo (a
kill -9
envia um sinal SIGKILL que não pode ser capturado e, portanto, não pode ser ignorado).fundo
A computação, e o Unix em particular, é repleto de metáforas.
A principal metáfora dos processos é a de um ser vivo que nasce, vive e morre.
No Unix, todos os processos, exceto o init, têm pais , e qualquer processo que gera outros processos tem filhos . Os processos podem tornar-se órfãos (se seus pais morrerem) e podem até se tornar zumbis , se ficarem juntos após a morte.
Assim, o
kill
comando se encaixa nessa metáfora.Arqueologia Unix
Na página de manual da versão 4 do Unix (a versão em que
kill
foi apresentada, juntamente comps
), encontramos:Eu particularmente gosto da seção final desta página de manual:
Quando a quinta edição chegou, o
kill
comando já estava sobrecarregado para permitir que qualquer sinal fosse enviado.No Manual do Programador Unix, Quinta Edição (p70):
O padrão, porém, era enviar um sinal 9, pois o sinal 15 ainda não existia (consulte a página 150).
Com a versão 6, a
kill
página de manual não mencionava mais o mesmo bug da máquina de escrever .Foi apenas na versão 7 do Unix que o sinal 15 foi introduzido (consulte as páginas do manual do sinal (2) e kill (1) da v7) e
kill
mudou para isso em vez de usar o sinal 9.fonte
Este é o Unix.
kill
é capaz de não matar um processo.mv
é capaz de renomear e não apenas mover arquivos de um lugar para outro.touch
é capaz de criar um arquivo e não apenas alterar sua última hora de modificação.od
significa Octal Dump, mas é capaz de executar muitos outros tipos de dump.yes
é capaz de produzir não.Mais exótico:
grep
é nomeado após oed
comando que executa a mesma operação:g/re/p
awk
tem o nome de seus autores: Aho, Weinberger e Kernighan.yacc
significa ainda outro compilador. Note quebison
é o GNU yacc.fonte
A página 7 do Unix mata os estados da página de manual :
e
Não haveria razão para não chamar esse comando de matar, que é certamente a melhor metáfora disponível.
fonte