처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.03 53

40년 전의 OS가 386 보호 모드에서 부활했어요 — CP/M-386 이야기

Hacker News 원문 보기
40년 전의 OS가 386 보호 모드에서 부활했어요 — CP/M-386 이야기

잠깐, CP/M이 뭐였더라?

혹시 CP/M이라는 이름 들어보셨나요? 1970년대 중반 게리 킬달(Gary Kildall)이 만든 개인용 컴퓨터 운영체제인데요. MS-DOS가 세상을 지배하기 전, 그러니까 IBM PC가 나오기도 전에 8비트 컴퓨터(인텔 8080, Z80 계열)의 사실상 표준 OS였어요. 재미있는 건 MS-DOS의 뿌리가 사실 CP/M이라는 거예요. IBM이 첫 PC에 넣을 OS를 급하게 찾던 시절, 마이크로소프트가 CP/M을 본떠 만들어진 QDOS라는 OS를 사들여 다듬은 게 MS-DOS거든요. 그래서 초기 DOS의 드라이브 문자(A:, B:)나 8.3 형식 파일명 같은 것들이 전부 CP/M에서 물려받은 유산이에요.

그런 CP/M이 2026년에, 그것도 인텔 386의 32비트 보호 모드 위에서 돌아가는 모습으로 다시 나타났어요. CP/M-386이라는 오픈소스 프로젝트인데요, 에뮬레이터로 옛날 OS를 흉내 내는 게 아니라 진짜 CP/M 소스 코드를 386용으로 다시 컴파일해서 네이티브로 부팅시킨 물건이에요.

어떻게 이식했을까: C로 짜여 있던 CP/M-68K가 열쇠

이 프로젝트의 핵심 아이디어는 CP/M-68K를 출발점으로 삼았다는 거예요. CP/M-68K는 Digital Research가 모토로라 68000 CPU용으로 만든 버전(CP/M 4 계열)인데, 어셈블리로 짜인 8비트 CP/M과 달리 대부분이 이식 가능한 C 언어로 작성돼 있었거든요. 40여 년 전에 이식성을 생각하며 C로 짜둔 코드 덕분에, 지금 GCC 크로스 컴파일러(i386-elf)로 그대로 다시 빌드할 수 있었던 거죠.

구조를 조금 뜯어보면 이래요. CP/M은 크게 세 부분으로 나뉘는데요. BDOS는 파일 시스템과 입출력을 담당하는 커널 같은 부분이고, CCP는 사용자의 명령어를 받아 처리하는 셸이에요. 이 둘은 Digital Research의 CP/M-68K 4.x 원본 소스를 가져와 386용으로 재컴파일했고, 하드웨어를 직접 만지는 BIOS 부분만 새로 작성했어요. 부팅은 GRUB의 Multiboot 규격을 써서 QEMU나 Bochs 같은 에뮬레이터는 물론 일부 실제 PC에서도 그대로 올라온다고 해요.

기술적으로 흥미로운 포인트는 메모리 모델이에요. 예전에 인텔 CPU용으로 나왔던 CP/M-86은 16비트 리얼 모드에서 세그먼트라는 방식으로 메모리를 다뤘는데요. 이게 뭐냐면, 메모리를 64KB짜리 조각으로 나눠서 '몇 번째 조각의 몇 번째 칸' 식으로 주소를 지정하는 방식이라 프로그래머 입장에서 꽤 골치 아픈 구조였어요. 반면 CP/M-386은 32비트 보호 모드의 플랫(flat) 메모리 모델을 써요. 메모리 전체를 하나의 큰 연속 공간으로 보는 현대적인 방식이죠. 덕분에 응용 프로그램이 쓸 수 있는 메모리 영역인 TPA(Transient Program Area)가 8비트 시절 최대 64KB에서 이론상 약 3.5GB까지 커졌어요. 같은 OS 설계인데 프로그램이 쓸 수 있는 공간만 5만 배 넘게 커진 셈이에요.

이게 합법인가요? 라이선스 이야기

옛날 상용 OS 소스를 이렇게 써도 되나 싶으실 텐데요, 됩니다. CP/M의 권리를 이어받은 쪽이 2001년에 소스를 공개했고, 2022년에 자유로운 배포와 수정을 허용한다는 취지의 추가 확인까지 나오면서 사실상 오픈소스가 됐거든요. 이 프로젝트도 DR 원본 소스는 그 역사적 라이선스로, 새로 작성한 코드는 MIT 라이선스로 배포해요. 참고로 저장소에는 DR의 오리지널 C 컴파일러 소스도 역사 자료로 함께 들어 있어요.

레트로 OS 부활, 왜 자꾸 나올까

요즘 레트로 컴퓨팅 쪽에서는 이런 '옛 OS 현대 이식'이 하나의 장르가 됐어요. 8비트 기계에 유닉스 계열 OS를 올리는 FUZIX 같은 프로젝트도 있고, 옛 하드웨어를 통째로 재현하는 에뮬레이터 생태계도 활발하고요. 단순한 향수 때문만은 아니에요. 이런 OS들은 코드 전체가 몇만 줄 수준이라, 수천만 줄짜리 리눅스 커널에서는 불가능한 '전체를 다 읽고 이해하는 경험'을 할 수 있거든요.

우리에게 주는 의미

실무에 당장 쓸 물건은 당연히 아니지만, OS 내부가 궁금했던 분들에게는 훌륭한 교재예요. 부팅, 셸, 파일 시스템, 시스템 콜이 어떻게 맞물리는지를 감당 가능한 크기의 C 코드로 볼 수 있으니까요. 그리고 '잘 짠 C 코드는 40년 뒤 다른 CPU에서도 컴파일된다'는 이식성의 교훈도 인상적이에요. QEMU만 있으면 바로 부팅해볼 수 있으니 주말에 한번 띄워보셔도 좋겠어요.

한 줄 정리: 40년 전 C로 작성된 CP/M-68K 소스가 386 보호 모드에서 네이티브로 부활했어요. 여러분이 부활시켜 보고 싶은 옛날 소프트웨어가 있다면 뭔가요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.