오래된 윈도우의 시작음은 시간이 지나도 질리지 않는다.

소프트웨어 취미 프로젝트를 진행하는 이들이 종종 ESA 위성 같은 독특한 장치에서 Doom을 구동시켜보려 하는 경우가 많습니다. 프로그래머 허춘휘는 이러한 일반적인 접근 방식과는 조금 다른 시도를 했는데요. 작은 ESP32-S3 마이크로컨트롤러 보드에서 작동하는 i386 PC 에뮬레이터를 구축하기로 결정했습니다. 이 에뮬레이터는 Windows 95와 Linux 부팅이 가능하며, Doom 구동 역시 기대할 수 있습니다.
이 프로젝트는 Tiny386이라는 이름으로, 메인 CPU와 선택적인 x87 부동 소수점 유닛(FPU) 에뮬레이션을 제공합니다. (CPU 자체가 PC를 구성하는 것은 아니므로,) 춘휘는 TinyEMU, QEMU, Seabios 등 여러 프로젝트에서 기본적인 주변 장치들을 포팅했습니다. 여기에는 BIOS 및 관련 I/O 구성 요소, VGA 카드, IDE 디스크 컨트롤러, 심지어 Sound Blaster 16 사운드카드까지 포함됩니다. 사용 가능한 포트가 ESP 보드에 없어, 키보드와 마우스 입력은 Wi-Fi를 통해 에뮬레이터로 전달됩니다.

춘휘가 사용한 ESP32-S3 기반의 JC3248W535 마이크로컨트롤러 보드는 AliExpress에서 25달러에서 30달러 사이에 구매할 수 있으며, 이 가격에는 준수한 3.5인치 디스플레이가 이미 포함되어 있습니다. 온보드 SoC에는 듀얼 코어 CPU, DSP, WiFi, 블루투스 기능과 다양한 모양과 크기의 I/O 마이크로컨트롤러 커넥터가 탑재되어 있습니다. 다만, 가장 중요한 점은 ESP32-S3가 Raspberry Pi 같은 장치에 비해 훨씬 단순하고 출력 성능이 상대적으로 낮다는 것입니다.
오픈 소스 Intel 486 메인보드를 6개월 만에 처음부터 구축하다
기술 애호가, 40년 된 프린터 컨트롤러에서 Doom 실행 성공
춘휘는 자신의 에뮬레이터가 "단순하고 미숙하여" 기능이 빠져있는 부분이 있다고 언급했지만, "대부분의 16비트/32비트 소프트웨어는 실행할 수 있어야 한다"고 밝혔습니다. Linux가 오래전 i386 프로세서 지원을 중단한 점을 고려하여, 춘휘는 가상 머신이 현대적인 Linux(BIOS 없이도)와 Windows NT를 부팅할 수 있도록 에뮬레이터에 486 및 Pentium 명령어 일부를 추가하는 조치를 취했습니다.

에뮬레이터 코어는 약 6,000줄 분량이며, C 언어, 특히 C99 표준을 기반으로 처음부터 작성되었습니다. 저자는 GitHub 저장소에서 이 점을 들어 포팅의 용이성을 강조했습니다. 관심 있는 취미 개발자들은 [여기]에서 웹어셈블리 데모를 통해 에뮬레이터를 확인하거나, [여기]의 링크에서 작동 영상을 시청할 수 있습니다. 25달러짜리 엄지손가락만 한 SoC에서 Windows 3.2와 Windows 95가 부팅되는 모습을 보는 것은 결코 지루하지 않을 것입니다.
최신 뉴스, 분석 및 리뷰를 받아보려면 Google News에서 Tom's Hardware를 팔로우하거나 선호 출처로 추가하세요.