JSLinux
(bellard.org)- JSLinux ist eine Liste von VMs, mit denen sich Linux und andere Betriebssysteme direkt im Browser ausführen lassen; dabei können auch CPU, UI, VFsync und Konfigurationsdateien eingesehen werden
- Die ausführbaren Einträge sind nach x86_64, x86 und riscv64 gegliedert und umfassen Alpine Linux, Buildroot, Fedora 33, Windows 2000 und FreeDOS
- Die x86_64-Alpine-Linux-3.23.2-Konsole enthält Unterstützung für AVX-512 und APX, und für x86 Alpine Linux 3.12.0 werden Konsole und X-Window-Version getrennt angeboten
- Grafik- oder X-Window-Umgebungen werden für Windows 2000, FreeDOS, Alpine Linux, Buildroot und Fedora 33 angeboten; einige X-Window-Menüs werden mit der rechten Maustaste geöffnet
- Beim riscv64-Fedora-33-Eintrag gibt es einen Hinweis, dass die Boot-Zeit länger ist, und bei Windows 2000 ist ein separater Haftungsausschluss ohne VFsync-Zugriff verlinkt
Liste der im Browser ausführbaren VMs
- JSLinux bietet eine Liste emulierter Systeme, auf denen Linux oder andere Betriebssysteme im Browser ausgeführt werden können
- Jeder Eintrag besteht aus CPU, Betriebssystem, Benutzeroberfläche, Angabe zum VFsync-Zugriff, Startlink, Konfigurationsdatei und Anmerkungen
- In der Tabelle werden auch der Zugriff auf VFsync und Konfigurationslinks zu TEMU angezeigt
Ausführbare Einträge nach CPU und Betriebssystem
-
x86_64
- Alpine Linux 3.23.2 Console
- VFsync-Zugriff möglich
- Konfigurationsdatei: alpine-x86_64.cfg
- Enthält Unterstützung für AVX-512 und APX
- Alpine Linux 3.23.2 Console
-
x86
- Alpine Linux 3.12.0 Console
- VFsync-Zugriff möglich
- Konfigurationsdatei: alpine-x86.cfg
- Alpine Linux 3.12.0 X Window
- VFsync-Zugriff möglich
- Konfigurationsdatei: alpine-x86-xwin.cfg
- Im Menü wird die rechte Maustaste verwendet
- Windows 2000 Graphical
- Kein VFsync-Zugriff
- Konfigurationsdatei: win2k.cfg
- Ein Haftungsausschluss ist verlinkt
- FreeDOS VGA Text
- Kein VFsync-Zugriff
- Konfigurationsdatei: freedos.cfg
- Alpine Linux 3.12.0 Console
-
riscv64
- Buildroot Linux Console
- VFsync-Zugriff möglich
- Konfigurationsdatei: buildroot-riscv64.cfg
- Buildroot Linux X Window
- VFsync-Zugriff möglich
- Konfigurationsdatei: buildroot-riscv64-xwin.cfg
- Im Menü wird die rechte Maustaste verwendet
- Fedora 33 Linux Console
- VFsync-Zugriff möglich
- Konfigurationsdatei: fedora33-riscv.cfg
- Es gibt einen Hinweis, dass die Boot-Zeit länger ist
- Fedora 33 Linux X Window
- VFsync-Zugriff möglich
- Konfigurationsdatei: fedora33-riscv-xwin.cfg
- Es gibt einen Hinweis, dass die Boot-Zeit länger ist, und im Menü wird die rechte Maustaste verwendet
- Buildroot Linux Console
2 Kommentare
Meinungen auf Hacker News
Fabrice ist wirklich gut darin, selbstgenügsame Software zu bauen, und oft entwickeln seine Ergebnisse ein Eigenleben
Ein weniger bekanntes Beispiel: Der Terminal-Emulator von JSLinux wurde mehrfach geforkt und ist heute als xterm.js bekannt; er wurde zum Mainstream unter den ins Web einbettbaren Terminal-Emulatoren
Jetzt baue ich den echten Nachfolger von JSLinux: Kernel und Userspace werden nativ nach Wasm kompiliert, was deutlich schneller ist, und für die Terminal-Emulation wird natürlich xterm.js verwendet
Wer fehlerhafte Demos mag, die man vermutlich noch nicht teilen sollte, kann sich https://linux.tombl.dev ansehen; derzeit gibt es aber nur eine busybox-Shell, man sollte sich also an
echo *stattlsgewöhnenQEMU, ffmpeg, die LTE-Arbeiten und QuickJS kannte ich, aber ich wusste nicht, dass auch xterm.js auf ihn zurückgeht
attempted to munmapund eine Kernel-Warnung wie untenEs taucht ein Stacktrace mit Zeilen wie
WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000undComm: sh Not tainted 6.1.132auf, der zuvmlinux-NLTKI6YG.wasmundworker-MHWHWELT.jsführtSieht so aus, als wäre das meiste neu geschrieben worden, vermutlich ist es dadurch besser geworden
https://github.com/xtermjs/xterm.js
https://github.com/chjj/term.js
Ich habe es auf einem MacBook ausprobiert, aber Tastatureingaben wurden nicht registriert
ps,cat,viundedcrashen alleIch kenne mich mit dem Einbetten von busybox nicht gut aus und weiß daher nicht, was ich tun soll
Fabrice ist großartig. Die Menge der Dinge, die dieser Mensch gebaut hat, ist wirklich kaum zu glauben
Wenn ich nur eines der Dinge gebaut hätte, die er gemacht hat – zum Beispiel ffmpeg, QEMU oder tinyc –, würde ich mich mein Leben lang damit brüsten, aber er hackt einfach immer weiter an anderen coolen Sachen
Handys, Betriebssysteme, Desktop-Umgebungen, Länder, App-Stores und so weiter
Es gibt gar nicht so viele virtuelle Maschinen, die im Browser laufen
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/ unterstützt viele Hardware- und Betriebssysteme (https://github.com/jeffpar/pcjs)
Für Mac OS gibt es außerdem https://infinitemac.org/ (https://blog.persistent.info/2023/03/infinitemac-dot-org.htm...), https://jamesfriend.com.au/projects/basiliskii/BasiliskII-wo... und https://jamesfriend.com.au/pce-js/pce-js-apps/
https://amiga.oszx.co/
https://www.file-hunter.com/AMIGA/
https://www.file-hunter.com/MSX/ ist MSX über WebMSX
Betrachtet man das Extrem enorm produktiver Entwickler, ergibt sich ein interessanter Kontrast zu Dogmen wie „Eine Funktion oder Datei darf niemals mehr als x Zeilen haben“
quickjs.chat 50.000 Zeilen und enthält auch Funktionen mit mehreren Hundert Zeilenhttps://github.com/bellard/quickjs/blob/master/quickjs.c
Natürlich ist je nach Situation ein anderer Ansatz richtig
Ich habe auch ein recht großes Arbeitsgedächtnis und habe erst später gemerkt, dass meine Grenzen für Datei- und Funktionsgrößen viel höher liegen als bei anderen
Solche Dogmen braucht man, wenn mehrere Personen dieselbe Datei lesen und schreiben müssen
Anfangs wirkt sie einschüchternd, aber mit dem richtigen Editor ist die Arbeit daran überraschend einfach. Allerdings geraten viele Editoren bei so großen Dateien ins Stocken
Die Datei ist sehr groß, aber einigermaßen nach Bedeutung geordnet; wenn man zum Beispiel eine neue Iterator-Methode hinzufügt, liegt der relevante Code nah beieinander, was die Arbeit erleichtert
Es hängt auch von der verwendeten Sprache ab. Zum Beispiel kann die JVM Funktionen möglicherweise nicht inlinen, wenn die Zahl der Bytecode-Instruktionen einen bestimmten Schwellenwert überschreitet
Programmierer, die Dogmen wörtlich anwenden, können schädlich sein
Kohei Tokunaga baut die nächste Generation dieser Linie
https://ktock.github.io/container2wasm-demo/
Sie nutzt Emscriptens
fetch-basiertes Browser-Networking oder einen POSIX-kompatiblen WebSocket-Proxyhttps://ktock.github.io/container2wasm-demo/amd64-debian-was...
https://github.com/container2wasm/container2wasm?tab=readme-...
Ich habe nach 20 Jahren wieder Windows 2000 angefasst. Ich weiß, dass Nostalgie den Blick trüben kann, aber zu dieser UI würde ich sofort zurückkehren
Die aufgeräumte Taskleiste und das einfache Startmenü, das nicht mit nutzlosen Empfehlungen und Werbung vollgestopft war, waren wirklich angenehm
Heute ist es ein Mischmasch aus vier Generationen von GUI-Toolkits, bei dem manche UIs in einem Stil und andere in einem anderen gehalten sind
“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
Open Source passt meiner Meinung nach von Natur aus besser zu den Interessen der Nutzer und hat Mechanismen, die Enshittification verhindern
Weiß jemand, wie Fabrice Bellard Geld verdient? Seine Open-Source-Ergebnisse sind wirklich erstaunlich
Es ist schwer, überhaupt jemanden auf ähnlichem Niveau zu vergleichen. Ich könnte mir vorstellen, dass VMware versucht hat, ihn einzustellen, oder Google ihn für Video-Codecs, V8, Chromium-Rendering oder ffmpeg holen wollte
Aus Frankreich scheinen ziemlich viele sehr talentierte, kreative und produktive Software-Künstler oder einzelne Beitragende zu kommen
Ich weiß nicht, ob das an etwas Französischem liegt, am Bildungssystem mit den Écoles oder an etwas anderem, aber es fällt auf
Französische Technik hatte früher einen Ruf wie die Qualität alter Renault-Autos, aber so habe ich es in der Praxis nicht erlebt. Renault und Citroën haben mich eher beeindruckt
Umgekehrt war die Zusammenarbeit mit deutschen Softwareingenieuren schwierig; die Haltung „Wenn es nicht von uns gebaut wurde, taugt es nicht“ war sehr ausgeprägt. Das ist natürlich nur meine Verallgemeinerung
Das Problem des europäischen Tech-Ökosystems ist einfach: Wir können nicht verkaufen und optimieren auf Ressourceneffizienz. „Wettbewerbsfähige Gehälter“ bedeutet oft, dass man auf keinen Fall über Marktpreis zahlt
Die USA optimieren auf Wachstum und sind bereit, höhere Gehälter in Kauf zu nehmen, um die Kosten durch Wachstum zu amortisieren
Schließlich wird dort, wo ich herkomme, oft gespottet, Frankreich sei durch Einwanderung ruiniert worden. Diese Sichtweise mag es geben, aber es stimmt auch, dass Frankreich durch Brain Drain aus seinen Kolonien sehr fähige und produktive Menschen gewonnen hat
Mein Master-Betreuer kam ebenfalls aus der Elfenbeinküste, und auch bei Bootlin habe ich mit erstklassigen Ingenieuren gearbeitet, deren Namen nicht frankophon waren
Auf https://barebox.org/webdemo wird JSLinux verwendet, damit potenzielle Nutzer die Bedienbarkeit der Bootloader-Shell sehen können, ohne sie auf echte Hardware zu flashen.
Die hier erwähnten verschiedenen Forks sind erfreulich; ich sollte prüfen, welcher bareDOOM am besten ausführt und ob es vielleicht einen gibt, bei dem Sound funktioniert.
JSLinux war eine Inspiration beim Bau von Endor (https://endor.dev), und seine QEMU-Arbeit bildet auch die Grundlage vieler Wasm-bezogener Browser-Projekte.
Die CORS-Konfiguration ist fehlerhaft, daher funktioniert es nur korrekt, wenn man nicht den Link https://www.bellard.org/jslinux/, sondern https://bellard.org/jslinux/ aufruft.