GGWiki
새 문서
현재 판이에요 · #673 AI 조사: 게임 제작 도구 문서 · GGWiki 자동 ·

86-도스

개요

86-도스(86-DOS)는 시애틀 컴퓨터 프로덕츠(Seattle Computer Products, SCP)가 인텔 8086 프로세서 기반 컴퓨터 키트용으로 개발하여 1980년에 공개한 운영체제다. 초기에는 QDOS(Quick and Dirty Operating System)라는 내부 명칭으로 불렸으나, SCP가 정식으로 라이선스 판매를 시작하면서 86-DOS로 이름이 변경되었다. 디지털 리서치(Digital Research)의 CP/M 운영체제를 모방한 명령 구조와 응용 프로그래밍 인터페이스(API)를 갖추어 기존 CP/M 프로그램을 비교적 쉽게 이식할 수 있도록 설계되었다. 이후 마이크로소프트(Microsoft)가 라이선스를 취득한 뒤 전권을 인수하여 MS-DOS와 IBM PC DOS의 기반이 되었다. 개발은 팀 패터슨(Tim Paterson)이 주도했으며, 프로그래밍 언어는 어셈블리어, 파일 시스템은 FAT12를 사용했다. 최신 버전은 1.10이며 현재는 단종되었다.[1][2][3]

역사

기원과 개발 배경

1979년 6월 시애틀 컴퓨터 프로덕츠는 인텔 8086 프로세서를 탑재한 컴퓨터 키트를 시연했고, 11월에 출하를 시작했다. 그러나 당시 이 하드웨어에서 구동할 운영체제가 부재하여 판매가 부진했다. SCP가 함께 판매할 수 있었던 소프트웨어는 마이크로소프트의 스탠드얼론 디스크 베이직-86(Standalone Disk BASIC-86)뿐이었는데, 이는 SCP의 프로토타입 하드웨어상에서 개발된 것이었다. SCP는 디지털 리서치가 1979년 11월 출시를 예고했던 CP/M-86을 기다리고 있었으나, 발매가 지연되고 일정이 불투명해졌다. 디지털 리서치는 2년 전에도 새로운 플로피 디스크 포맷과 하드 디스크 드라이브에 CP/M을 적응시키는 데 느린 행보를 보인 바 있었다.

이에 SCP는 1980년 4월, 당시 24세였던 팀 패터슨에게 CP/M-86의 대체재 개발을 맡겼다. 패터슨은 CP/M-80 매뉴얼을 참고하여 아키텍처와 인터페이스를 모델링하되, 인텔 8086 16비트 프로세서의 요구사항에 맞게 조정했다. 이를 통해 기존 8비트 CP/M 프로그램을 소스 레벨에서 8086용으로 번역하기 용이하게 만들었으며, 인텔이 이미 공개한 8080에서 8086으로의 자동 번역 기법을 활용하면 도스나 CP/M-86으로의 이식 난이도가 비슷해지도록 했다. 동시에 패터슨은 CP/M의 단점으로 지적되던 점들을 개선했다. CP/M은 파일 시스템 정보를 메모리에 캐시하여 속도를 높였으나, 사용자가 디스크를 꺼내기 전에 강제로 업데이트하지 않으면 디스크가 손상되는 문제가 있었다. 패터슨은 더 안전하지만 느린 방식인 매 연산마다 디스크를 업데이트하는 방식을 채택했다. CP/M의 PIP 명령어가 프린터나 통신 포트 같은 하드웨어 장치를 특수 파일명으로 다루었던 것과 달리, 이들을 운영체제 차원의 장치 파일로 구현하여 모든 프로그램이 사용할 수 있게 했다. 복사 명령어에는 더 직관적인 이름인 COPY를 부여했다. CP/M의 파일 시스템 대신 마이크로소프트 스탠드얼론 디스크 베이직-86의 파일 할당 테이블(FAT) 파일 시스템을 차용했다.[3]

초기 출시와 기능

1980년 중반까지 SCP는 86-DOS를 자사의 8086 보드(가격 1,290달러) 구매자에게는 95달러, 그 외에는 195달러에 판매한다고 광고했다. 광고에서는 CP/M 디스크로부터 질로그 Z80 소스 코드를 읽어 8086 소스 코드로 번역하는 기능을 강조했으며, "사소한 수작업 수정과 최적화"만으로 8086 바이너리를 생성할 수 있다고 약속했다.[3]

IBM의 관심과 PC DOS 탄생

1980년 10월, IBM은 훗날 최초의 IBM 퍼스널 컴퓨터가 될 제품을 개발 중이었다. 당시 시장에서 가장 널리 쓰이던 운영체제는 CP/M이었고, IBM은 경쟁력을 위해 CP/M이 필요하다고 판단했다. IBM 관계자들은 디지털 리서치를 방문해 라이선싱을 논의했으나, 디지털 리서치의 라이선싱 담당자 도로시 킬달(Dorothy Kildall)이 IBM의 비밀유지계약(NDA) 서명을 망설였다. NDA는 나중에 수용되었으나, 디지털 리서치는 IBM이 제안한 25만 달러 일시불(카피 수 무제한) 대신 통상적인 로열티 기반 계약을 고집했다. 이후 IBM과 빌 게이츠(Bill Gates) 간의 논의에서 게이츠는 86-DOS의 존재를 언급했고, IBM 측 잭 샘스(Jack Sams)는 이를 라이선스할 것을 요청했다.[3]

마이크로소프트는 1980년 12월 SCP로부터 86-DOS의 비독점 라이선스를 2만 5천 달러에 취득했다. 1981년 5월에는 팀 패터슨을 고용해 IBM PC용으로 포팅 작업을 진행했는데, IBM PC는 더 저렴하고 느린 인텔 8088 프로세서를 사용하고 독자적인 주변기기군을 가지고 있었다. IBM은 개발 과정을 매일 감시하며 300건이 넘는 변경 요청을 제출했고, 최종적으로 제품을 승인한 뒤 사용자 매뉴얼을 직접 작성했다.

1981년 7월, PC 출시 한 달 전 마이크로소프트는 SCP로부터 86-DOS의 모든 권리를 5만 달러에 인수했다. 이 시스템은 IBM의 주요 기준을 충족했다. CP/M과 유사했고, 기존 8비트 CP/M 프로그램을 쉽게 이식할 수 있었으며, 특히 8080 소스 파일을 8086 기계어로 번역해 주는 TRANS 명령어 덕분이었다. 마이크로소프트는 86-DOS를 IBM에 라이선스했고, 이것이 PC DOS 1.0이 되었다. 이 계약은 마이크로소프트가 다른 회사에도 DOS를 판매할 수 있도록 허용했고, 큰 성공을 거두었다. 훗날 SCP는 마이크로소프트가 IBM과의 관계를 숨기고 저렴하게 운영체제를 매입했다고 주장하며 소송을 제기했고, 결국 100만 달러의 합의금을 받았다.[3]

지식재산권 분쟁

디지털 리서치 창업자 게리 킬달(Gary Kildall)이 PC DOS를 검토한 결과 CP/M의 프로그래밍 인터페이스가 중복됨을 발견하고 IBM을 상대로 소송을 고려했다. 당시 IBM은 PC DOS가 자사 제품이라고 주장하고 있었다. 그러나 디지털 리서치의 변호사는 관련 법이 충분히 명확하지 않아 소송이 어렵다는 의견을 냈다. 그럼에도 킬달은 IBM과 대면하여 CP/M-86을 PC와 함께 제공하는 조건으로 면책을 받아냈다.

두 시스템 간 유사성을 둘러싼 논란은 지속되었다. 가장 센세이셔널한 주장은 제리 포넬(Jerry Pournelle)이 했는데, 킬달이 DOS에서 특정 명령어를 입력해 자신의 이름이 표시되게 함으로써 CP/M 코드가 포함되어 있음을 직접 시연했다고 주장했다. 그러나 포넬은 그 명령어를 공개하지 않았고, 이를 뒷받침할 증언도 나오지 않았다. 2004년 출간된 킬달 관련 서적에서는 그가 암호화된 메시지를 이용해 다른 제조사들이 CP/M을 복제했음을 입증하는 데 사용했다고 서술했으나, 그 메시지가 DOS에서 발견되었다고는 하지 않았다. 대신 킬달의 회고록(해당 서적의 출처)은 잘 알려진 인터페이스 유사성을 지적했다. 패터슨은 86-DOS가 자신의 독창적 작업이며 CP/M 코드를 참조하거나 사용한 적이 없다고 일관되게 부인해 왔다. 2004년 서적 출간 후 패터슨은 저자와 출판사를 상대로 명예훼손 소송을 제기했으나, 법원은 서적의 주장이 연구에 기반한 의견이거나 명백히 허위임이 입증되지 않았다며 약식 판결로 명예훼손이 성립하지 않는다고 판시했다.[3]

기능과 사용법 개요

대상 하드웨어와 플랫폼

86-DOS는 인텔 8086/8088 프로세서 기반의 x86 플랫폼에서 동작하도록 설계되었다. SCP의 8086 컴퓨터 키트와 S-100 버스 시스템을 주 대상으로 했으며, 이후 IBM PC(8088 기반)로 이식되면서 PC DOS의 기반이 되었다.[1][3]

파일 시스템과 디스크 포맷 지원

86-DOS는 FAT12 파일 시스템을 사용했다. 이는 마이크로소프트 스탠드얼론 디스크 베이직-86의 FAT 구현을 차용한 것이다. 지원하는 저장 매체는 8인치 및 5.25인치 플로피 디스크 드라이브로, 크로멕코(Cromemco), 타벨 일렉트로닉스(Tarbell Electronics), 노스스타 컴퓨터스(North Star Computers)가 제조한 S-100 플로피 디스크 컨트롤러 하드웨어상에서 동작했다. 웨스턴 디지털 FD1771 기반의 크로멕코 및 타벨 보드는 단면 단일 밀도 소프트 섹터 드라이브를 지원했고, FD1791을 사용하는 타벨 배밀도 보드도 지원되었다. 이후 SCP는 디스크 마스터(Disk Master) 시리즈 같은 고급 플로피 디스크 컨트롤러도 제공했다.

후속 DOS 버전들과 달리 86-DOS는 FAT ID 바이트나 BIOS 파라미터 블록(BPB)을 이용해 미디어 포맷을 구분하지 않았다. 대신 컴파일 시점에 서로 다른 드라이브 문자가 특정 물리 드라이브, 면, 밀도와 하드코딩되어 연결되었다. 따라서 디스크 종류에 따라 정확한 드라이브 문자로 접근해야만 올바르게 인식되었다. 이 개념은 나중에 DOS 3.x 이후의 DRIVER.SYS에서 더 유연하게 구현되었다.

86-DOS 12비트 FAT 포맷에는 두 가지 논리적 변형이 존재했다. 초기 포맷은 16바이트 디렉터리 엔트리를 사용했고, 86-DOS 0.42 버전부터는 32바이트 디렉터리 엔트리를 사용하는 후기 포맷이 도입되었다. 후자만 MS-DOS 및 PC DOS에서 알려진 FAT12와 논리적으로 호환된다. MS-DOS는 BPB가 없으면 클러스터 0의 FAT 엔트리에 있는 FAT ID를 읽어 하드코딩된 디스크 지오메트리 프로파일 중 하나를 선택하는 방식으로 폴백하는데, MS-DOS로 포맷된 볼륨에서는 이 ID가 논리 섹터 1(물리 CHS 0/0/2 또는 LBA 1)의 첫 바이트에 위치한다. 반면 86-DOS에서는 예약 섹터 영역이 훨씬 크기(전체 트랙) 때문에 프로토타입 FAT ID 0xFE(또는 0xFF)가 디스크 상의 다른 위치에 놓이게 되어 MS-DOS가 이를 찾을 수 없으며, 찾더라도 86-DOS의 더 큰 예약 섹터 영역을 고려하지 못한다.

CP/M 2 플로피 미디어는 RDCPM 명령을 통해 읽을 수 있었다. 86-DOS 자체는 고정 디스크(하드 디스크)에 대한 특별한 지원을 제공하지 않았으나, 톨그래스 테크놀로지스(Tallgrass Technologies) 같은 서드파티 업체가 하드 디스크 컨트롤러와 86-DOS용 I/O 시스템 확장을 제공하여 FAT12 파일 시스템의 크기 제한 내에서 슈퍼플로피처럼 하드 디스크를 사용할 수 있게 했다.

팀 패터슨이 마이크로소프트에서 개발한 후기 버전인 MS-DOS 1.25(1982년 3월, SCP 가젤 컴퓨터용)는 기본적으로 MS-DOS 호환 8인치 포맷(단일 예약 섹터)만 지원했으나, 빌드 옵션으로 이전 SCP 86-DOS 8인치 포맷(0.42 이후)을 읽고 쓸 수 있는 두 개의 추가 드라이브 문자를 제공할 수 있었다. 1984년 SCP가 자사 S-100 컴퓨터용으로 내놓은 MS-DOS 2.0 OEM 버전(SCP-500 디스크 마스터 플로피 컨트롤러용)은 5.25인치 DD/1S(180KB)와 DD/2S(360KB) FAT12 포맷을 추가 지원했고, 기존 포맷도 지원했으나 일부 파라미터가 MS-DOS 1.25와 다를 수 있었다.[3]

명령어와 유틸리티

86-DOS는 내부 명령어와 외부 명령어 체계를 갖추었다. CP/M의 명령어 일부를 공유하여 이식성을 높였다. 복사 명령어는 CP/M의 PIP 대신 COPY라는 더 직관적인 이름을 사용했다. 장치 파일 개념을 도입해 프린터, 통신 포트 등을 특수 파일명으로 다루지 않고 일반 파일처럼 접근할 수 있게 했다. Z80 소스 코드를 8086 소스 코드로 번역해 주는 TRANS 명령어를 제공하여 CP/M 프로그램 이식을 도왔다.

원시적인 라인 에디터인 에드린(Edlin)이 포함되어 있었다. 에드린은 1982년 IBM이 하드 디스크 호환 DOS를 요청했을 때 PC DOS 2.0이 거의 완전하게 재작성되면서 86-DOS의 잔재가 대부분 사라진 뒤에도 오랫동안 남았다. 1991년 6월 MS-DOS 5.0에서 QBasic 기반의 MS-DOS 에디터가 포함되기 전까지, 에드린은 마이크로소프트 버전 DOS에 기본 탑재된 유일한 에디터였다. 32비트 윈도우 10까지 에뮬레이트된 DOS 환경에서 에드린을 여전히 사용할 수 있다.[3]

생태계·커뮤니티

86-DOS는 상용 운영체제로 SCP의 하드웨어 구매자와 별도 라이선스 구매자를 대상으로 배포되었다. 초기에는 SCP의 8086 보드 사용자 커뮤니티를 중심으로 활용되었다. 마이크로소프트가 라이선스를 취득한 뒤 팀 패터슨이 마이크로소프트로 이직하면서 개발 주체가 마이크로소프트로 이동했고, IBM PC 프로젝트와의 연계를 통해 PC DOS와 MS-DOS 생태계의 씨앗이 되었다. SCP는 이후 자사 하드웨어용 MS-DOS OEM 버전(1.25, 2.0)을 직접 공급하기도 했다. 현재는 패터슨 테크놀로지(Paterson Technology) 사이트에서 86-DOS 문서가 제공되며, 알테어 8800 SIMH 시뮬레이터상에서 SCP 86-DOS 1.0을 구동해 볼 수 있는 환경이 하워드 M. 하트(Howard M. Harte)에 의해 제공되고 있다.[3]

사용 사례·작품

86-DOS 자체로 작성되거나 이식된 특정 유명 응용 프로그램이나 작품에 대한 기록은 자료에 나타나지 않는다. 그러나 86-DOS의 직접적인 후계인 MS-DOS와 PC DOS가 IBM PC 호환 기종 시장의 표준 운영체제로 자리잡으면서, 86-DOS는 현대 PC 소프트웨어 생태계의 시초가 되는 플랫폼 역할을 수행했다. CP/M 프로그램의 소스 레벨 이식을 돕는 TRANS 명령어 등을 통해 당시 비즈니스 소프트웨어와 개발 도구들이 86-DOS 환경으로 옮겨오는 데 기여했다.[3]

평가

86-DOS는 CP/M-86의 부재라는 시장 공백을 신속히 메운 실용적인 해결책으로 평가된다. 팀 패터슨이 단기간에 CP/M과 호환되는 API와 명령 체계를 구현하고, FAT 파일 시스템과 장치 파일, 안전한 디스크 업데이트 정책 등 독자적 개선을 더한 점은 기술적 역량을 보여준다. 마이크로소프트가 저렴한 비용으로 라이선스한 뒤 전권을 인수하여 IBM PC용으로 포팅함으로써, 86-DOS는 1980년대 이후 PC 운영체제 시장을 지배하게 된 MS-DOS/PC DOS 계열의 직접적 조상이 되었다.

동시에 CP/M과의 유사성을 둘러싼 법적·윤리적 논란의 대상이기도 했다. 디지털 리서치는 인터페이스 모방을 문제 삼았으나 법적 조치로는 이어지지 못했고, 코드 표절 여부를 둘러싼 공방(제리 포넬의 주장, 2004년 서적, 패터슨의 반박 및 명예훼손 소송)은 결론적으로 패터슨의 독자 개발 주장이 법원에서 받아들여지는 형태로 마무리되었다. SCP가 마이크로소프트의 IBM과의 관계를 이유로 추가 보상(100만 달러 합의금)을 받아낸 점은 초기 마이크로소프트의 비즈니스 관행을 보여주는 사례로 거론된다. 에드린처럼 10년 넘게 DOS에 잔존한 구성 요소가 있는가 하면, PC DOS 2.0에서 거의 완전히 재작성되면서 86-DOS의 코드베이스는 빠르게 역사 속으로 사라지기도 했다.[3]

이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.