5 points par GN⁺ 2023-08-27 | 1 commentaires | Partager sur WhatsApp
  • OS.js est une plateforme JavaScript open source permettant de créer un environnement de type bureau dans le navigateur
  • Elle intègre un gestionnaire de fenêtres pour agencer et manipuler les fenêtres, afin d’organiser les apps web comme sur un bureau
  • Elle fournit à la fois une API d’application et une boîte à outils GUI pour le développement d’applications
  • Les fonctionnalités liées aux fichiers sont conçues pour être gérées via une abstraction du système de fichiers
  • Elle réunit gestion des fenêtres, développement d’apps, GUI et traitement des fichiers sur une même plateforme, et peut servir de point de départ pour implémenter un bureau web

Les composants de bureau web fournis par OS.js

  • OS.js est une plateforme de bureau web open source basée sur JavaScript
  • UI de bureau

    • Elle inclut un gestionnaire de fenêtres qui prend en charge la création d’une UI de type bureau
  • Développement d’applications

    • Elle fournit une API d’application et une boîte à outils GUI, offrant les éléments de base nécessaires au développement d’apps pour un bureau web
  • Traitement des fichiers

    • Les fonctionnalités liées aux fichiers peuvent être gérées via une abstraction du système de fichiers

1 commentaires

 
GN⁺ 2023-08-27
Avis sur Hacker News
  • À part ça, https://windows93.net/ est de loin le concept de bureau web que je préfère jusqu’ici

    • Windows 96 est plutôt pas mal aussi
      https://windows96.net/

      Les systèmes d’exploitation Internet sont un sujet de niche qui m’intéresse, donc j’en ai fait une liste sur mon site. J’y ajouterai bientôt OS.js

      Si vous voulez la voir, c’est ici :
      https://www.whoisthisjoker.com/jokerlinks/virtualoperatingsy...

      [Modification] Hacker News ne semble pas prendre en charge Markdown, donc j’ai corrigé pour que ce soit plus lisible

    • Le fait que le « journal de démarrage » affiche Safari is teh new Internet Explorer est ironique. Safari est l’un des deux derniers remparts face à la domination totale de Chrome, alors même que Google essaie d’imposer WEI de force

      Le web ouvert est en train de mourir, et je pense que ce genre de messages contribue à sa mort

    • Dans le même esprit, Windows RG (really good edition) est ce que je préfère : https://www.newgrounds.com/portal/view/27549

    • Mieux vaut ne pas cliquer sur cette icône de hamster si le volume des haut-parleurs est à 100 % :S

    • C’est drôle, surtout si on a utilisé Windows 95

  • En voyant pas mal de choses comme ça apparaître récemment sur HN, j’ai écrit un billet de blog [1] sur le regain de popularité des bureaux web. OS.js faisait partie des premiers projets que je suivais depuis quelques années, et il est vraiment bien conçu et documenté
    L’interface m’a toujours rappelé les distributions qui utilisaient GNOME 2 au milieu des années 2000, ce que j’aimais bien, contrairement à la plupart des bureaux web nostalgiques qui reprennent un thème Windows 9x

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

    • EyeOS faisait déjà ce genre de chose autour du passage à l’an 2000 :

      https://en.wikipedia.org/wiki/EyeOS

      La première version d’OS.js est arrivée plus de dix ans après, vers 2015

  • C’est drôle que ce soit plus rapide et plus réactif que le gestionnaire de fenêtres de mon bureau Windows réel. Surtout pour des choses comme l’ouverture d’apps

    • C’est étrange que Windows 11 soit aussi lent même sur du matériel récent. Même avec un CPU moderne et 16 Go de RAM, charger certaines choses prend un bon moment, et c’est très poussif comparé à un MacBook Air de prix similaire

      J’ai du mal à imaginer qu’un tel écart vienne du matériel. Le M2 est rapide, certes, mais les Intel de 12e génération ne sont pas tellement plus lents ; ils consomment juste davantage

      Cela veut donc dire que le problème vient du logiciel. C’est triste quand on pense à la qualité du noyau de la famille NT, et à la façon dont on a construit par-dessus un système d’exploitation de pire en pire. La part de marché desktop qui est passée de presque 100 % à environ 60 % aujourd’hui, ils ne peuvent s’en prendre qu’à eux-mêmes, et on dirait que ce n’est qu’une question de temps avant qu’ils suivent la voie d’AOL ou Yahoo

    • Pour tester cette affirmation, j’ai fait glisser la fenêtre du navigateur Brave, et tout mon PC s’est figé pendant 2 secondes sur un 5900X 12 cœurs/24 threads

  • On dirait que les blocs de Tetris ne sont pas alignés sur la grille de pixels du canvas, ce qui crée un anticrénelage inutile. Du coup, les contours des blocs paraissent constamment flous

    Pour corriger ça, il faudrait ajouter une app « chiffon de nettoyage » que l’utilisateur pourrait faire glisser sur le canvas de Tetris, afin de décaler les blocs horizontalement de 0,5 pixel

    Mieux encore, il faudrait ne déplacer que les blocs qui chevauchent le chiffon de nettoyage :)

  • Je m’attendais à ce que tout soit rendu en canvas, mais ce n’est pas le cas. Ça utilise HTML, et canvas seulement pour des endroits comme Paint

    • Les gens sous-estiment les bonnes choses que CSS apporte quand on crée une UI

      Si on fait tout en canvas, il faut réimplémenter des choses comme flexbox pour centrer, aligner, étirer et animer les textes d’icônes, boîtes, boutons, etc.

      Puisqu’on a déjà un moteur de mise en page implémenté et très optimisé sur pratiquement toutes les plateformes, pourquoi ne pas simplement rester en HTML ?

    • En réalité, tout est possible uniquement avec HTML. Mon environnement de bureau utilise autant que possible du HTML sémantique, et du CSS moderne comme grid pour la grille d’icônes

      Cela dit, j’envisage un jour une réécriture complète en WebAssembly avec tout en canvas. Ce serait beaucoup plus facile à porter vers d’autres plateformes, et cela augmenterait aussi les chances de sortir un jour du navigateur

    • C’est aussi la première chose que j’ai vérifiée. Voir que les curseurs de saisie des couleurs et même les entrées de plage étaient en HTML, c’était plutôt appréciable

  • J’ai déjà créé un concept similaire d’accès Internet privé à des systèmes de fichiers. C’est ici : https://github.com/prettydiff/share-file-systems

    La gestion des fenêtres et de l’état est visible en démo sur mon site personnel : https://prettydiff.com

  • Nous avons donc créé un autre système d’exploitation (un compilateur) au-dessus de Windows, qui est notre système d’exploitation, lui-même au-dessus de notre système d’exploitation qu’est le navigateur web, au-dessus d’OS.js

  • Bizarrement, ce genre de chose me donne envie d’en créer ou d’en essayer une, mais en même temps je n’arrive pas à imaginer de vrai cas d’usage

    • Il faut se dire qu’en achetant un nouvel ordinateur portable, on n’aurait rien à installer. Tous les programmes, fichiers et réglages seraient dans le cloud, et les programmes pourraient ouvrir les fichiers directement depuis le stockage cloud sans avoir à les télécharger d’abord. Il n’y aurait donc pas besoin de stocker les fichiers et documents utilisateur sur l’appareil

      Si l’appareil ne faisait tourner que ce bureau, ce type de système d’exploitation Internet fonctionnerait au mieux sur des appareils façon Chromebook, avec un minimum de stockage réservé aux données système. On pourrait les verrouiller pour qu’ils n’exécutent que le bureau Internet, et stocker toute la configuration dans le cloud afin qu’elle se mette en place automatiquement à la connexion. Il suffirait alors d’avoir le matériel pour pouvoir l’utiliser, sans toucher à la configuration, à l’installation ou aux pilotes

      Ça ne conviendra pas à tous les utilisateurs ni à toutes les situations, mais dans certains scénarios cela pourrait être très utile

    • Le cas d’usage, c’est de revenir au terminal passif. Beaucoup d’entreprises utilisent déjà autant que possible le bureau à distance et les VPN, mais beaucoup aimeraient aussi fournir un appareil aux employés et faire tourner tout le système d’exploitation à distance, en transformant de fait cet appareil en terminal

      Ainsi, 100 % des données créées par l’employé restent dans les serveurs et le réseau de l’organisation. Cela ne veut pas dire que l’expérience employé sera bonne, mais c’est clairement un cas d’usage

  • Ça me rappelle Buddy Pond https://buddypond.com/

  • Sur téléphone, impossible de jouer à Tetris parce qu’il faut appuyer sur la barre d’espace pour démarrer

    D’un côté, je trouve ce genre de choses génial. Pourquoi l’avoir créé ? Probablement parce qu’ils le pouvaient

    D’un autre côté, je continue quand même à me demander pourquoi on les crée

    • Si quelqu’un ajoutait la prise en charge d’un clavier virtuel pour pouvoir jouer au Tetris qui est dedans sur téléphone, cela permettrait au moins d’éliminer toutes les raisons rationnelles