4P by GN⁺ | ★ favorite | 댓글 2개
  • JSLinux는 브라우저 안에서 Linux와 다른 운영체제를 바로 실행해 볼 수 있는 VM 목록으로, CPU·UI·VFsync·설정 파일까지 함께 확인할 수 있음
  • 실행 항목은 x86_64, x86, riscv64로 구분되며 Alpine Linux, Buildroot, Fedora 33, Windows 2000, FreeDOS가 포함됨
  • x86_64 Alpine Linux 3.23.2 콘솔은 AVX-512APX 지원을 포함하고, x86 Alpine Linux 3.12.0은 콘솔과 X Window 버전이 따로 제공됨
  • 그래픽 또는 X Window 환경은 Windows 2000, FreeDOS, Alpine Linux, Buildroot, Fedora 33에서 제공되며, 일부 X Window 메뉴는 오른쪽 마우스 버튼으로 열림
  • riscv64 Fedora 33 항목은 부팅 시간이 더 길다는 경고가 있고, Windows 2000은 VFsync 접근 없이 별도 면책 고지가 연결됨

브라우저에서 실행 가능한 VM 목록

  • JSLinux는 브라우저에서 Linux 또는 다른 운영체제를 실행하는 에뮬레이트 시스템 목록을 제공함
  • 각 항목은 CPU, 운영체제, 사용자 인터페이스, VFsync 접근 여부, 시작 링크, 설정 파일, 비고로 구성됨
  • 표에는 VFsync 접근 여부와 TEMU 관련 설정 링크가 함께 표시됨

CPU와 운영체제별 실행 항목

댓글과 토론

Hacker News 의견들
  • Fabrice는 자급자족형 소프트웨어를 정말 잘 만들고, 그 결과물이 독자적인 생명력을 갖는 경우도 많음
    덜 알려진 예로 JSLinux의 터미널 에뮬레이터가 몇 번 포크되어 지금은 xterm.js로 알려졌고, 웹에 임베드 가능한 터미널 에뮬레이터의 주류가 됨
    이제 JSLinux의 진짜 후계자를 만들고 있는데, 커널과 사용자 공간을 네이티브로 Wasm에 컴파일해서 훨씬 빠르고, 터미널 에뮬레이션에는 당연히 xterm.js를 쓰고 있음
    아직 공유하면 안 될 것 같은 버그 많은 데모를 좋아한다면 https://linux.tombl.dev를 볼 만하지만, 현재는 busybox 셸뿐이라 ls 대신 echo *에 익숙해야 함

    • Fabrice는 다른 사람들이 평생 유지보수할 만한 사이드 프로젝트를 만든다고 표현하곤 함
      QEMU, ffmpeg, LTE 관련 작업, QuickJS는 알고 있었지만, xterm.js도 그에게서 시작됐다는 건 몰랐음
    • 어떤 명령을 실행해도 아래처럼 attempted to munmap와 커널 경고가 나옴
      WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000, Comm: sh Not tainted 6.1.132 같은 스택 트레이스가 뜨며 vmlinux-NLTKI6YG.wasmworker-MHWHWELT.js 쪽으로 이어짐
    • 추억이 떠오름. 한동안 안 봤는데, 12년 전 내 포크의 포크가 아직도 잘 살아 있다니 반갑다
      대부분 다시 작성된 것처럼 보이고, 아마 더 좋아졌을 것임
      https://github.com/xtermjs/xterm.js
      https://github.com/chjj/term.js
    • 멋짐. JSLinux보다 전력 효율이 좋고 iOS에서도 돌아갈 수 있다면 A-Shell이나 iSH의 좋은 대안이 될지도 모름
      MacBook에서 시도했지만 키보드 입력이 등록되지 않았음
    • 동작하는 명령이 있나? ps, cat, vi, ed가 전부 크래시함
      busybox 임베딩을 잘 몰라서 뭘 해야 할지 모르겠음
  • Fabrice는 대단함. 이 사람이 만든 것들의 양이 정말 믿기 어려울 정도임
    내가 그가 만든 것 중 하나만 만들었어도, 예를 들어 ffmpeg, QEMU, tinyc 중 하나만 해도 평생 자랑했을 텐데, 그는 그냥 계속 다른 멋진 걸 해킹하고 있음

    • 그냥 그가 원하는 게 뭔지 알아내서 주면 어떨까. 그러면 답례로 우리가 가진 망가진 것들을 제대로 다시 써줄 듯함
      휴대폰, 운영체제, 데스크톱 환경, 국가, 앱스토어 등 전부
    • 이 사람이 좋음. 그의 QEMU가 워낙 널리 쓰여서 전 세계 Android 개발의 절반은 그의 덕분에 쉬워졌고, 그 영향은 더 커지고 있음
    • DOS를 썼던 사람들에게 익숙할 수 있는 LZEXE도 같은 사람이 작성했음
    • 그가 작업할 대상을 어떻게 고르는지 궁금함. 그냥 흥미를 따라가는 건지 모르겠음
  • 브라우저에서 실행되는 가상 머신은 그리 많지 않음
    https://copy.sh/v86/
    https://webvm.io/
    https://bellard.org/jslinux/
    https://jamesfriend.com.au/pce-js/ (https://github.com/jsdf/pce)
    https://www.pcjs.org/는 많은 하드웨어와 운영체제를 지원함 (https://github.com/jeffpar/pcjs)
    Mac OS 쪽으로는 https://infinitemac.org/ (https://blog.persistent.info/2023/03/infinitemac-dot-org.htm...), https://jamesfriend.com.au/projects/basiliskii/BasiliskII-wo..., https://jamesfriend.com.au/pce-js/pce-js-apps/도 있음

  • 엄청나게 생산적인 개발자들의 극단을 보면 “함수나 파일은 절대 x줄을 넘으면 안 된다” 같은 교조와 흥미로운 대비가 됨
    quickjs.c5만 줄이고 수백 줄짜리 함수도 있음
    https://github.com/bellard/quickjs/blob/master/quickjs.c
    물론 상황에 따라 다른 접근법이 맞음

    • 답은 간단함. Bellard는 5만 줄의 문맥을 전부 기억할 수 있지만, 대부분은 그렇지 못함
      나도 작업 기억이 큰 편이라 나중에야 내 파일·함수 크기 한계가 남들보다 훨씬 높다는 걸 깨달았음
      그런 교조는 여러 사람이 같은 파일을 읽고 써야 할 때 필요함
    • 그 코드베이스에서 작업하고 있고, 우리는 QuickJS-ng로 포크했음
      처음에는 위압적이지만, 맞는 편집기를 쓰면 의외로 작업하기 쉬움. 다만 많은 편집기가 이렇게 큰 파일에서 버벅임
      파일은 매우 크지만 어느 정도 의미별로 정렬되어 있어서, 예를 들어 새 반복자 메서드를 추가할 때 관련 코드가 가까이 모여 있어 작업하기 쉽다
    • 같이 일하는 사람들이 Fabrice가 아니기 때문임. 언제 규칙을 깨도 안전한지 설명하는 것보다 “X는 아예 하지 말라”고 말하는 편이 더 쉬움
      사용하는 언어에도 달려 있음. 예를 들어 JVM은 바이트코드 명령 수가 특정 임계값을 넘는 함수를 인라인하지 않을 수 있음
    • 좋은 예로 .NET의 가비지 컬렉터는 5만4천 줄짜리 단일 C++ 파일임
    • 강하게 결합되어 추론하기 어려운 여러 함수보다, 한 가지 일을 잘하는 긴 함수 하나가 나을 때도 있음
      교조를 그대로 적용하는 프로그래머는 해로울 수 있음
  • Kohei Tokunaga가 이 계열의 다음 세대를 만들고 있음
    https://ktock.github.io/container2wasm-demo/
    Emscripten의 fetch 기반 브라우저 네트워킹이나 POSIX 호환 WebSocket 프록시를 사용함
    https://ktock.github.io/container2wasm-demo/amd64-debian-was...

  • 20년 만에 Windows 2000을 만져봤음. 향수가 눈을 흐리게 할 수 있다는 건 알지만, 그 UI라면 당장 돌아가고 싶음
    어수선하지 않은 작업 표시줄, 쓸모없는 추천과 광고로 가득하지 않은 단순한 시작 메뉴가 정말 즐거웠음

    • Windows 2000을 다시 쓰고 싶지는 전혀 않지만, UI가 일관적이던 Windows 버전을 보는 건 흥미로움
      지금은 네 세대의 GUI 툴킷이 뒤섞여 어떤 UI는 한 스타일이고 다른 UI는 또 다른 스타일인 잡탕임
    • 관련 글:
      “Windows 2000 Server named peak Microsoft. Readers say it's all been downhill since Clippy”
      https://www.theregister.com/2025/04/11/windows_2000_best_mic...
      https://news.ycombinator.com/item?id=43653421
    • 거기에 Visual Basic 6을 설치해보려 했지만, 설치된 Firefox에서 SSL 오류 때문에 ISO 다운로드 단계도 넘지 못했음. 아쉬움
    • 적어도 2010년부터 Xfce를 써온 이유가 바로 이것임. 여전히 같은 방식으로 동작함
      오픈소스는 본질적으로 사용자와 이해관계가 맞고, 엔시티피케이션을 막는 장치가 있다고 느낌
  • Fabrice Bellard가 어떻게 돈을 버는지 아는 사람이 있나? 이 사람의 오픈소스 산출물은 정말 놀라움
    비슷한 급의 사람이 있는지도 비교하기 어렵다. VMware가 그를 채용하려 했거나, Google이 비디오 코덱, V8, Chromium 렌더링, ffmpeg 쪽으로 데려가려 했을 것 같음

  • 프랑스에서 매우 재능 있고 창의적이며 생산적인 소프트웨어 아티스트나 개별 기여자가 꽤 나오는 것 같음
    프랑스적인 요인인지, Écoles 같은 교육 시스템 때문인지, 아니면 다른 이유인지는 모르겠지만 눈에 띔

    • Bootlin은 프랑스 회사이고 주요 오픈소스 기여자임. 함께 일해봤고 추천함
      프랑스 기술은 예전 Renault 낡은 차 품질 같은 평판이 있었지만, 실제로는 그렇게 보지 않았음. Renault와 Citroen에서도 오히려 감탄하게 됨
      반대로 독일 소프트웨어 엔지니어들과 일하는 건 힘들었는데, “우리가 만든 게 아니면 안 된다”는 태도가 매우 강했음. 어디까지나 내 일반화임
      유럽 기술 생태계의 문제는 간단함. 우리는 파는 걸 못하고 자원 효율에 최적화함. “경쟁력 있는 급여”가 어떤 경우에도 시장가 이상은 주지 않는다는 뜻이 되곤 함
      미국은 성장에 최적화하고, 더 높은 급여를 감수해서 성장으로 비용을 상각하려 함
      마지막으로 내가 온 곳에서는 이민 때문에 프랑스가 망가졌다고 비웃는 경우가 많음. 그런 관점도 있겠지만, 프랑스가 식민지에서 두뇌 유출을 끌어와 매우 유능하고 생산적인 사람들을 확보한 것도 사실임
      내 석사 지도교수도 코트디부아르 출신이었고, Bootlin에서도 프랑스어권 이름이 아닌 최고 수준의 엔지니어들과 일했음
    • Fabrice Bellard와 비교할 만한 사람들을 이름으로 들 수 있나?
  • https://barebox.org/webdemo에서 JSLinux를 써서, 잠재 사용자가 실제 하드웨어에 플래시하지 않고도 부트로더 셸의 편의성을 볼 수 있게 하고 있음
    여기서 언급된 여러 포크가 반갑고, 어느 쪽이 bareDOOM을 가장 잘 돌리는지, 혹시 사운드가 동작하는 게 있는지 확인해봐야겠음

  • JSLinux는 Endor(https://endor.dev)를 만들 때 영감이 되었고, 그의 QEMU 작업도 많은 Wasm 관련 브라우저 프로젝트의 기반이 되고 있음

    • 가상 머신, 컨테이너, Wasm 네이티브 접근법이 어떻게 구현되는지 공개된 세부 자료가 있나?

CORS 설정이 잘못돼있어서 링크의 https://www.bellard.org/jslinux/ 가 아니라 https://bellard.org/jslinux/ 로 들어가야 정상적으로 작동하네요.