cmd.exe와 command.execom의 차이점
가끔씩, 글을 쓰기 전에 해당 글에 대해서 이미 설명해 놓은 글이 있는지 검색해 봅니다. 이번 경우는, 네이버 지식인에서 있더군요. ^^
command.exe와 cmd.exe의 차이
; http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10301&docId=64845339&qb=Y21kLmV4ZSBjb21tYW5kLmV4ZSDssKjsnbQ=&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=g5UVlz331yCssZWYeF8ssv--385417&sid=TJXsgzfSlUwAAEtvFhU
부끄럽지만 ^^; 저 역시 그렇게 알고 있었습니다.
최근에 보고 있는 다음의 책을 보고서야 잘못된 것임을 알게 되었지요.
윈도우 시스템 관리자를 위한 커맨드라인 활용 가이드 (저자 : 파완 바드와지)
; http://www.yes24.com/24/goods/3324458
정식 명칭을 보면,
- cmd.exe: 윈도우 명령셸 - 윈도우 전용 명령어 실행 환경
- command.
execom: MS-DOS 명령셸 - 16비트 응용 프로그램 실행 환경
와 같이 구분되고, 실행화면에서도 아래와 같이 "Microsoft(R) Windows DOS"와 "Microsoft Windows [Version ...]"으로 명확하게 나뉩니다.
이 차이는 "종료" 단계에서도 발생합니다. MS-DOS 명령셸은 명령행 윈도우의 "종료" 버튼을 누르는 경우 반드시 다음과 같이 확인을 물어봅니다.
반면, 윈도우 명령셸에서는 위의 귀찮은 질문 단계가 없습니다.
또 한 가지 특이한 점은, cmd.exe의 경우 작업관리자에서 cmd.exe로 나오는 반면 command.
execom는 ntvdm.exe로 실행 단계가 넘어갑니다.
지식은 연결되어, "
윈도우 디바이스 드라이버" 책의 "6.6 예외와 스택 프레임"에서 CPU가 생성해주는 스택프레임의 유형 중에서 "C Type"으로 설명된 것이 바로 ntvdm.exe에서 실행되는 프로그램들이 커널 모드로 진입했을 때의 모습을 보여주고 있는 것입니다.
어떠세요? 다르긴 다르죠? ^^
참고로, 64비트 운영체제를 설치하는 경우 ntvdm.exe가 더 이상 지원되지 않습니다.
List of limitations in 64-Bit Windows
; http://support.microsoft.com/kb/282423/en-us
; http://www.gunnalag.com/2011/03/23/list-of-limitations-in-64-bit-windows/ (첨부 파일에도 올렸습니다.)
결국 이 차이는 역사적인 것에 불과한, 기억하지 않아도 좋을 지식으로만 남을 것입니다.
그나저나, 혹시 심심하시면, 아래의 글에 실린 덧글을 읽어보시면 재미있을 것입니다. ^^
cmd.exe와 command.exe의 차이점
; https://blog.naver.com/techshare/100113280190