C와 C++ 코드를 WebAssembly로 컴파일해 브라우저, Node.js 및 기타 Wasm 런타임에서 실행할 수 있게 하는 컴파일러 툴체인입니다.
copy/v86
실제 운영체제를 부팅할 수 있도록 런타임에 기계어를 WebAssembly로 변환해 브라우저에서 실행하는 x86 PC 에뮬레이터입니다.
- 스타
- 23,609
- 포크
- 1,924
- 열린 이슈
- 116
- 마지막 커밋
- 3일 전
어떤 프로젝트인가요?
v86은 x86 호환 CPU와 VGA 카드, PS/2 키보드 및 마우스, IDE 및 플로피 컨트롤러, PCI 버스, NE2000 및 virtio 네트워크 장치, SoundBlaster 16 사운드 카드 등 여러 PC 하드웨어를 에뮬레이션합니다. 브라우저 탭에서 적절한 성능을 내기 위해 런타임에 기계어를 WebAssembly 모듈로 변환합니다.
이 프로젝트는 오래된 운영체제와 취미로 개발된 운영체제를 브라우저에서 실행하는 데 초점을 둡니다. 프로젝트 문서에는 여러 Linux 배포판, FreeDOS, MS-DOS, Windows 95부터 2000까지, ReactOS, Haiku, FreeBSD 등 작동이 확인된 게스트가 나와 있습니다. Windows XP 및 이후 버전은 일부 조건에서만 작동합니다. 디스크 이미지는 URL에서 불러오며, libv86.js 또는 v86 npm 패키지를 통해 웹 페이지에 에뮬레이터를 삽입할 수 있습니다.
에뮬레이터에는 직렬 콘솔 제어, 상태 저장 및 복원, 인스턴스 간 네트워킹 연결을 위한 JavaScript API가 있습니다. Rust와 Make를 사용해 로컬에서 빌드할 수도 있으며, 디버그 빌드와 최적화 빌드를 지원합니다.
핵심 기능
- 01대략 Pentium 4급 성능과 SSE3을 지원하는 x86 CPU를 에뮬레이션합니다
- 02런타임에 기계어를 WebAssembly로 변환합니다
- 03SVGA 및 Bochs VBE 확장을 지원하는 VGA와 PS/2 키보드 및 마우스를 제공합니다
- 04virtio, NE2000 및 전화 접속 모뎀 네트워크 옵션을 제공합니다
- 05에뮬레이터 상태를 저장하고 복원할 수 있습니다
- 06libv86.js 또는 npm 패키지를 통해 삽입할 수 있습니다
활용 사례
- 웹 페이지에서 Windows 95나 MS-DOS 같은 레트로 운영체제를 실행합니다
- PC와 x86 부팅 과정의 작동 방식을 시연하거나 가르칩니다
- 브라우저 기반 도구에 샌드박스 Linux 또는 DOS 환경을 삽입합니다
- CPU 에뮬레이션과 WebAssembly 동적 바이너리 변환을 연구합니다
빠른 시작
- 1
npm 패키지를 설치합니다
npm install v86 - 2
README의 API 예제에 나온 것처럼 V86 생성자를 사용해 에뮬레이터를 웹페이지에 삽입합니다
사용 전 알아둘 점
- 64비트 게스트 운영체제는 지원되지 않습니다.
- 멀티코어 에뮬레이션은 지원되지 않습니다.
- 소스에서 빌드하려면 Rust, clang, Java, Node.js 및 기타 도구가 필요합니다.
- Plan 9 및 OS/2와 같은 일부 운영체제는 작동하지 않습니다.
토픽
자주 묻는 질문
- v86은(는) 무엇인가요?
- 실제 운영체제를 부팅할 수 있도록 런타임에 기계어를 WebAssembly로 변환해 브라우저에서 실행하는 x86 PC 에뮬레이터입니다. v86은 x86 호환 CPU와 VGA 카드, PS/2 키보드 및 마우스, IDE 및 플로피 컨트롤러, PCI 버스, NE2000 및 virtio 네트워크 장치, SoundBlaster 16 사운드 카드 등 여러 PC 하드웨어를 에뮬레이션합니다. 브라우저 탭에서 적절한 성능을 내기 위해 런타임에 기계어를 WebAssembly 모듈로 변환합니다.
- v86은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- v86은(는) BSD-2-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- v86은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. v86의 마지막 커밋은 2026년 10월 18일입니다.
- v86은(는) 어디에 사용할 수 있나요?
- 웹 페이지에서 Windows 95나 MS-DOS 같은 레트로 운영체제를 실행합니다 PC와 x86 부팅 과정의 작동 방식을 시연하거나 가르칩니다 브라우저 기반 도구에 샌드박스 Linux 또는 DOS 환경을 삽입합니다 CPU 에뮬레이션과 WebAssembly 동적 바이너리 변환을 연구합니다
- v86는 어떻게 설치하나요?
- npm 패키지를 설치합니다: npm install v86 README의 API 예제에 나온 것처럼 V86 생성자를 사용해 에뮬레이터를 웹페이지에 삽입합니다
- v86은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/copy/v86
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
브라우저에서 동영상과 오디오를 녹화·변환·스트리밍할 수 있는 순수 WebAssembly 및 JavaScript 기반 FFmpeg 포트입니다.
WebAssembly로 컴파일해 인터랙티브한 클라이언트 측 웹 앱을 만드는 Rust 프레임워크로, HTML을 위한 JSX 스타일 매크로를 제공합니다.
앱과 AI 에이전트 코드를 빠르고 가벼운 샌드박스 환경에서 실행하는 WebAssembly 런타임 및 CLI입니다.
Cranelift 코드 생성기를 기반으로 하며 WASI와 다양한 언어의 임베딩을 지원하는 독립형 WebAssembly 런타임입니다.
타입이 지정된 TypeScript 부분집합을 WebAssembly 모듈로 컴파일하는 TypeScript 유사 언어이자 컴파일러입니다.