mir.pe (일반/밝은 화면)
최근 수정 시각 : 2024-02-05 23:23:40

CP/M

운영 체제
{{{#!wiki style="word-break: keep-all; margin: -16px -11px" UNIX 파일:Linux 로고.svg Linux 파일:Windows 아이콘 2021_화이트.svg Windows
DOS DR-DOS · 파일:MS-DOS 아이콘.svg MS-DOS · 파일:FreeDOS 로고.svg FreeDOS · K-DOS
기타 RTOS · 파일:퓨시아 아이콘.svg 파일:퓨시아 아이콘 화이트.svg Fuchsia · TempleOS · ReactOS · BeOS · 하이쿠 · 파일:Mac OS 로고.svg Mac OS · 파일:attachment/OS/2/os2_logo.png OS/2 · CP/M · 모바일 운영 체제 }}}

파일:CP/M_2.2_TRS-80_Model4.jpg
TRS-80 Model 4 에서 구동한 CP/M 2.2
파일:CP/M_plus3_TRS-80_Model4.jpg
8비트 최후의 버전인 CP/M Plus 3
파일:cpm86.png
IBM PC용으로 개발된 CP/M-86

1. 개요2. 역사3. 몰락4. 종류5. 소프트웨어6. 기타7. 외부 링크

1. 개요

Control Program/Monitor

게리 킬달 1974년에 개발한 인텔 8080용 8비트 운영체제이다. 마이크로컴퓨터(microcomputer) 최초의 운영 체제이며[1], 당시 8비트 컴퓨터 시장을 완전히 점령한 운영 체제이다, 이후 16비트 컴퓨터 시대가 도래하기 전까지 마이크로컴퓨터 운영 체제의 사실상 표준 취급을 받았다.

보통 일반인들에게 8비트 컴퓨터라고 하면 Apple II 코모도어 64같은 가정용 컴퓨터가 유명하므로 CP/M이 어디에 쓰였는지 이해를 못하는 경우가 간혹 있지만, 당시에 컴퓨터는 아직 일반인들이 폭넓게 쓰는 물건이 아니었기 때문에 가정용으로는 그리 많이 쓰이지 않았고 대부분이 업무용이었는데 CP/M은 이 업무용 컴퓨터 시장에서 독과점 수준의 영향력이 있었다. 또한 가정용 컴퓨터는 대부분 운영 체제가 없었고, 있어도 당시에는 게임하는데 필요한 것도 아니어서 별로 쓰이지 않았다.

그러나 이후 16비트 컴퓨터 시장(특히 IBM PC 호환 기종)에서는 영향력을 발휘하지 못하고 MS-DOS에게 패배한 비운의 운영 체제이기도 하다.

처음에는 인텔 8080용으로 개발되었지만 실제로는 8비트 컴퓨터의 CPU Z80이 더 많이 보급되었기 때문에 대부분 Z80 컴퓨터에서 구동되었다. 그 외에도 NEC에서 만든 V20이나 V30 CPU를 넣어 만든 컴퓨터도 인텔 8080 에뮬레이션 모드를 이용해 구동 가능했다.

당시에는 운영 체제를 소비자에게 따로 판매한다는 개념이 드물었기 때문에 CP/M 판매의 대부분은 B2B로, 컴퓨터 제조사에게 라이선스를 판매하는 형식이었다.(물론 개인 소비자에게 판매도 했다.) CP/M의 영향력이 컸기 때문에, 자체 운영 체제를 개발하는 규모 있는 제조사라도 CP/M 라이선스까지 구매해서 소비자가 운영 체제를 선택할 수 있도록 하는 경우가 많았다.

CP/M을 구동하는 컴퓨터 목록을 보자. 새로운 컴퓨터 기종이 난립했던 시기였기는 하지만 그걸 감안해도 굉장히 많은 수의 컴퓨터가 있는 것을 알 수 있다. 심지어 이 목록은 극히 일부에 불과하고, 그다지 알려지지 않아서 목록에 기재되지 않은 수많은 컴퓨터들을 다 합하면 무려 약 3,000개 가량의 모델에서 구동되었다.[2][3]

2. 역사

CP/M이 처음 개발된 1970년대 초반에는 아직 마이크로컴퓨터 혁명이 일어나기 전이었다. 이때 컴퓨터라고 하면 메인프레임같은 거대한 시스템을 떠올리거나, PDP-11같이 메인프레임보다는 작지만 개인에게는 크고 비싼 미니컴퓨터뿐이었다. 시간이 지나며 MCM/70, 알테어 8800 등 마이크로컴퓨터의 시초가 되는 컴퓨터가 출시되기 시작했고, 그중에는 인텔 Intellec-8도 있었다. 이 컴퓨터는 엄밀히 말해 마이크로컴퓨터는 아니었고 인텔 프로세서를 쓰는 다른 컴퓨터의 개발용 컴퓨터였다. 게리 킬달은 인텔과 일하면서 PL/M 같은 프로그래밍 언어를 납품하는 등의 여러 일을 했는데, 그 대가(?)의 일부로 이 컴퓨터를 받았다. 이때 이 컴퓨터용으로 플로피 디스크 시스템을 편하게 사용하기 위한 운영 체제를 개발했고, 이것이 CP/M이다.

게리 킬달은 인텔에게 이 운영 체제를 구매할 의향이 있는지 물었으나 인텔은 별 관심이 없었고, 앞으로 마이크로컴퓨터 시장이 커질 것을 예상한 게리 킬달은 아내인 도로시 맥윈 킬달과 함께 디지털 리서치(Digital Research Inc)를 설립하여[4] 직접 운영 체제를 판매하기로 한다. 그리고 마침 적절히 마이크로컴퓨터 시장이 크게 확대되기 시작했고, 특히 그 시작인 알테어 8800과 그 클론인 IMSAI 8080의 성공으로 인해 이 두 컴퓨터용으로 판매되었던 CP/M은 강력한 눈도장을 찍게 된다. 그 이후 어지간히 규모가 큰 제조사가 아니면 소프트웨어를 직접 개발할 수는 없었기 때문에 그런 제조사들은 운영 체제 없이 BASIC 인터프리터만 탑재하여 판매하거나 아니면 CP/M을 구매했다. CP/M 덕에 수많은 마이크로컴퓨터 제조사가 난립하기 시작했다. 이렇게 해서 CP/M은 8비트 컴퓨터 운영 체제 시장을 선점과 동시에 사실상 점령했고, 시장에 판매되는 운영 체제의 1/4의 점유율을 차지하였다.[5]

초기에 개발된 CP/M은 이식성이 좋은 것은 아니어서 Intellec-8, 알테어 8800 등 컴퓨터마다 코드를 다시 작성해야 할 부분이 너무 많았다. 그러나 이건 CP/M만 그런 것이 아니라 그 시대에는 상식이었다. 그래서 게리 킬달은 1975년 CP/M 1.1을 PL/M과 인텔 8080 어셈블리어로 처음부터 다시 작성하다시피 하여 구조를 크게 변경해 계층화, 모듈화했다. 이렇게 만들어진 CP/M은 크게 3개의 모듈로 구성되었다.

3. 몰락

그렇게 CP/M은 8비트 시장을 점령했으나, 시간이 지나 서서히 16비트 컴퓨터 시장이 떠오르기 시작했다. 이 와중에 컴퓨터 업계의 큰손이었던 IBM도 마이크로컴퓨터 시장의 중요성을 느끼고, 태스크 포스를 꾸려서 가능한 한 빠른 개발을 지시했다. 주어진 개발 기간이 짧았기 때문에 개발진은 운영체제를 외부에서 구입하기로 했고[6], 이때 눈에 들어온 것은 당연히 기존 마이크로컴퓨터 시장을 지배하던 CP/M이었다. 특히 CP/M은 업무용 소프트웨어에서 강점이 있었는데, 마침 IBM은 새 컴퓨터를 업무용으로 포지션을 잡고 있었으므로 CP/M 소프트웨어의 호환을 가장 먼저 생각할 수밖에 없었다. 그래서 IBM은 디지털 리서치와 협의를 했으나, 의견이 맞지 않아 협상이 여러 번 결렬되었다.

이때 Microsoft에서 시애틀 컴퓨터의 86-DOS[7]를 구입하여 IBM에 제공했고, IBM은 이를 PC-DOS라는 이름으로 판매하였다. 그리고 이 운영 체제를 구동할 수 있는, 역사적인 컴퓨터인 IBM PC를 시장에 같이 내놓았다. 알다시피 이후 이 컴퓨터는 큰 인기를 얻었고, 이후 호환 기종의 범람과 함께 컴퓨터의 혁명을 이끌었다.

이러한 일련의 내용은 이미 잘 알려져 있고 MS-DOS 문서에도 자세히 나와 있으므로, 여기서는 CP/M이 패배한 이유 중 몇 가지 주요한 점만 짚어보자. 아래 내용은 가능한 한 많은 출처를 조사해서 정리한 것이지만, 애초에 세부적인 계약 내용 등 확실한 증거가 공개된 적이 없고 주변인의 증언이나 추론이 포함되는 영역이기 때문에 어느 정도는 불확실성이 있다는 점을 염두에 두고 보자.

어쨌든 이렇게 CP/M-86은 16비트 컴퓨터 시장에서 완전히 실패했고, 이후 DOS Plus를 지나서 정신적 후속작인 DR-DOS로 이어졌으나 이마저도 패배하면서 역사에서 자취를 감추었다.[14]

4. 종류

5. 소프트웨어

6. 기타

재미있게도 CP/M을 구동할 수 있는 단일 컴퓨터 플랫폼 중 최다 사용자를 가진 것은 다름 아닌 Apple II였다. Apple II의 CPU는 MOS Technology 6502이기 때문에 인텔 8080용 운영 체제였던 CP/M은 호환이 되지 않는데 어떻게 이게 가능했냐면, 수많은 컴퓨터가 난립하던 당시에 가장 인기 있는 개인용 컴퓨터는 단연 Apple II였고 이를 본 Microsoft는 이미 CP/M용으로 판매 중인 자사의 BASIC 인터프리터나 포트란 컴파일러 등의 프로그래밍 개발 도구 제품 등을 Apple II용으로도 판매하고 싶어 했고, 이를 위해 CP/M을 구동할 수 있게 하는 Apple II용 확장 카드를 발매하기로 계획하였다. 그래서 아예 Z80 프로세서를 카드에 박은 Z-80 SoftCard라는 확장 카드가 출시되었다. 이는 매우 많은 인기를 얻었고, 이미 단일 플랫폼으로 압도적이었던 Apple II 덕분에 덩달아 CP/M을 구동할 수 있는 가장 인기 있는 플랫폼이 되었다. CP/M은 너무나 많은 컴퓨터 모델을 지원했고, 업무용 시장에서는 IBM PC 이전까지 특별히 어떤 한 컴퓨터가 독주하지 못했기 때문에[18] 이러한 상황이 가능했던 것이다. 또한 Microsoft는 이 카드를 출시하고 회사 수익의 대부분이 이 카드에서 나올 정도로 큰 성공을 거두었으며 어떻게 보면 이후 MS-DOS로 성공하기까지 사업 확장에 필요한 자금력의 원천이 되었다고 생각할 수도 있을 것이다.

또한 위의 내용에서 보다시피 디지털 리서치와 Microsoft는 새로운 컴퓨터 모델이 나올때마다 서로 운영체제와 개발 도구 소프트웨어를 담당하면서 초기에 매우 긴밀하게 협력하고 있었고, 한때는 회사 합병을 고려했을 정도로 좋은 관계를 유지하고 있었다. 물론 MS-DOS가 CP/M을 몰락시키기 시작한 때부터는 옛말이 되었지만.

위와 같은 CP/M 확장 카드에 대한 수요는 8비트 컴퓨터 시절에만 있었던 것이 아니라서, 심지어 IBM PC 초창기에도 CP/M-80을 구동하기 위해 Z80 프로세서를 박은 확장 카드가 발매되었을 정도였다. #[19] 또는 후술할 코모도어 128처럼 두 개의 CPU를 탑재하고 MS-DOS와 CP/M을 동시에 지원한 컴퓨터 모델도 많이 있었다. # 물론 인기 소프트웨어들이 MS-DOS로 이식되면서 이런 것들은 모두 시장에서 사라졌다.

8비트 컴퓨터 시장의 베스트셀러 중 하나이자 미국에서는 Apple II보다도 점유율이 높았던 컴퓨터인 코모도어 64는 Apple II와 동일한 6502 계열 CPU를 사용했는데, 당연히 여기에서도 CP/M 을 구동하기 위해 Z80 을 박은 확장 카트리지가 발매되었다. # 물론 이는 여러 이유로 실패했다. 이후 후속기기인 코모도어 128에서는 코모도어 64 호환성을 위해 6502 계열 CPU를 탑재하면서 동시에 CP/M 소프트웨어까지 실행할 수 있게 하기 위해 기기에 Z80 CPU까지 탑재하여 출시했다. 그러나 아쉽게도 이 역시 속도나 디스크 등 여러 문제가 있어서 사용이 까다로웠고, 따라서 실제로는 거의 사용되지 않았다. 무엇보다 이미 CP/M 자체가 저물어가던 때에 출시되었다는 이유도 있다.[20]

MSX는 CPU가 Z80이면서도 CP/M이 거의 쓰이지 않았다. 주된 시장이 일본이었던 탓도 있겠지만, 무엇보다 MSX-DOS가 명령 체계나 파일 시스템 면에서는 MS-DOS를 참고했지만 시스템 호출은 CP/M 2.2와 거의 완전하게 호환되었기 때문이다. 요컨대 MSX-DOS의 껍데기는 MS-DOS, 알맹이는 CP/M이었다는 이야기인데 이런 구조가 된 이유는 기존에 나와 있던 수많은 CP/M용 응용 프로그램을 MSX에서 사용하기 위해서였다. MSX-DOS에서 CP/M의 응용 프로그램을 바로 구동시킬 수 있다 보니 CP/M에 대한 수요는 많지 않았다. 드문 예로 소련 시장에 판매된 야마하의 MSX2 YIS-503IIIR의 네트워크 펌웨어로 CP/M 2.2를 이식한 사례가 있고 유럽에서 CP/M+ 3.0을 MSX2로 이식한 사례 #도 있으나 널리 사용되지는 못했다.

Z80 문서에 나와 있다시피 Z80 CPU는 취미용 홈브루 컴퓨터 제작에 많이 쓰이는데, 아무래도 Z80용 운영 체제로 CP/M이 절대적이었던 만큼 CP/M을 돌릴 수 있도록 하는 목표로 개발되는 홈브루 컴퓨터도 많다. 이 경우 CP/M에서 컴퓨터마다 별개로 개발해야 하는 BIOS 부분은 자신의 컴퓨터에 맞게 재작성해야 한다. # ##

7. 외부 링크



[1] 운영체제의 개념은 마이크로컴퓨터 이전에 메인프레임을 위시한 대형 컴퓨터 시절부터 이미 있었기 때문에 "최초의 운영 체제"는 아니며, 최초의 "마이크로컴퓨터용 운영 체제" 라고 해야 한다. 유닉스가 이미 1969년 벨 연구소에서 개발되었다. [2] 이 목록은 CP/M-86 및 이후 버전까지 포함한 것이긴 하나 16비트 컴퓨터 시장에서는 CP/M이 그다지 영향력이 없었기 때문에 대부분은 8비트 컴퓨터이다. 또한 CPU가 Z80이 아님에도 불구하고 CP/M을 지원하기 위해 Z80을 통째로 넣은 확장 카드 등이 발매된 기종도 많은데, 대표적으로 Apple II용 확장 카드인 Microsoft의 Z-80 SoftCard가 있다. [3] 비전공자의 경우 여기서 오해를 하는 경우가 있는데, 이 컴퓨터 목록은 현재와 같은 여러 PC 제조사 리스트 같은 게 아니다. 쉽게 말해서 현재 PC와 스마트폰이 CPU를 비롯한 내부 구조가 완전히 다르듯이, 그런 완전히 다른 구조의 컴퓨터가 저만큼 있었다는 뜻이다. 사실상 표준인 구조가 일부 있기는 했지만 대체로 서로 호환되지 않았다. [4] 처음 설립시에는 Intergalactic Digital Research 라는 이름이었고, 나중에 Digital Research 로 변경했다. [5] 이 25% 라는 수치는 가정용 컴퓨터까지 포함한 전체 시장의 운영 체제 점유율이다. 따라서 가령 코모도어 64의 KERNAL 같은 운영 체제라고 하기 민망한 것이나 Apple DOS 등이 모두 포함된 수치이다. 물론 가정용 컴퓨터에서 운영 체제는 그렇게 폭넓게 쓰이지도 않았을뿐더러 유용한 소프트웨어가 많이 개발되지도 않았기 때문에 그리 큰 의미는 없다. 당연하게도 CP/M의 본진인 업무용 시장에서는 독과점 수준의 점유율을 자랑했다. [6] IBM은 메인프레임 등의 대형 컴퓨터용 운영 체제는 가지고 있었어도 한 번도 판매하지 않은 마이크로컴퓨터용 운영 체제는 당연히 가지고 있지 않았다. IBM 5100의 경우 마이크로컴퓨터로 분류되지도 않고, 운영 체제도 없었다. 있었어도 IBM PC에 활용할 수는 없었겠지만. [7] 팀 패터슨이 CP/M의 인텔 8086용으로 개발한 클론 운영 체제이다. 여담으로 팀 패터슨은 생각보다 굵직한 역할을 많이 한 사람인데 아래 기타 항목에서 설명하는 Microsoft 의 Z-80 SoftCard 하드웨어를 설계한 사람이기도 하며, MSX의 공식 운영체제인 MSX-DOS를 개발한 사람이기도 하다. [8] IBM PC 개발 비화에도 나와 있지만 IBM은 이 태스크 포스 팀에게 그리 많은 시간을 주지 않았고, 따라서 이 팀은 가능한 한 빨리 출시할 수 있기를 원했다. 사실 이 점이 IBM이 Microsoft를 선택하게 된 주요한 원인 중 하나이기도 하다.(오죽하면 Microsoft는 IBM이 요구한 짧은 기간 내에 운영 체제 개발 및 프로그램 개발 도구 제품 이식 등을 끝내기 위해 엄청난 야근을 했다.) 여러 글들을 찾아보면 기본적으로 디지털 리서치는 회사 문화 자체가 게리 킬달의 성격대로 굉장히 여유있게 일을 하는 분위기였기 때문에, IBM이 요구하는 기간 내에 개발하겠다는 확답을 주지 않았다. IBM은 시간이 없었기 때문에 디지털 리서치가 이런 태도를 계속 견지했다면 86-DOS가 없었어도 디지털 리서치와 계약하지는 않았을 것이다. [9] 단 팀 패터슨이 86-DOS를 개발하는 데에 걸린 시간은 약 4개월 정도로 알려져 있고, 이후 CP/M의 소스를 도용했는지의 여부가 논쟁이 되었다. Microsoft의 이해 관계자인 모 엔지니어가 "도용하지 않았다" 라는 주장을 했던 글 이외에는 딱히 확실한 사실이 없으므로 이 부분은 각자 알아서 생각하자. [10] 좀 더 정확히 말하자면 Microsoft도 당연히 로열티 계약을 하고 싶었으나, IBM이 원하지 않았던 이유도 있었고 Microsoft 설립 초기에 Altair 컴퓨터용 BASIC 판매에 의존하다가 Altair가 망한 후 한동안 침체기를 겪었던 경험 때문에 빌 게이츠는 IBM 에 지나치게 의존하는 것은 위험하다고 생각했고 따라서 로열티 계약을 포기하는 대신 이 조건을 요구했다고 알려져 있다. [11] 확실하게 증명된 내용은 아니지만 여기 여기를 보면 IBM이 제안해왔을 때 Microsoft는 이미 다들 많은 업무량에 지쳐있었고, IBM도 일정을 빡빡하게 잡았으며 IBM PC가 취소될 수도 있기 때문에 고민하던 중 니시 카즈히코가 강하게 주장해서 일을 받아들였다고 서술되어 있다. 물론 자세한 속사정은 알 수 없으니 그냥 참고만 하자. [12] 비록 QDOS의 개발사인 시애틀 컴퓨터를 대상으로 고소하는 형식을 취했지만, 당연히 이는 실질적으로는 QDOS를 구입한 Microsoft와 IBM을 저격하는 것이다. [13] 실제로 이 소송에서 승소할 수 있었는지에 대해서는 부정적인 얘기가 많다. 이 때는 아직 미국에서도 컴퓨터 프로그램의 저작권에 관한 법이 미비했던 시절이기 때문에 당시 디지털 리서치의 변호사도 승소 가능성을 부정적으로 보았다. [14] 사실 DR-DOS는 처음 개발되었을 때는 CP/M-86 API를 지원했으나 이후 시장에 출시할 때는 그것마저 제거한 채로 나왔기 때문에 후속작이라고 부르기 어렵다. [15] 공교롭게도 이름은 CP/M을 계승했음에도 불구하고 MS-DOS보다도 CP/M-80 호환성이 떨어졌는데, 이는 둘의 지향점이 달랐기 때문이다. MS-DOS의 원형인 QDOS(86-DOS)를 개발한 Tim Paterson은 처음부터 CP/M-80을 최대한 잘 모방하는 클론을 만들려고 하였고, 이를 위해 기존 CP/M-80을 위해 작성된 소스 코드에서 최소한의 수정으로 이식할 수 있도록 하는 목표를 가지고 프로그래밍적 트릭 등을 사용했다. 그러나 디지털 리서치의 CP/M-86은 이번 기회에 시스템 콜 인터페이스를 더 깔끔하게 개편하는 등의 개선 작업을 했기 때문에 수정의 필요성이 비교적 더 많아졌다. 물론 이 개선 작업 덕분에 얻은 장점도 있었지만 시장 점유율에 도움 될만한 장점은 아니었다. [16] 단 완전한 WYSIWYG이 아니고 불완전한 방식이었다. [17] 여담으로 조지 R.R. 마틴이 아직까지도 WordStar의 MS-DOS 이식 버전을 사용해서 글을 쓰는 것으로 유명하다. [18] 당시 업무용 시장에서는 CP/M을 지원하기만 하면 충분히 대부분의 목적을 충족하며 사용할 수 있었기 때문에 호환성 등의 이유로 특별히 어떤 한 컴퓨터를 고집할 필요가 없었고, 가정용 컴퓨터와 달리 게임의 수요가 거의 없었기 때문에 기껏해야 RAM 정도를 제외하면 차별점을 둘 만한 게 사실상 없었다. 그래서 엄청난 수의 컴퓨터 모델이 난립했고 특정한 하나의 컴퓨터 모델이 점유율을 독점할 수 있는 상황이 불가능했다. [19] 링크에 들어가면 처음 나오는 페이지가 아니라 그 바로 위 페이지에 있는 BYAD DS1 이다. [20] CP/M은 업무용 소프트웨어가 강점이었는데, 코모도어 64는 업무용으로 거의 쓰이지 않고 가정에서 주로 사용되었다. 그래서 미국 가정용 컴퓨터 시장을 점령한 코모도어는 자연히 다음 타겟으로 업무용 시장을 노려서 Plus/4 등을 만들었으나 실패하고, 이후 다른 시도로 코모도어 128에서는 CP/M 호환성을 추가한 것이다. 그러나 그 바닥에선 이미 가격이 별 차이가 없거나 더 싼 IBM PC 호환 기종들이 확고하게 자리 잡고 있었기 때문에 결국 이것도 실패하였다.

분류