상세 컨텐츠

본문 제목

MS-DOS용 com 파일 설명

개발이야기/잡담

by mycatdid0 2022. 10. 14. 10:00

본문

반응형

(작성일 2022.10.14)

 

 

잠깐 생각이 나서 DOS용 com 파일에 대하여 설명합니다.

 

com 파일의 대표적인 파일은 MS-DOS의 필수파일인 command.com 입니다. msdos.sys config.sys와 함께 쓰이는 MS-DOS의 기본파일입니다. command.com 파일은 사용자의 dos 커맨드를 받아들이기 위한 해석기입니다.

 

아래는 command.com이 출력하는 MS-DOS에서의 프롬프트의 예입니다.

C:\>

 

당시에는 실행시킬 수 있는 파일 확장자가 두가지 있었습니다.

 

1. exe 파일

  • 실행코드를 가지고 있습니다.
  • 메모리에 로딩되는 위치를 미리 정하지 않고 만들었기 때문에, 로딩될때 바뀌는 메모리 주소값 등을 보정할 수 있는 정보를 포함하고 있습니다.
  • 메모리 주소로 16bit (64Kbytes) 이상의 범위를 사용 가능합니다.

2. com 파일

  • 실행 코드를 가지고 있습니다.
  • 메모리 주소를 16bit 범위 내에서만 사용합니다. 이로 인하여 파일의 크기가 64Kbytes를 넘을 수 없습니다.
  • 메모리 주소 보정 정보등이 없이, 0x0000 번지를 기준으로 실행코드가 만들어져 있습니다.

 

MS-DOS가 사용될 당시의 시스템은 16bit였습니다. 16bit로 표현 가능한 메모리의 범의는 64Kbyte 밖에 되지 않았기에, 640Kbyte 또는 그 이상의 메모리를 억세스하기 위한 기계어코드가 따로 있었습니다. 메모리의 주소를 저장할 때도 16bit가 가 넘는 주소값을 사용하였습니다.

 

.com 파일은 사용하는 메모리 주소 범위를 16bit로 한정하고, 로딩되는 위치의 하위 16bit를 0x0000으로 고정합니다. 이렇게 함으로써 모든 메모리의 주소를 16bit로 한정합니다. 또한 메모리를 항상 0x0000번지부터 시작하므로, 실행할 시에 메모리주소를 보정하지 않아도 됩니다. 따라서 실행파일의 크기를 줄일 수 있습니다.

 

당시에는 메모리 및 보조기억장치의 비용이 비쌌기 때문에 .com이라는 특별한 형식을 사용할 필요가 있었습니다. MS-DOS 시절에도 .com 파일은 많이 사용되지 않았습니다. 32bit 이상의 시스템이 사용되고 실행파일의 크기가 커지면서 .com 파일은 자연스럽게 쓰이지 않게 되었습니다.

 

궁금하신 점 있으시면 댓글 주세요.

 

언제나 감사드립니다.

반응형

관련글 더보기

댓글 영역