
45년 전 코드가 깃허브에 올라왔어요
혹시 "DOS"라는 이름을 들어보신 적 있나요? 요즘 개발자라면 윈도우의 명령 프롬프트(cmd)나 파워셸을 떠올리실 텐데요, 그 조상님 격이 되는 운영체제가 바로 MS-DOS거든요. 그런데 최근에 마이크로소프트가 "지금까지 발견된 것 중 가장 오래된" DOS 소스코드를 깃허브에 오픈소스로 공개했어요. 정확히 말하면 86-DOS 0.1 버전인데, 이건 마이크로소프트가 시애틀 컴퓨터 프로덕트(Seattle Computer Products)에서 사들이기 전 원형이에요. 1980년대 초반의 코드가 거의 그대로 살아남아 우리 손에 들어왔다는 게 신기하죠.
사실 마이크로소프트는 이전에도 MS-DOS 1.25, 2.0, 4.0 등의 소스코드를 차근차근 공개해 왔어요. 다만 이번에 공개된 86-DOS 0.1은 그보다 훨씬 더 앞선 시기의 것이라 의미가 남달라요. 컴퓨터 역사 박물관(Computer History Museum)이 한 콜렉터로부터 8인치 플로피 디스크 형태로 받은 것을 기증받아, 마이크로소프트가 MIT 라이선스로 풀어놓은 거예요.
어셈블리어로 쓰인 운영체제의 속살
이 코드를 들여다보면 흥미로운 점이 많아요. 우선 전체가 8086 어셈블리어로 작성되어 있어요. 어셈블리어가 뭐냐면, CPU가 직접 이해하는 기계어와 거의 1:1로 대응되는 가장 낮은 수준의 프로그래밍 언어예요. 요즘 우리가 쓰는 파이썬이나 자바스크립트가 "사람의 말"에 가깝다면, 어셈블리어는 "CPU의 말"에 훨씬 가까운 셈이죠. 그래서 한 줄 한 줄이 굉장히 짧고 단순한데, 그걸로 운영체제 전체를 만들었다는 점이 놀라워요.
파일을 보면 COMMAND.ASM, IOSYS.ASM 같은 이름들이 보여요. 지금 우리가 쓰는 command.com의 원형이 바로 여기 있는 거죠. 인상적인 건 코드 곳곳에 개발자가 직접 손으로 쓴 듯한 주석들이 남아 있다는 거예요. 당시에는 IDE도 없고 정교한 디버거도 없었는데, 한 명의 프로그래머가 거의 혼자서 운영체제 골격을 짰다고 생각하면 요즘 시대의 협업 개발과 너무 다른 풍경이에요. 86-DOS의 원작자는 팀 패터슨(Tim Paterson)이라는 사람인데, 그가 디지털 리서치(Digital Research)의 CP/M이라는 운영체제를 참고해서 짧은 시간 안에 만들었다는 것도 유명한 이야기예요.
CP/M의 그늘과 MS-DOS의 탄생
여기서 잠깐 업계 배경을 짚어볼게요. 1970년대 후반에는 CP/M이라는 8비트용 운영체제가 사실상 표준이었어요. IBM이 PC를 만들면서 CP/M을 쓰려고 했는데, 협상이 잘 안 풀려서 결국 마이크로소프트로 발길을 돌렸어요. 당시 마이크로소프트는 운영체제가 없었기 때문에, 시애틀 컴퓨터 프로덕트에서 만든 86-DOS(원래 이름은 QDOS, "Quick and Dirty OS")를 사들여 PC-DOS / MS-DOS로 다듬어 IBM에 납품했죠. 이 한 번의 거래가 결국 PC 시장 전체의 흐름을 마이크로소프트 중심으로 돌려놓은 결정적 순간이에요.
그래서 이번에 공개된 0.1 버전은 "빌 게이츠가 IBM에 납품하기 직전, 가장 원형에 가까운 모습"이라고 볼 수 있어요. 비슷한 시도로는 IBM이 자체적으로 유지하던 PC DOS 코드, 그리고 오픈소스 진영의 FreeDOS 같은 프로젝트들이 있어요. FreeDOS는 지금도 활발히 유지되고 있고, 옛날 게임을 돌리거나 임베디드 장비에서 가볍게 쓰이기도 해요. 또 어셈블리 운영체제라는 관점에서는 MenuetOS나 KolibriOS처럼 "운영체제를 통째로 어셈블리로 짜보자"는 매니아 프로젝트들도 떠올릴 수 있고요.
한국 개발자에게 주는 시사점
그럼 이걸 우리가 실무에 어떻게 쓸 수 있을까요? 솔직히 말해서 86-DOS를 가지고 새 서비스를 만들 일은 거의 없어요. 다만 운영체제의 기초를 공부하는 사람에게는 정말 좋은 교재가 될 수 있어요. 요즘 리눅스 커널은 수백만 줄이 넘어가서 전체 구조를 파악하기가 사실상 불가능한데, 86-DOS 0.1은 코드 양이 아주 적어서 "부팅이 어떻게 일어나고, 디스크에서 파일을 어떻게 읽어오고, 사용자 명령을 어떻게 해석하는지"를 처음부터 끝까지 따라가 볼 수 있어요. CS 전공 수업에서 다루는 OS 이론을 코드로 직접 확인해보고 싶다면 더할 나위 없는 자료예요.
또 한 가지, 이번 공개는 "역사적 자료를 어떻게 보존하고 오픈할 것인가"라는 측면에서도 시사하는 바가 커요. 우리나라에도 1990년대 PC통신 시절의 도스 프로그램들이 많이 사라졌거든요. 누군가는 백업해두지 않으면 영영 잃어버리는 자료들이죠. 회사나 개인이 가지고 있는 옛 코드, 오래된 프로젝트 파일을 그냥 묻어두지 말고 공개를 고민해보는 것도 의미 있는 일이에요.
마무리
45년 전 청년 개발자가 짧은 시간 안에 짜낸 어셈블리 코드가, 지금 우리가 쓰는 윈도우 생태계의 뿌리가 됐다는 사실을 새삼 깨닫게 되는 공개예요. 여러분은 만약 지금 만들고 있는 코드가 40년 후에 오픈소스로 풀린다면, 미래의 개발자에게 어떤 인상을 주고 싶으세요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공