JSLinux가 이제 x86_64를 지원
(bellard.org)- 웹 브라우저에서 Linux 및 기타 운영체제를 직접 실행할 수 있는 JSLinux가 x86_64 아키텍처를 새로 지원함
- 새 버전은 Alpine Linux 3.23.2를 기반으로 하며, AVX-512와 Intel APX 명령어 확장을 포함함
- 기존의 x86, RISC-V 기반 시스템 외에도 64비트 환경에서의 실행이 가능해짐
- 각 시스템은 콘솔 또는 X Window 인터페이스를 제공하며, 일부는 VFsync를 통한 파일 접근을 지원함
- 브라우저 기반 가상화 기술의 발전으로, 운영체제 실험과 테스트 환경 구축이 한층 간편해짐
JSLinux 개요
-
JSLinux는 브라우저 내에서 Linux나 기타 운영체제를 실행할 수 있는 웹 기반 에뮬레이터임
- 사용자는 별도 설치 없이 웹 페이지에서 가상 머신을 실행 가능
- 다양한 CPU 아키텍처와 운영체제 구성을 선택할 수 있음
지원 시스템 목록
-
x86_64: Alpine Linux 3.23.2 콘솔 버전 제공
- AVX-512 및 Intel APX 명령어 확장 지원
- VFsync를 통한 파일 접근 가능
- 시작 링크 제공
-
x86: Alpine Linux 3.12.0, Windows 2000, FreeDOS 등 다양한 시스템 지원
- 콘솔 및 X Window 인터페이스 선택 가능
- 일부 시스템은 그래픽 모드와 마우스 메뉴 기능 제공
-
riscv64: Buildroot Linux와 Fedora 33 지원
- 콘솔 및 X Window 버전 모두 제공
- Fedora 33은 부팅 시간이 길다는 경고 포함
추가 정보 및 구성
- 각 시스템은 TEMU 구성 파일을 통해 설정 가능
- 일부 시스템은 VFsync를 통해 외부 파일 시스템과 연동 가능
- 모든 구성은 Fabrice Bellard가 개발 및 유지 관리 중임
기술적 특징
- 브라우저에서 직접 실행되는 JavaScript 기반 가상 머신 구조
- TinyEMU(TEMU) 를 기반으로 다양한 CPU 아키텍처를 에뮬레이션
- 그래픽 인터페이스, 콘솔 모드, 파일 접근 기능을 통합 제공
활용 및 의의
- 별도 설치 없이 운영체제 테스트, 교육, 실험 환경을 구축할 수 있음
- x86_64 지원 추가로 최신 하드웨어 명령어 세트를 실험할 수 있는 환경 확장
- 웹 기술로 구현된 완전한 가상화 플랫폼으로서의 가능성 강화
Hacker News 의견들
-
내가 가장 하고 싶은 건 WASM Linux 엔진을 이용해 브라우저 안에서 가상 OS를 직접 돌리며 코딩 에이전트를 실행하는 것임
Claude Code나 Codex CLI처럼 Bash와 Linux 도구를 다룰 줄 아는 에이전트와 연결하면 정말 흥미로울 것 같음
브라우저는 최고의 샌드박스 환경이라 생각함. WebAssembly Linux 위에서 에이전트 루프를 돌릴 수 있다면 멋진 트릭이 될 것임
예전에 v86 데모를 가지고 실험했는데, 아직 에이전트 연결까진 못 갔음. 텍스트 입력창으로 Linux 명령을 보낼 수 있음- 이미 그런 게 있음 — container2wasm
다만 성능이 좀 부족해서 더 깊게 파보진 않았음 - Jeff Lindsay의 Apptron을 살펴보면 거의 비슷한 걸 하고 있음. 자체적으로도 꽤 멋진 기술임
- 우리 팀은 지금 정확히 그걸 만들고 있음 — browserpod.io
전체 스택 데모는 vitedemo.browserpod.io, 이전 작업은 webvm.io에서 볼 수 있음 - 나는 에이전트를 별도의 Linux 사용자로 실행함. 자기 홈 디렉터리를 망가뜨릴 수는 있어도 내 건 안전함. 샌드박싱의 핵심이 바로 그거라 생각함
- 솔직히 요즘은 뭐든 Gen AI 얘기로 귀결되는 게 좀 피곤함
- 이미 그런 게 있음 — container2wasm
-
흥미로워서 M1 Mac Mini의 Chrome에서 x86_64, x86, riscv64 환경 각각에 대해 Primes 벤치마크를 돌려봤음
RISC-V가 x86보다 훨씬 에뮬레이션 효율이 좋았음 — 빌드도 빠르고 코드도 작고 실행도 빠름
다만 gcc 버전이 각각 달라서(15.2.0 vs 9.3.0 vs 7.3.0) 완전히 공정한 비교는 아님
참고 코드- 실제로는 RISC-V가 빠르다고 단정하긴 어려움. 에뮬레이션 속도는 다른 요인들이 더 크게 작용함
- gcc 버전 차이가 커서 비교가 완전히 동일 조건은 아님. 최신 gcc는 레지스터 할당 최적화가 훨씬 좋아졌음
- MIPS는 RISC-V보다도 더 에뮬레이션하기 쉬움. 명령어 구조가 단순해서 즉시값 처리가 간단함
-
오프토픽이지만, Windows 2000 UI를 다시 보니 너무 반가움. 요즘 UI들은 정말 끔찍하다고 느껴짐
- 그 인터페이스는 집 같은 느낌임
- Microsoft의 UI는 그 이후로 계속 하락세였음
- win2000은 좋은 추억을 많이 떠올리게 함
- 근데 이게 JSLinux랑 관련이 있긴 한가 싶음
-
아쉽게도 64비트 x86 에뮬레이션 레이어 소스 코드나 빌드 설정이 공개되지 않았음
좀 더 오픈소스 버전을 원한다면 container2wasm을 참고할 만함- v86이 좀 더 완전한 오픈소스 대안임
- 만약 비공개라면 FAQ에 명시해야 한다고 생각함
-
JSLinux가 여전히 인터프리터인지, 아니면 이제 JIT 컴파일을 하는지 궁금함
혹은 JS 엔진의 JIT이 워낙 좋아져서 그 구분이 의미 없어진 건지도 모르겠음 -
DNS에 문제가 있는 것 같음. 내가 뭔가 놓친 게 있는지 궁금함
-
AVX512까지 지원한다니 놀라움. QEMU에도 꼭 추가해보고 싶음
참고로 APX 관련 패치는 여기에 있음 -
Fabrice Bellard의 작업은 언제나 놀라움
x86_64 지원 덕분에 브라우저에서 최신 Linux 배포판을 돌릴 수 있는 가능성이 열림 -
지난달에 x86_64 JSLinux에서 TempleOS를 돌릴 수 있도록 수정했음 — ring0.holyc.xyz
- 이게 바로 v86에 없던 부분이었음.
내 데모보다 빠르게 돌아감. JIT도 없는데 진짜 마법 같음
- 이게 바로 v86에 없던 부분이었음.
-
Chrome에서 x86_64 Alpine JSLinux 이미지를 4시간 동안 써봤음
git으로 코드 내려받고, 대형 패키지 빌드하고, 테스트까지 돌렸는데 완전히 안정적이었음
네이티브보다 50배 느리지만, 브라우저 안에서 이렇게 견고한 VM이 돌아간다는 게 정말 놀라움