- JSLinux, mit dem sich Linux und andere Betriebssysteme direkt im Webbrowser ausführen lassen, unterstützt nun neu die x86_64-Architektur
- Neu hinzugekommen sind AVX2-, AVX-512- und APX-Unterstützung; damit ist es derzeit der einzige öffentliche x86-Vollsystem-Emulator mit APX-Support
- Es basiert auf Alpine Linux 3.23.2 und enthält die Befehlssatzerweiterungen AVX-512 und Intel APX
- Neben den bisherigen x86- und RISC-V-basierten Systemen ist nun auch der Betrieb in einer 64-Bit-Umgebung möglich
- Jedes System bietet eine Konsole oder X-Window-Oberfläche, einige unterstützen den Dateizugriff über VFsync
- Durch Fortschritte bei browserbasierter Virtualisierung wird das Experimentieren mit Betriebssystemen und das Einrichten von Testumgebungen deutlich einfacher
Überblick über JSLinux
- JSLinux ist ein webbasierter Emulator, mit dem sich Linux oder andere Betriebssysteme im Browser ausführen lassen
- Nutzer können virtuelle Maschinen ohne zusätzliche Installation direkt auf einer Webseite starten
- Es stehen verschiedene CPU-Architekturen und Betriebssystemkonfigurationen zur Auswahl
Liste der unterstützten Systeme
- x86_64: Alpine Linux 3.23.2 als Konsolenversion verfügbar
- x86: Unterstützung für verschiedene Systeme wie Alpine Linux 3.12.0, Windows 2000 und FreeDOS
- riscv64: Unterstützung für Buildroot Linux und Fedora 33
- Für jedes System gibt es einen Startlink, die Konfiguration ist über TEMU-Konfigurationsdateien möglich
- Einige Systeme lassen sich über VFsync mit externen Dateisystemen verbinden
- Alle Konfigurationen werden von Fabrice Bellard entwickelt und gepflegt
3 Kommentare
Den Entwickler Fabrice Bellard sollte man jedes Mal loben, wenn ein Beitrag zu ihm erscheint (Jahrgang 1972)
1987 entwickelte er mit 15 Jahren den ausführbaren Kompressor LZEXE in Assembler.
2000 entwickelte er FFmpeg und gewann im selben Jahr die IOCCC, indem er einen C-Compiler mit weniger als 4 KB entwickelte.
2005 stellte er QEMU vor.
2011 veröffentlichte er JSLinux und entwickelt es bis heute weiter.
„Verdienen Sie ein Vermögen und gehen Sie in den Ruhestand.“
Die Unterstützung für 64-Bit-x86 wurde im Januar veröffentlicht, und dieses Update bringt Unterstützung für AVX2, AVX-512 und APX.
Hacker-News-Kommentare
Was ich am liebsten machen würde, ist, mit einer WASM-Linux-Engine direkt im Browser ein virtuelles OS laufen zu lassen und darauf einen Coding-Agenten auszuführen
Wenn man das mit einem Agenten verbindet, der Bash und Linux-Tools beherrscht, wie Claude Code oder Codex CLI, wäre das wirklich spannend
Ich halte den Browser für die beste Sandbox-Umgebung. Wenn man einen Agent-Loop auf WebAssembly Linux laufen lassen könnte, wäre das ein großartiger Trick
Ich habe früher mit der v86-Demo experimentiert, bin aber noch nicht bis zur Agenten-Anbindung gekommen. Man kann Linux-Befehle über ein Texteingabefeld senden
Allerdings ist die Performance etwas zu schwach, deshalb habe ich nicht tiefer hineingeschaut
Eine Full-Stack-Demo gibt es unter vitedemo.browserpod.io, frühere Arbeiten unter webvm.io
Aus Interesse habe ich in Chrome auf einem M1 Mac Mini den Primes-Benchmark jeweils in x86_64-, x86- und riscv64-Umgebungen laufen lassen
RISC-V hatte eine deutlich bessere Emulationseffizienz als x86 — Builds waren schneller, der Code war kleiner und die Ausführung war schneller
Allerdings waren die gcc-Versionen jeweils unterschiedlich (15.2.0 vs 9.3.0 vs 7.3.0), also ist der Vergleich nicht völlig fair
Referenzcode
Etwas off-topic, aber es ist schön, die Windows-2000-Oberfläche wiederzusehen. Moderne UIs wirken auf mich wirklich schrecklich
Leider wurden weder der Quellcode der 64-Bit-x86-Emulationsschicht noch die Build-Konfiguration veröffentlicht
Wer eine offenere Open-Source-Version möchte, sollte sich container2wasm ansehen
Ich frage mich, ob JSLinux immer noch ein Interpreter ist oder inzwischen JIT-Kompilierung verwendet
Oder vielleicht ist die JIT des JS-Engines inzwischen so gut, dass diese Unterscheidung bedeutungslos geworden ist
Es scheint ein Problem mit DNS zu geben. Ich frage mich, ob ich etwas übersehe
Ich bin überrascht, dass sogar AVX512 unterstützt wird. Das würde ich unbedingt auch in QEMU ergänzen wollen
Zur Referenz: Die APX-bezogenen Patches sind hier
Die Arbeit von Fabrice Bellard ist immer wieder erstaunlich
Durch die x86_64-Unterstützung eröffnet sich die Möglichkeit, moderne Linux-Distributionen im Browser laufen zu lassen
Letzten Monat habe ich x86_64 JSLinux so angepasst, dass TempleOS darauf läuft — ring0.holyc.xyz
Es läuft schneller als meine Demo. Ohne JIT wirkt das wie echte Magie
Ich habe das x86_64-Alpine-JSLinux-Image vier Stunden lang in Chrome verwendet
Ich habe Code mit git heruntergeladen, große Pakete gebaut und sogar Tests ausgeführt, und es war vollkommen stabil
Es ist 50-mal langsamer als nativ, aber es ist wirklich erstaunlich, dass im Browser eine so robuste VM läuft