Почему в UNIX системный вызов kill называется kill?


41

Мне любопытно узнать историю этого имени, мне кажется, что системный вызов kill мог бы называться «сигнал», а системный вызов «сигнал» мог бы называться «дескриптор».

Мне было интересно, могло ли первоначальное использование системного вызова просто убить другой процесс, и его использование, возможно, было расширено до более общего механизма отправки сигналов при разработке системы - но это предположение с моей стороны.

Кто-нибудь знает?

Ответы:


55

Действительно, первоначальная цель сигнала состояла в том, чтобы убить целевой процесс. killпоявился в Unix 3rd Edition ; в то время он был зарезервирован для root, а процесс был принудительно убит (как сегодня SIGKILL) и оставил дамп ядра.

В Unix 4th edition добавлен аргумент номера сигнала, а также signalсистемный вызов компаньона для установки обработчика сигнала. В то время все сигналы уничтожали целевой процесс, если целевой процесс не был вызван ignore.

Со временем появлялось все больше и больше сигналов, некоторые из которых не убивали целевой процесс по умолчанию. Но имя осталось.

Комитет POSIX обсуждал переименование kill, потому что , как вы заметили , не все сигналы предназначены для завершения целевого процесса, но это было закреплено историческим использование на тот момент, так что изменение это было бы более запутанным , чем нет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.