Чому UNIX-системний виклик kill називається "kill"?


41

Мені цікаво історія назви, мені здається, що системний виклик 'kill' міг би бути названий «сигнал», а системний виклик «сигнал» міг би бути названий «обробляти».

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

Хтось знає?

Відповіді:


55

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

4-те видання Unix додало аргумент номера сигналу, а також супровід signalвиклику системи для встановлення обробника сигналу. У той час усі сигнали вбивали цільовий процес, якщо цільовий процес не викликав ignore.

З часом з'являлося все більше і більше сигналів, кілька з яких не вбивали цільовий процес за замовчуванням. Але ім’я залишилося.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.