Почему было решено назвать kill
команду «убить»?
Я имею в виду, да, эта утилита часто используется для завершения процессов, но на самом деле ее можно использовать для отправки любого сигнала.
Разве это не немного сбивает с толку? Может быть, есть некоторые исторические причины.
Все, что я знаю из man kill
этой команды, появилось в Версии 3 AT & T UNIX.
terminology
history
unix
shabunc
источник
источник
cd
раньше называлиchdir
, что, безусловно, безумие! 5 символов для такой обычной операции? Я знаю людей , которые псевдонимls
вl
;-)assassinate
каждый раз, когда они их использовалиОтветы:
Первоначально
kill
команда могла только убить процесс, только позже былаkill
улучшена возможность отправки любого сигнала.Начиная с версии 7 Unix (1979) по умолчанию сигнализировал процесс так, чтобы его можно было поймать и обработать либо изящно, либо игнорировать (посылая сигнал SIGTERM ), но его также можно использовать для извлечения коврика из-под процесс (a
kill -9
посылает сигнал SIGKILL, который не может быть перехвачен и, следовательно, не может быть проигнорирован).Фон
Вычисления, и в частности Unix, изобилуют метафорой.
Основная метафора для процессов - это метафора живого существа, которое рождается, живет и умирает.
В Unix все процессы, кроме init, имеют родителей , а любой процесс, который порождает другие процессы, имеет потомков . Процессы могут стать осиротевшими (если их родитель умирает) и даже могут стать зомби , если они останавливаются после своей смерти.
Таким образом,
kill
команда вписывается в эту метафору.Unix Археология
На странице руководства от версии 4 Unix (версия, в которой
kill
была представлена, наряду сps
) мы находим:Мне особенно нравится последний раздел этой страницы руководства:
К тому времени, когда появилось пятое издание,
kill
команда уже была перегружена, чтобы можно было отправить любой сигнал.Из Руководства для программистов Unix, пятое издание (p70):
По умолчанию, однако, было послано сигнал 9, так как сигнал 15 еще не существовал (см. P150).
В версии 6 на
kill
странице руководства больше не упоминалась та же ошибка пишущей машинки .Только с версией 7 Unix был введен сигнал 15 (см. Справочные страницы signal (2) и kill (1) для v7) и
kill
переключен на него, а не на использование сигнала 9.источник
Это Unix.
kill
умеет не убивать процесс.mv
способен переименовывать, а не только перемещать файлы из одного места в другое.touch
может создать файл, а не только изменить его время последнего изменения.od
означает Octal Dump, но способен выполнять гораздо больше видов дампов.yes
в состоянии вывести нет.Более экзотично:
grep
назван в честьed
команды, которая выполняет ту же операцию:g/re/p
awk
назван в честь его авторов: Ахо, Вайнбергер и Керниган.yacc
означает еще один компилятор компилятора. Обратите внимание, чтоbison
это GNU yacc.источник
Unix версии 7 уничтожает страницы руководства :
и
Не было бы веской причины не называть эту команду kill, что, безусловно, является лучшей доступной метафорой.
источник