이름의 유래가 궁금합니다. "kill" 시스템 호출을 "signal"로 명명하고 "signal" 시스템 호출을 "handle"로 명명할 수 있었던 것으로 보입니다.
시스템 호출의 원래 용도가 단지 다른 프로세스를 종료하는 것일 수도 있고 시스템이 개발됨에 따라 그 사용이 보다 일반적인 신호 메커니즘으로 확장되었을 수도 있는지 궁금합니다. 그러나 그것은 단지 제 추측일 뿐입니다.
아는 사람 있나요?
답변1
실제로 신호의 원래 목적은 대상 프로세스를 종료하는 것입니다. kill
나타나다유닉스 버전 3; 그 당시에는 루트용으로 예약되어 있었고 프로세스가 강제로 종료되었으며(현재 SIGKILL처럼) 코어 덤프가 남아 있었습니다.
유닉스 버전 4신호 번호 매개변수와 동반자를 추가했습니다.signal
신호 처리기를 설정하는 시스템 호출입니다. 이때 대상 프로세스에서 호출하지 않는 한 모든 신호는 대상 프로세스를 종료합니다 ignore
.
시간이 지남에 따라 점점 더 많은 신호가 나타나며 그 중 일부는 기본적으로 대상 프로세스를 종료하지 않습니다. 하지만 이름은 남아있습니다.
이것POSIX 위원회이름 바꾸기 논란의 kill
여지가 있는 이유는 모든 신호가 대상 프로세스를 종료하기 위한 것은 아니지만 이는 당시 뿌리깊은 역사적 사용법이었기 때문에 변경하는 것이 변경하지 않는 것보다 더 혼란스러울 것이기 때문입니다.