---
title: "\"PC 호환\"이라는 게 대체 뭘까?"
published: 2026-01-04T23:28:21.000Z
canonical: https://jeff.news/article/419
---
# "PC 호환"이라는 게 대체 뭘까?

1981년 IBM PC부터 현재까지 'PC 호환'의 의미를 추적한 글. BIOS 추상화의 기원, 클론 전쟁, 그래픽 비호환, UEFI 전환을 거치며 현대 PC는 실제로 1981년 소프트웨어를 돌릴 수 없다는 결론. 'PC 호환'은 기술적 정의가 아니라 사회적 구성물이라는 주장.

1981년 IBM PC부터 지금까지, "PC 호환"이라는 개념이 어떻게 변해왔는지 추적한 글임. 결론부터 말하면, 현대 PC는 1981년 소프트웨어를 돌릴 수 없고, "PC 호환"은 기술적 정의가 아니라 사회적 합의에 가까움.

## BIOS의 기원: CP/M에서 시작됨

- 1970년대 CP/M 시절에는 같은 CPU를 써도 하드웨어가 전부 달랐음. 소프트웨어가 하드웨어를 직접 건드리면 다른 시스템에서 안 돌아감
- CP/M이 만든 해결책이 BIOS라는 추상화 계층임. 하드웨어별로 BIOS만 바꾸면 애플리케이션은 수정 없이 동작함
- 1979년 시애틀 컴퓨터 프로덕트가 8086용으로 CP/M 구조를 따라 만든 OS를 마이크로소프트가 사들여서 IBM에 납품한 게 MS-DOS의 시작임

## IBM PC 클론 전쟁

- IBM은 PC를 거의 전부 인텔 기성 부품으로 만들었고, 회로도까지 공개함. 누구나 똑같은 보드를 만들 수 있었음
- 유일한 장벽이 BIOS 저작권이었음. 1982년 Williams v. Artic 판결로 ROM에 고정된 기계어도 저작권 보호를 받게 됨
- Compaq이 클린룸 역설계로 IBM BIOS를 기능적으로 똑같이 구현해서 합법적으로 클론을 만들어냄. 다른 업체들은 대충 만들어서 호환성이 들쭉날쭉했음

## 80186의 함정과 직접 하드웨어 접근 문제

- 인텔 80186은 8086보다 빠르고 칩 통합도도 높았지만, 하드웨어 레벨에서 호환이 안 됐음
- 이론상 BIOS를 통해서만 접근하면 문제없지만, 현실에서는 성능이나 기능 때문에 소프트웨어가 하드웨어를 직접 건드림
- IBM이 시장 지배적이니까 개발자들이 IBM 하드웨어에 맞춰서 코딩함. 결국 "DOS 호환이지만 PC 비호환"인 기기들은 시장에서 사라짐

## PS/2, 새 확장 버스, 그리고 하위호환의 집착

- IBM이 PS/2에서 새 확장 버스(MCA)를 도입하고 특허로 클론을 막으려 했지만, 하드웨어 자체는 하위호환을 철저히 유지함
- 286의 주소 공간 확장, 새 키보드 컨트롤러 등 변화가 있었지만 전부 기존 소프트웨어가 깨지지 않도록 설계됨
- 수십 년간 PC 호환 = 공식 인터페이스뿐 아니라 실제 하드웨어까지 동일하게 지원하는 것이었음

## 그래픽의 비호환: CGA에서 시작된 분열

- 원조 PC에도 MDA(텍스트 전용)와 CGA(그래픽 가능) 두 종류 카드가 있었고, 소프트웨어가 이미 나뉘었음
- 1984년 PCjr이 4색 이상 지원하는 새 비디오 모드를 추가했지만, 상업적으로 대실패해서 그 모드를 쓰는 소프트웨어는 어디서도 안 돌아감
- EGA로 와도 CGA 완전 호환은 아니었음. IBM PC/AT + EGA가 "PC 호환"이냐고 물으면 다들 그렇다고 하겠지만, 원조 PC용 소프트웨어 중 안 돌아가는 게 있음

## UEFI 시대: 레거시 BIOS의 퇴장

- 현대 시스템은 대부분 레거시 BIOS를 구현하지 않음. DOS가 의존하는 추상화 계층 자체가 없어짐
- 초기 UEFI는 CSM(호환성 서비스 모듈)을 제공해서 BIOS 인터럽트를 UEFI 호출로 변환했는데, 엄밀히 말하면 이것도 "PC 호환"은 아님
- USB 키보드, PCI 사운드카드 등 현대 하드웨어를 1981년 방식으로 직접 접근하려 하면 동작 안 함. 펌웨어가 에뮬레이션해줘야 하는데, 그 수요가 너무 적어서 아무도 안 함

## 터보 버튼의 추억: 속도 호환성

- 원조 PC는 CPU 클럭이 정확히 정해져 있었고, 소프트웨어가 그 타이밍에 의존해서 만들어짐
- CPU가 빨라지니까 소프트웨어가 깨졌고, 그래서 등장한 게 터보 버튼(클럭을 원래 속도로 낮추는 버튼)임
- 윈도우조차 빠른 머신에서 크래시하는 경우가 있었음. 하드웨어 디테일은 결국 소프트웨어 레벨로 새어나옴

## 결론: "PC 호환"은 기술이 아니라 사회적 합의

- 현대 PC에 1981년 DOS를 깔 수 없음. 아무리 노력해도 메모리 세그멘테이션, CPU 타이밍, 직접 GPU 접근 등에서 완벽한 호환은 불가능함
- "PC 호환"을 기술적으로 엄밀하게 정의하는 건 지금도, 사실 예전에도 불가능했음
- 1981년에 현대 PC를 가져다 놓으면 언론은 감탄하겠지만, 플라이트 시뮬레이터가 안 돌아간다고 지적할 것임
- "PC 호환"은 시대에 따라 사람들이 암묵적으로 합의한 사회적 구성물이라는 게 글의 핵심 주장임

## 핵심 포인트

- CP/M에서 시작된 BIOS 추상화 계층이 PC 호환성의 기반이 됨
- Compaq의 클린룸 역설계로 합법적 PC 클론 시대가 열렸지만, 소프트웨어가 하드웨어를 직접 건드리면서 호환성 문제 지속
- 80186, PCjr, EGA 등 변화가 있을 때마다 '호환'의 범위가 달라짐
- 현대 UEFI 시스템은 레거시 BIOS를 구현하지 않아 DOS 자체가 부팅 불가
- 'PC 호환'은 시대에 따라 암묵적으로 합의된 사회적 구성물

## 인사이트

40년 넘게 PC 생태계를 지탱한 '호환성'이라는 개념이 실은 한 번도 엄밀하게 정의된 적 없다는 점이 흥미로움. 하위호환이 깨지는 건 늘 있었고, 그때마다 업계가 암묵적으로 기준선을 재설정해온 것.
