Pourquoi l'appel système UNIX kill s'appelle-t-il 'kill'?

41

Je suis curieux de l’histoire de ce nom, il me semble que l’appel système "kill" aurait pu s'appeler "signal" et que l’appel système "signal" aurait pu s'appeler "handle".

Je me demandais si l'utilisation initiale de l'appel système avait pu être simplement utilisée pour tuer un autre processus. Son utilisation a peut-être été élargie à un mécanisme d'envoi de signaux plus général au fur et à mesure que le système se développait - mais ceci est une spéculation de ma part.

Est-ce que quelqu'un sait?

Neil Salter
la source

Réponses:

55

En effet, le but initial d'un signal était de tuer le processus cible. killest apparu dans Unix 3rd Edition ; à l'époque, il était réservé à root et le processus a été tué de force (comme SIGKILL aujourd'hui) et a laissé un dépotoir central.

Unix 4th edition a ajouté un argument de numéro de signal, ainsi que l' signalappel système associé pour définir un gestionnaire de signaux. À ce moment-là, tous les signaux ont tué le processus cible à moins que celui-ci ne l'ait appelé ignore.

Au fil du temps, de plus en plus de signaux sont apparus, dont quelques-uns n'ont pas tué le processus cible par défaut. Mais le nom est resté.

Le comité POSIX a débattu du changement de nom killcar, comme vous le constatez, tous les signaux ne sont pas destinés à mettre fin au processus cible, mais il s'agissait déjà d'un usage historique enraciné. Par conséquent, le changer aurait été plus déroutant.

Gilles, arrête de faire le mal
la source