halt 명령은 뭐에 쓰는 거죠?

MyAbby의 이미지

이전 리눅스 배포판에서만 해도 halt는 poweroff 와 같은 동작을 수행한다 봐도 무방하던 것 같습니다. (비록 처리는 다르지만)
그런데 요즘 리눅스에 들어서 halt 명령을 단어 뜻 그대로, 시스템을 '정지' 시켜버리는 명령으로 구현해놓습니다.
halt를 수행하면 모든 프로세스에 TERM 시그널을 주고 'reboot: System halted' 라는 커널 메시지를 띄우도록 말이에요. 마치 윈도 95처럼.

이건 왜 만들어 놓은 걸까요?

아, 리눅스 커널은 시스템 종료를 shutdown, poweroff, reboot, halt 등을 다 한 함수(reboot)로 관리한데요.
뭔가 리눅스 탄생 과정에 대한 이유 때문에 그렇다는데, 이것도 알고 있으면 참 좋겟어요!

x

goforit의 이미지

제가 추측하건데, HLT는 CPU의 어셈블리의 Halt 명령어에서 유래된 것 같습니다.
예를 들면, http://en.wikipedia.org/wiki/HLT

대부분의 위의 기능들은 CPU에서 직접 지원 에셈블리 명령의 위에서 만들어집니다.

위 Halt 자체 기원은 x86에서 더 오래된 CPU 에서 유래돼지 않았을까 추측합니다.