UNIXシステムコールのkillが「kill」という名前になっているのはなぜですか?


41

私は名前の歴史に興味があり、「kill」システムコールは「signal」と名付けられ、「signal」システムコールは「handle」と名付けられたようです。

システムコールの元の使用は、単に別のプロセスを強制終了することであったのではないかと考え、システムの開発に合わせて、より一般的な信号送信メカニズムにその使用を広げたのかもしれませんが、これは私の推測です。

誰か知っている?

回答:


55

実際、シグナルの本来の目的は、ターゲットプロセスを強制終了することでした。Unix 3rd Editionにkill登場しました。当時、それはrootに予約されていて、プロセスは強制終了され(今日のSIGKILLのように)、コアダンプを残しました。

Unix第4版ではsignal、シグナルハンドラーを設定するためのコンパニオンシステムコールに加えて、シグナル番号の引数が追加されました。当時、ターゲットプロセスがを呼び出していない限り、すべてのシグナルがターゲットプロセスを強制終了しましたignore

時間がたつにつれて、ますます多くのシグナルが現れましたが、そのうちのいくつかはデフォルトでターゲットプロセスを殺しませんでした。しかし、名前は残った。

POSIX委員会は、名前変更議論killので、それはより多くのではないよりも混乱されていたであろう変更し、あなたが注意として、すべての信号がターゲットプロセスを終了することを意図しているが、これはそのポイントによって使用履歴を定着したではないので、。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.