5 Punkte von GN⁺ 2023-08-27 | 1 Kommentare | Auf WhatsApp teilen
  • OS.js ist eine Open-Source-JavaScript-Plattform, um im Browser eine Desktop-artige Umgebung zu erstellen
  • Enthält einen Fenstermanager zum Anordnen und Verwalten von Fenstern, sodass Web-Apps wie auf einem Desktop organisiert werden können
  • Bietet eine Application API sowie ein GUI-Toolkit für die Entwicklung von Anwendungen
  • Dateibezogene Funktionen werden über eine Dateisystem-Abstraktion behandelt
  • Fensterverwaltung, App-Entwicklung, GUI und Dateiverarbeitung sind in einer Plattform gebündelt und können als Ausgangspunkt für die Umsetzung eines Web-Desktops dienen

Von OS.js bereitgestellte Komponenten für einen Web-Desktop

  • OS.js ist eine Open-Source-Web-Desktop-Plattform auf JavaScript-Basis
  • Desktop-UI

    • Enthält einen Fenstermanager und unterstützt damit den Aufbau einer Desktop-artigen UI
  • Anwendungsentwicklung

    • Bietet eine Application API und ein GUI-Toolkit und bringt damit die grundlegenden Bausteine für die Entwicklung von Apps für Web-Desktops mit
  • Dateiverarbeitung

    • Dateibezogene Funktionen lassen sich über eine Dateisystem-Abstraktion handhaben

1 Kommentare

 
GN⁺ 2023-08-27
Hacker-News-Kommentare
  • Nebenbei: https://windows93.net/ gefällt mir unter den Web-Desktop-Konzepten bisher am besten

    • Windows 96 ist auch ziemlich gut
      https://windows96.net/

      Internet-Betriebssysteme sind eine Nische, die ich spannend finde, daher habe ich auf meiner Website eine Liste angelegt. OS.js werde ich demnächst ebenfalls hinzufügen

      Falls ihr sie sehen wollt, hier ist sie:
      https://www.whoisthisjoker.com/jokerlinks/virtualoperatingsy...

      [Bearbeitet] Hacker News scheint Markdown nicht zu unterstützen, daher habe ich es lesbarer gemacht

    • Dass im „Boot-Log“ Safari is teh new Internet Explorer steht, ist ironisch. Safari ist eine der letzten beiden Säulen gegen die vollständige Dominanz von Chrome, während Google versucht, WEI mit Gewalt durchzudrücken

      Das offene Web stirbt, und ich denke, solche Botschaften tragen zu diesem Tod bei

    • In eine ähnliche Richtung gehend finde ich Windows RG (really good edition) am besten: https://www.newgrounds.com/portal/view/27549

    • Bei auf 100 % gestellter Lautstärke sollte man besser nicht auf dieses Hamster-Icon klicken :S

    • Witzig, besonders wenn man Windows 95 benutzt hat

  • Nachdem in letzter Zeit viele solche Dinge auf HN auftauchen, habe ich einen Blogpost [1] über das Phänomen geschrieben, dass Web-Desktops wieder populär werden. OS.js war eines der frühen Projekte, die ich seit ein paar Jahren verfolge, und es ist wirklich gut entworfen und dokumentiert
    Das Interface erinnerte mich immer an Distributionen mit GNOME 2 aus der Mitte der 2000er, was mir gefiel, weil die meisten nostalgischen Web-Desktops Windows-9x-Themes verwenden

    [1] https://system31.simone.computer/blog/desktops-zip

  • Witzig, dass das schneller und reaktionsfreudiger ist als mein echter Windows-Desktop-Fenstermanager. Besonders bei Dingen wie dem Öffnen von Apps

    • Es ist seltsam, dass Windows 11 selbst auf aktueller Hardware so langsam ist. Selbst mit moderner CPU und 16 GB RAM dauert es ziemlich lange, bis Dinge laden, und im Vergleich zu einem MacBook Air in ähnlicher Preisklasse wirkt es sehr träge

      Ich kann mir kaum vorstellen, dass dieser Unterschied an der Hardware liegt. Der M2 ist zwar schnell, aber Intel der 12. Generation ist nicht um Größenordnungen langsamer, sondern verbraucht nur mehr Strom

      Also ist es ein Softwareproblem. Traurig, wenn man bedenkt, wie gut der Kernel der NT-Familie war; darauf wurde dann ein immer schlechteres Betriebssystem gebaut. Dass der Desktop-Marktanteil von fast 100 % auf heute ungefähr 60 % gefallen ist, ist selbstverschuldet, und es wirkt nur wie eine Frage der Zeit, bis sie den Weg von AOL oder Yahoo gehen

    • Um diese Aussage zu testen, habe ich im Brave-Browser gezogen, und auf einem 12-Core/24-Thread 5900X fror der ganze PC für 2 Sekunden ein

  • Die Tetris-Blöcke scheinen nicht am Pixelraster des Canvas ausgerichtet zu sein, wodurch unnötiges Antialiasing entsteht. Deshalb wirken die Blockränder ständig unscharf

    Zur Behebung müsste man eine „Putztuch“-App hinzufügen, die der Nutzer über das Tetris-Canvas ziehen kann, um die Blöcke horizontal um 0,5 Pixel zu verschieben

    Noch besser wäre es, nur die Blöcke zu verschieben, die sich mit dem Putztuch überlappen :)

  • Ich dachte, alles würde per canvas gerendert, aber das ist nicht der Fall. Es nutzt HTML und verwendet canvas nur für Dinge wie Paint

    • Leute unterschätzen, wie viel Gutes CSS beim Erstellen von UIs bietet

      Wenn man alles in canvas baut, muss man Dinge wie flexbox neu implementieren, um Icon-Texte, Boxen, Buttons usw. zu zentrieren, auszurichten, zu strecken und zu animieren

      Wenn es doch bereits eine implementierte und auf praktisch allen Plattformen hochoptimierte Layout-Engine gibt, warum nicht einfach bei HTML bleiben?

    • Tatsächlich lässt sich alles nur mit HTML machen. Meine Desktop-Umgebung verwendet möglichst semantisches HTML und modernes CSS wie grid für das Icon-Raster

      Allerdings denke ich darüber nach, irgendwann alles als WebAssembly komplett neu zu schreiben und vollständig auf canvas zu setzen. Das wäre viel leichter auf andere Plattformen zu portieren und würde die Chance erhöhen, irgendwann den Browser verlassen zu können

    • Das war auch das Erste, was ich geprüft habe. Zu sehen, dass sogar die Farbeingabe-Slider und Range-Inputs in HTML umgesetzt sind, war ziemlich schön

  • Ich habe einmal ein ähnliches Konzept für privaten Internetzugriff auf Dateisysteme gebaut. Hier ist es: https://github.com/prettydiff/share-file-systems

    Fenster- und Zustandsverwaltung kann man als Demo auf meiner persönlichen Website sehen: https://prettydiff.com

  • Damit haben wir ein weiteres Betriebssystem (einen Compiler) auf Windows gebaut, unserem Betriebssystem, auf dem unser Betriebssystem, der Webbrowser, läuft, auf dem OS.js läuft

  • Seltsamerweise bekomme ich Lust, so etwas zu bauen oder auszuprobieren, aber gleichzeitig fällt mir kein echter Use Case ein

    • Stell dir vor, du kaufst einen neuen Laptop und musst nichts installieren. Alle Programme, Dateien und Einstellungen liegen in der Cloud, und Programme können Dateien direkt aus dem Cloud-Speicher öffnen, ohne sie erst herunterzuladen. Dadurch müssen Nutzerdateien und Dokumente nicht auf dem Gerät gespeichert werden

      Wenn das Gerät nur einen solchen Desktop ausführt, könnte ein solches Internet-Betriebssystem am besten auf Chromebook-artigen Geräten mit minimalem Speicher für Systemdaten laufen. Man könnte sie darauf beschränken, nur den Internet-Desktop auszuführen, und die gesamte Konfiguration in der Cloud speichern, sodass sie nach dem Login automatisch eingerichtet wird. Dann braucht man nur noch die Hardware, und sie ist sofort nutzbar, ohne sich um Einstellungen, Installation oder Treiber kümmern zu müssen

      Das passt nicht zu jedem Nutzer und jeder Situation, kann aber in bestimmten Szenarien sehr nützlich sein

    • Der Use Case ist die Rückkehr zum dummen Terminal. Viele Unternehmen nutzen bereits Remote Desktop und VPN so viel wie möglich, aber viele würden ihren Mitarbeitern gern Geräte ausgeben und das gesamte Betriebssystem aus der Ferne laufen lassen, sodass diese Geräte im Grunde Terminals sind

      Dann verbleiben 100 % der von Mitarbeitern erzeugten Daten auf den Servern und im Netzwerk der Organisation. Das heißt nicht, dass es eine gute Employee Experience ist, aber es ist ein klarer Use Case

  • Erinnert mich an Buddy Pond https://buddypond.com/

  • Auf dem Handy konnte ich Tetris nicht spielen, weil man zum Starten die Leertaste drücken muss

    Einerseits finde ich solche Dinge cool. Warum wurde es gebaut? Vermutlich, weil es möglich war

    Andererseits frage ich mich trotzdem, warum man so etwas baut

    • Wenn jemand Unterstützung für eine virtuelle Tastatur hinzufügt, damit man Tetris darin auf dem Handy spielen kann, dann wären zumindest alle vernünftigen Gründe beseitigt