PCjs Machines – 클래식 IBM PC, DEC 미니컴퓨터, 계산기 및 게임의 브라우저 내 에뮬레이션

PCjs Machines – 클래식 IBM PC, DEC 미니컴퓨터, 계산기 및 게임의 브라우저 내 에뮬레이션

PCjs Machines가 1970‑1990년대 컴퓨팅을 브라우저로 가져옵니다

PCjs Machines는 누구나 현대 웹 브라우저 안에서 완전한 기능을 갖춘 IBM PC 호환기, DEC 미니컴퓨터, 클래식 계산기 및 아케이드 게임을 실행할 수 있게 하여, 레거시 하드웨어나 OS를 설치하지 않고도 원본 경험을 보존합니다.

이 프로젝트는 Jeff Parsons가 GitHub에서 유지 관리하고 있으며(MIT 라이선스) 방대한 에뮬레이션 하드웨어, 운영 체제, 애플리케이션 및 문서 카탈로그를 제공합니다.


오늘 실행할 수 있는 것들

  • IBM PC 호환기 – 원래 Model 5150부터 AT, XT, AT‑호환 COMPAQ 기계, 그리고 IBM PS/2 모델까지. 각 기계는 CGA, EGA, VGA 또는 모노크롬 그래픽으로 시작할 수 있으며, 많은 경우 전체 BIOS 소스가 포함됩니다.
  • DEC 미니컴퓨터 – PDP‑10 KA10/KL10, PDP‑11/20/45/70 및 다양한 운영 체제(RT‑11, RSTS/E, UNIX 변종)와 진단 테이프.
  • 프로그래머블 계산기 – TI‑57, TI‑55, TI‑42 및 Ohio Scientific Challenger 1P, 내장 BASIC 프로그램과 진단 기능 포함.
  • 아케이드 클래식 – Space Invaders(1978)가 원본 하드웨어 구성으로 실행됩니다.
  • 소프트웨어 라이브러리 – 초기 PC‑DOS 유틸리티(DONKEY.BAS, VisiCalc)부터 Windows 95, MS‑DOS 게임(Wolfenstein 3D, Dune II), 생산성 제품군(Lotus 1‑2‑3, Microsoft Word), 클래식 텍스트 어드벤처(Zork I‑III, The Hitchhiker’s Guide to the Galaxy)까지 200개 이상의 타이틀.
  • 개발 도구 – 원본 컴파일러와 어셈블러(Turbo Pascal, Microsoft C, Borland Sidekick, IBM Macro Assembler)를 실행할 수 있어, 브라우저 내에서 역사적인 소프트웨어 개발이 가능합니다.

이 모든 항목은 사이트의 PCjs Explorer 트리를 통해 접근할 수 있으며, 카테고리를 확장하거나 기계를 무작위 선택하거나 특정 ROM 및 디스크 이미지를 탐색할 수 있습니다.


보존 및 교육에 중요한 이유

  • 정통 하드웨어 동작 – JavaScript CPU 코어는 타이밍, I/O 포트 및 비디오 메모리 레이아웃을 에뮬레이션하므로 프로그램이 원본 기계와 동일하게 하드웨어와 상호 작용합니다.
  • 설치 없이 접근 – 사용자는 최신 브라우저만 있으면 되며, VM 이미지, 부팅 매체 또는 레거시 운영 체제가 필요 없습니다.
  • 오픈소스 투명성 – 소스 코드(https://github.com/jeffpar/pcjs)는 공개되어 있어 개발자가 감시, 확장 또는 다른 플랫폼으로 포팅할 수 있습니다.
  • 교육적 가치 – 학생들은 물리적 하드웨어가 부족하거나 손상되기 쉬운 상황에서도 초기 운영 체제, 어셈블리 언어 및 GUI 진화를 탐구할 수 있습니다.

Hacker News 커뮤니티 하이라이트

mk_stjames: “PCjs 안에서 Windows 3.1용 VB 프로그램을 만들고 .exe와 vbrun100.dll을 내보낸 뒤 1992년 플로피 디스크에 복사해 빈티지 486 DX에서 실행했습니다. 현대 Mac → JavaScript 에뮬레이터 → 플로피 → 1992년 하드웨어 전체 체인이 완벽히 동작했어요.”
이는 PCjs가 수십 년에 걸친 컴퓨팅을 연결해 현대 개발자가 진짜 빈티지 머신에서 실행되는 소프트웨어를 만들 수 있게 함을 보여줍니다.

glimshe: “PCjs의 Visicalc(1981)은 진정한 혁명이 어떤 모습이었는지 보여줍니다.”
이 댓글은 PCjs에 제공되는 소프트웨어의 역사적 의미를 강조합니다; 단순한 향수가 아니라 획기적인 애플리케이션의 살아있는 박물관입니다.

drivers99: “IBM PC 부팅 디스크를 탐색할 수는 있지만 음악에 잡음이 있습니다.”
사용자는 아날로그 사운드 하드웨어를 JavaScript로 재현하는 복잡성 때문에 발생하는 작은 에뮬레이션 결함을 보고합니다.

CharlesW: “전체 화면 Oregon Trail과 King’s Quest를 아이들에게 보여주고 싶어요.”
PCjs는 클래식 게임을 새로운 세대가 즉시 즐길 수 있게 합니다.

martin_drapeau: “Dune II, Wolfenstein 3D, Commander Keen – 모두 내가 예전에 즐기던 게임들. 정말 멋져요!”
타이틀의 폭넓음은 90년대 초반 PC 게임을 보존하여 인터랙티브 엔터테인먼트 시대를 유지합니다.


시작하는 방법

  1. https://www.pcjs.org/ 방문 – 홈 페이지에 로고와 탐색 링크(About, Blog, Explorer, Repository, Tools)가 표시됩니다.
  2. Explorer 열기Expand All을 클릭해 전체 하드웨어 트리를 탐색하거나 Surprise Me로 무작위 기계를 선택합니다.
  3. 기계 선택 – 예를 들어 IBM → PC (Model 5150) → VGA Display를 선택해 VGA 그래픽을 갖춘 완전 에뮬레이션 IBM PC를 실행합니다.
  4. 소프트웨어 로드 – 원하는 소프트웨어 썸네일(예: Microsoft Windows 3.1 또는 Zork I)을 클릭하면 해당 디스크 이미지가 자동으로 마운트됩니다.
  5. 상호 작용 – 에뮬레이터는 키보드와 마우스 입력을 제공하며, 대부분의 기계는 브라우저 오디오 API를 통해 원본 사운드를 재생합니다.

기술적 기반

  • CPU 코어 – 순수 JavaScript/TypeScript로 작성되었으며 8088/8086, 80286, 80386, 80486, 8080, 6502 및 PDP‑11 명령어 집합을 구현합니다.
  • 메모리 및 I/O – 메모리 맵은 원본 하드웨어를 그대로 반영하며 DMA, 인터럽트 컨트롤러 및 주변 포트를 지원합니다.
  • 그래픽 – 텍스트 모드 CGA/EGA/VGA와 래스터 그래픽이 HTML5 캔버스에 렌더링되며, 색상 팔레트는 원본 사양과 일치합니다.
  • 스토리지 – 디스크 이미지는 JSON 기술자로 저장되어 에뮬레이터가 필요할 때 읽어들여 네트워크 지연 없이 빠르게 로드됩니다.
  • 확장성 – 새로운 기계는 CPU 유형, RAM 크기, ROM 파일 및 주변 장치를 설명하는 JSON 매니페스트를 정의함으로써 추가할 수 있습니다.

제한 사항 및 향후 방향

  • 오디오 정확도 – 일부 프로그램(예: Dune II)에서 볼륨이나 타이밍 문제가 발생합니다; 커뮤니티가 사운드 카드 모델을 기여하도록 권장합니다.
  • 주변 장치 지원 – 초기 모뎀, 특수 그래픽 카드 등 모든 레거시 주변 장치가 현재 에뮬레이션되지 않습니다.
  • 저사양 기기 성능 – 최신 데스크톱에서는 원활히 동작하지만 오래된 스마트폰에서는 지연이 발생할 수 있습니다.
  • 문서 부족 – 사이트가 많은 매뉴얼과 데이터시트를 링크하고 있지만, 일부 희귀 하드웨어 구성에 대한 상세 문서는 부족합니다.

기여 방법

프로젝트는 다음과 같은 기여를 환영합니다:

  • 코드 – GitHub 저장소를 포크하고 CPU 코어를 개선하거나 새로운 장치를 추가하고 버그를 수정합니다.
  • 콘텐츠 – 적절한 퍼블릭 도메인 또는 쉐어웨어 라이선스 하에 추가 디스크 이미지, 매뉴얼 또는 소프트웨어 패키지를 제출합니다.
  • 테스트 – 기존 테스트 스위트(CPU 테스트, VGA Black Book 테스트)를 여러 브라우저에서 실행하고 회귀를 보고합니다.

결론

PCjs Machines는 최초 IBM PC부터 초기 Windows, DEC 미니컴퓨터, 클래식 아케이드 타이틀에 이르기까지 개인용 컴퓨터 역사의 전체 스펙트럼을 경험하고 보존하며 학습할 수 있는 포괄적인 브라우저 기반 플랫폼을 제공합니다. 오픈소스 특성과 방대한 소프트웨어 아카이브는 취미 개발자, 교육자 및 오늘날 디지털 세계를 형성한 컴퓨팅 시대를 다시 체험하고자 하는 모든 이에게 귀중한 자원입니다.


요약: PCjs Machines는 무료 오픈소스 JavaScript 에뮬레이터로, IBM PC 호환기, DEC PDP‑11/10, 빈티지 계산기, 아케이드 게임 및 수십 개의 역사적 소프트웨어를 웹 브라우저에서 직접 실행할 수 있게 합니다.

제목: PCjs Machines – 클래식 IBM PC, DEC 미니컴퓨터, 계산기 및 게임의 브라우저 내 에뮬레이션

Sources