JSLinux가 이제 x86_64를 지원
(bellard.org)- 웹 브라우저에서 Linux 및 기타 운영체제를 직접 실행할 수 있는 JSLinux가 x86_64 아키텍처를 새로 지원함
- AVX2, AVX-512 및 APX 지원울 새로 추가하여, 현재 APX를 지원하는 유일한 공개형 x86 전체 시스템 에뮬레이터
- 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 콘솔 버전 제공
- x86: Alpine Linux 3.12.0, Windows 2000, FreeDOS 등 다양한 시스템 지원
- riscv64: Buildroot Linux와 Fedora 33 지원
- 각 시스템은 시작 링크를 제공하며 TEMU 구성 파일을 통해 설정 가능
- 일부 시스템은 VFsync를 통해 외부 파일 시스템과 연동 가능
- 모든 구성은 Fabrice Bellard가 개발 및 유지 관리 중임
제작자 Fabrice Bellard는 관련글 나올때마다 칭찬해줘야합니다 (72년생)
1987년 15살에 어셈블리로 실행압축기 LZEXE 개발
2000년 FFMPEG 개발하고, 같은해에 4KB 미만 C컴파일러 개발해서 IOCCC 우승
2005년 QEMU 발표
2011년 JSLinux 공개해 지금까지 발전시킴
"떼돈벌고 은퇴하십시오"
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이 돌아간다는 게 정말 놀라움