4 Punkte von GN⁺ 2025-04-15 | 2 Kommentare | Auf WhatsApp teilen
  • 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

2 Kommentare

 
GN⁺ 2025-04-15
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 * statt ls gewöhnen

    • Man könnte sagen, Fabrice baut Nebenprojekte, die andere ein Leben lang warten können
      QEMU, ffmpeg, die LTE-Arbeiten und QuickJS kannte ich, aber ich wusste nicht, dass auch xterm.js auf ihn zurückgeht
    • Egal welchen Befehl man ausführt, es erscheinen attempted to munmap und eine Kernel-Warnung wie unten
      Es taucht ein Stacktrace mit Zeilen wie WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000 und Comm: sh Not tainted 6.1.132 auf, der zu vmlinux-NLTKI6YG.wasm und worker-MHWHWELT.js führt
    • Das weckt Erinnerungen. Ich hatte es eine Weile nicht mehr gesehen, aber es ist schön, dass ein Fork meines Forks von vor 12 Jahren immer noch gut weiterlebt
      Sieht 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
    • Cool. Wenn es energieeffizienter als JSLinux ist und auch auf iOS laufen kann, könnte es eine gute Alternative zu A-Shell oder iSH werden
      Ich habe es auf einem MacBook ausprobiert, aber Tastatureingaben wurden nicht registriert
    • Gibt es Befehle, die funktionieren? ps, cat, vi und ed crashen alle
      Ich 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

    • Vielleicht sollten wir einfach herausfinden, was er will, und es ihm geben. Dann schreibt er uns im Gegenzug vermutlich all die kaputten Dinge, die wir haben, ordentlich neu
      Handys, Betriebssysteme, Desktop-Umgebungen, Länder, App-Stores und so weiter
    • Ich mag diesen Menschen. Sein QEMU ist so weit verbreitet, dass er die Hälfte der weltweiten Android-Entwicklung einfacher gemacht hat, und der Einfluss wächst weiter
    • Auch LZEXE, das Leuten vertraut sein dürfte, die DOS genutzt haben, wurde von derselben Person geschrieben
    • Ich frage mich, wie er auswählt, woran er arbeitet. Vielleicht folgt er einfach seinem Interesse
  • 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/

  • 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.c hat 50.000 Zeilen und enthält auch Funktionen mit mehreren Hundert Zeilen
    https://github.com/bellard/quickjs/blob/master/quickjs.c
    Natürlich ist je nach Situation ein anderer Ansatz richtig

    • Die Antwort ist einfach: Bellard kann sich den Kontext von 50.000 Zeilen komplett merken, die meisten können das nicht
      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
    • Ich arbeite an dieser Codebase, und wir haben sie als QuickJS-ng geforkt
      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
    • Weil die Leute, mit denen man zusammenarbeitet, nicht Fabrice sind. Es ist einfacher zu sagen: „Mach X überhaupt nicht“, als zu erklären, wann es sicher ist, die Regel zu brechen
      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
    • Ein gutes Beispiel: Der Garbage Collector von .NET ist eine einzelne C++-Datei mit 54.000 Zeilen
    • Manchmal ist eine lange Funktion, die eine Sache gut erledigt, besser als mehrere stark gekoppelte Funktionen, über die schwer zu reasoning ist
      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-Proxy
    https://ktock.github.io/container2wasm-demo/amd64-debian-was...

  • 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

    • Ich möchte Windows 2000 keineswegs wieder benutzen, aber es ist interessant, eine Windows-Version zu sehen, deren UI konsistent war
      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
    • Verwandter Artikel:
      “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
    • Ich wollte dort Visual Basic 6 installieren, kam aber wegen SSL-Fehlern im installierten Firefox nicht einmal über den ISO-Download hinaus. Schade
    • Genau deshalb nutze ich seit mindestens 2010 Xfce. Es funktioniert immer noch auf dieselbe Weise
      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

    • Bootlin ist ein französisches Unternehmen und ein wichtiger Open-Source-Beitragender. Ich habe mit ihnen zusammengearbeitet und kann sie empfehlen
      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
    • Kann man Leute namentlich nennen, die mit Fabrice Bellard vergleichbar sind?
  • 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.

    • Gibt es öffentlich verfügbare Details dazu, wie die Ansätze mit virtuellen Maschinen, Containern und Wasm-nativem Zugriff implementiert sind?
 
ndrgrd 2025-04-16

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.