UNIX 시스템 호출 kill이 ‘kill’인 이유는 무엇입니까? 역사가 궁금합니다. ‘kill’시스템

이름의 역사가 궁금합니다. ‘kill’시스템 호출의 이름은 ‘signal’이고 ‘signal’시스템 호출의 이름은 ‘handle’일 수 있습니다.

시스템 호출의 원래 사용이 단순히 다른 프로세스를 죽이는 것 일지 궁금했고 시스템이 개발됨에 따라 더 일반적인 신호 전송 메커니즘으로 사용이 확대되었을 수도 있습니다. 그러나 이것은 내 추측입니다.

아는 사람 있나요?



답변

실제로 신호의 원래 목적은 대상 프로세스를 종료하는 것이 었습니다. 유닉스 3 판에kill 등장 ; 당시에는 루트로 예약되어 있었고 프로세스가 강제로 종료되었으며 (오늘날 SIGKILL과 같이) 코어 덤프를 남겼습니다.

유닉스 4 판signal 은 신호 처리기를 설정하기 위해 컴패니언 시스템 호출 뿐만 아니라 신호 번호 인수를 추가했습니다 . 당시에 대상 프로세스가 호출하지 않으면 모든 신호가 대상 프로세스를 종료했습니다 ignore.

시간이 지남에 따라 점점 더 많은 신호가 나타 났으며 그 중 일부는 기본적으로 대상 프로세스를 종료하지 않았습니다. 그러나 그 이름은 남아있었습니다.

POSIX위원회는 이름을 변경 논의 kill그래서 더하지보다 혼란을했을 변경, 당신은주의 모든 신호가 대상 프로세스를 종료하기위한 것입니다, 그러나 이것은 그 시점에 의해 사용 기록을 확고 된 때문이.