CMD 파일 (CP/M)

CP/M-86, MP/M, Personal CP/M-86, CP/M-86, DOS Plus, Concurrent DOS, FlexOS, Multiuser DOS, System Manager 및 REAL/32뿐만 아니라 CP/M-86, CP/M-86 및 CP/M-86에서 CMD는 CP/M 스타일의 실행 프로그램에 사용되는 파일 확장자이다. 이는 CP/M-80의 COM과 DOS의 EXE에 대응한다. 동일한 확장자는 OS/2 및 Windows의 명령 줄 해석기인 Cmd.exe에서 배치 파일용으로 사용된다.

이진 형식

CMD 파일은 128바이트 헤더를 가지며, 그 뒤에 1~8개의 코드 또는 데이터 그룹이 이어진다. 각 그룹은 최대 1메가바이트 크기까지 가능하다. 이후 버전의 형식에서는 CMD 파일에 재배치 정보 및 상주 시스템 확장 (RSX)이 포함될 수 있다.

헤더의 시작 부분에는 파일에 존재하는 그룹과 그 유형이 나열된다. 각 유형은 최대 한 번씩만 사용할 수 있다. 유형은 다음과 같다.

  1. 코드
  2. 데이터
  3. 기타
  4. 스택
  5. 사용자 1
  6. 사용자 2
  7. 사용자 3
  8. 사용자 4
  9. 공유 코드 (코드와 공유 코드는 같은 파일에 동시에 존재할 수 없음).

데이터 그룹의 처음 256바이트는 0이어야 한다. 이 영역은 CP/M-86에 의해 제로 페이지(DOS의 프로그램 세그먼트 접두사와 유사함)로 채워진다. 데이터 그룹이 없으면 코드 그룹의 처음 256바이트가 대신 사용된다.

이름 충돌

OS/2 및 Windows NT에서 .CMD 파일 확장자는 명령 처리기인 Cmd.exe용 배치 스크립트와 연결되어 있다. 이진 코드는 이런 방식으로 실행되지 않기 때문에, CP/M-86 CMD 파일을 CMD 명령 처리기에서 실행하려는 시도는 작동하지 않지만, 일반적으로 사용자에게 약간의 불편을 주는 정도에 그친다. CP/M-86 및 관련 운영체제의 실행 파일 로더와 재배치기는 파일의 첫 번째 바이트를 검사할 수 있는데, 이는 CP/M CMD 파일의 첫 번째 테이블 항목의 유형 바이트에 해당하며, 이를 유효한 CP/M CMD 파일로 받아들이기 전에 1에서 9 사이의 값을 갖는지 확인한다. 10보다 작은 ASCII 값은 배치 스크립트에서 거의 사용되지 않으므로, 이 방식은 상당히 우수한 보호 기능을 제공한다.

같이 보기

각주

  1. 1 2 3 Kurth, Rüdiger; Groß, Martin; Hunger, Henry (2019년 1월 3일). “Betriebssystem SCP” (독일어). 《www.robotrontechnik.de》. 2019년 4월 27일에 확인함.
  2. 1 2 3 4 Elliott, John C. “CP/M-86 executables (.CMD)”. 《Seasip.info》. 2016년 11월 14일에 원본 문서에서 보존된 문서. 2016년 8월 29일에 확인함.
  3. 1 2 〈3.4 Command (CMD) File Format〉 2 printing, 1판. 《CP/M-86 Operating System - System Guide》 (PDF). Pacific Grove, California, USA: 디지털 리서치. June 1981. 20–21쪽. 2020년 2월 28일에 원본 문서 (PDF)에서 보존된 문서. 2020년 2월 28일에 확인함. (17 pages)