UNIXシステムコールKillを「kill」と呼ぶのはなぜですか?

UNIXシステムコールKillを「kill」と呼ぶのはなぜですか?

名前の由来が気になります。 「kill」システムコールを「signal」と命名し、「signal」システムコールを「handle」と命名できたようです。

システムコールの元の用途が他のプロセスを終了するだけであるか、システムが開発されるにつれて、その使用がより一般的なシグナリングメカニズムに拡張された可能性があるかどうか疑問に思います。しかし、それは私の推測だけです。

知っている人はいますか?

ベストアンサー1

実際、信号の元の目的は、ターゲットプロセスを終了することです。kill現れるUnixバージョン3;当時はルート用に予約されており、プロセスが強制終了し(現在SIGKILLのように)、コアダンプが残っていました。

Unix バージョン 4シグナル番号パラメータとコンパニオンを追加しました。signalシグナルハンドラを設定するシステムコールです。この時点で、ターゲットプロセスが呼び出さない限り、すべての信号はターゲットプロセスを終了しますignore

時間が経つにつれて、ますます多くの信号が表示され、その一部はデフォルトでターゲットプロセスを終了しません。しかし、名前は残ります。

これPOSIX委員会名前変更の議論の余地killがある理由は、すべてのシグナルがターゲットプロセスを終了するためのものではありませんが、これは当時の根本的な歴史的使用法であったため、変更することは変更しないよりも混乱してしまうからです。

おすすめ記事