1P by GN⁺ 2시간전 | ★ favorite | 댓글 1개
  • 웹 브라우저에서 Linux 및 기타 운영체제를 직접 실행할 수 있는 JSLinuxx86_64 아키텍처를 새로 지원함
  • 새 버전은 Alpine Linux 3.23.2를 기반으로 하며, AVX-512Intel APX 명령어 확장을 포함함
  • 기존의 x86, RISC-V 기반 시스템 외에도 64비트 환경에서의 실행이 가능해짐
  • 각 시스템은 콘솔 또는 X Window 인터페이스를 제공하며, 일부는 VFsync를 통한 파일 접근을 지원함
  • 브라우저 기반 가상화 기술의 발전으로, 운영체제 실험과 테스트 환경 구축이 한층 간편해짐

JSLinux 개요

  • JSLinux는 브라우저 내에서 Linux나 기타 운영체제를 실행할 수 있는 웹 기반 에뮬레이터임
    • 사용자는 별도 설치 없이 웹 페이지에서 가상 머신을 실행 가능
    • 다양한 CPU 아키텍처와 운영체제 구성을 선택할 수 있음

지원 시스템 목록

  • x86_64: Alpine Linux 3.23.2 콘솔 버전 제공
    • AVX-512Intel 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 얘기로 귀결되는 게 좀 피곤함
  • 흥미로워서 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도 없는데 진짜 마법 같음
  • Chrome에서 x86_64 Alpine JSLinux 이미지를 4시간 동안 써봤음
    git으로 코드 내려받고, 대형 패키지 빌드하고, 테스트까지 돌렸는데 완전히 안정적이었음
    네이티브보다 50배 느리지만, 브라우저 안에서 이렇게 견고한 VM이 돌아간다는 게 정말 놀라움