레이 오지의 플로피에서 발견된 MS-DOS 4.0 코드 공개
MS-DOS에서 OS/2로 넘어가는 중간단계의 멀티태스킹 DOS의 소스코드가 발견돼 일반에 공개됐다. 마이크로소프트는 지난 26일 깃허브에 'MS-DOS 4.0' 소스코드를 MIT 라이선스로 공개했다. 이 소스코드는 마이크로소프트 내부 저장소에 없던 것을 우연한 기회로 복원한 것이다. 마이크로소프트에 의하면, 마이크로소프트 아카이브에 MS-DOS 4.0의 완벽한 코드는 없었다고 한다. 영국의 코노 스타프로스트 하이드란 연구원은 DOS 4, MT-DOS와 OS/2 간의 관계를 문서화하는 작업을 진행하던 중 플로피디스크에 담긴 MS-DOS 4.0의 소스코드 일부를 발견했다. 그는 전 마이크로소프트 최고기술책임자(CTO)인 전설적인 프러그래머 레이 오지에게 서신을 보냈다. 레이 오지는 자신의 플로피디스크 중 1984년 5월 작성한 미공개 DOS 4.0 베타 바이너리를 발견했다. 하이드는 마이크로소프트의 오픈소스프로그램오피스(OSPO)에 연락했고 DOS 4의 소스를 탐색할 것을 요청했다. 이에 스콧 한셀만 마이크로소프트 개발자커뮤니티 부사장이 인쇄된 레이오지의 스캔 문서를 보고 원본 디스크 이미지를 만들었다. 이미지에 사용된 바이너리는 1984년 5월 컴파일된 것으로, 마이크로소프트의 OEM과 파트너에게 MS-DOS 4.0 베타 릴리스 버전이 전달된 건 1984년 6월5일이었다. 깃허브에 공개된 MS-DOS 4.0은 소스코드 외에도 레이오지의 DOS 문서 PDF도 포함한다. MS-DOS 4.0은 마이크로소프트와 IBM 공동으로 개발한 운영체제(OS)다. DOS는 1980년대 중반 시애틀컴퓨터프로덕트(SCP)란 회사의 개발자 팀 패터슨이 작성한 QDOS에서 시작됐으며, IBM이 1981년 마이크로소프트에 위탁개발한 후 라이선스를 구입해 인텔 프로세서의 이름에서 딴 86-DOS로 이름을 바꿨다. 이후 1981년 중반 마이크로소프트가 라이선스를 획득해 일반에 판매하며 MS-DOS로 공급된다. IBM은 자사 제품에 탑재되는 DOS를 PC-DOS라 불렀다. 팀 패터슨을 고용해 6주만에 MS-DOS 1.0을 개발완료한 마이크로소프트는 그 직후 더 온전한 OS로서 기능을 갖춘 MS-DOS 개발을 추진했다. 특히 단일작업 OS였던 MS-DOS에 두 가지 이상의 작업을 같이 수행할 수 있는 멀티태스킹 기능이 강하게 요구됐다. 멀티태스킹 DOS 개발은 1981년부터 시작됐지만, 계속 지연되다 1984년 버전명이 MS-DOS 4.0이란 이름을 받았다. MS-DOS 4.0믄 멀티태스킹 MS-DOS의 약어인 'MT-DOS'로도 불렸다. MS-DOS 4.0은 일반에 널리 판매되지 않았다. 4.0 버전은 일부 소프트웨어 개발 파트너사에게 비공개로 전달됐고, 엄격한 비밀엄수계약으로 외부 유출을 차단했다. MS-DOS 4.0은 갈수록 발전하는 개인용 컴퓨터(PC)의 사양과 수요에 맞춰 멀티태스킹과 네트워크 등을 수용하도록 개발됐다. 하지만 협력과 경쟁의 줄타기를 이어가던 IBM과 마이크로소프트의 관계가 경쟁 일변도로 치닫는 와중에 널리 보급되지 못했다. MS-DOS 4.0은 OS/2로 IBM의 전략이 넘어가면서 결국 좌초됐지만, 아이디어와 아키텍처 측면에서 IBM과 마이크로소프트의 차세대 합작품 'OS/2' 개발로 이어지는 중요한 단계에 해당한다. 1987년 발매된 OS/2는 멀티태스킹뿐 아니라 그래픽사용자인터페이스(GUI)와 당시 최강의 기능 및 성능을 갖췄었다. 하지만 마이크로소프트 윈도3.X의 대성공으로 OS/2는 상업적으로 실패했다. 공개된 MS-DOS 4.0은 IBM PC XT, 최신 펜티엄, 오픈소스 PCem 및 86box 에뮬레이터 등에서 실행가능하다. 코노 스타프로스트 하이드는 자신의 블로그에서 멀티태스킹 MS-DOS의 역사를 다룬 글을 게재했다. 2회에 걸쳐 실릴 글 중 1부가 공개돼 있다. 이번 소스코드 발견과 공개에 MS-DOS 4.0 저작자 중 일부도 참여했다고 한다. 마이크로소프트는 공개된 4.0 코드가 베타 바이너리이므로 추후 추가적인 자료를 발견하면 업데이트하겠다고 밝혔다. 마이크로소프트는 2014년 컴퓨터역사박물관에 MS-DOS 1.25와 2.0 소스코드를 기증했으며, 깃허브로도 해당 코드를 제공하고 있다.