Il a entièrement recodé 8 vieux OS en HTML + un VB6 qui sort des .exe.

, un développeur open source spécialiste de .NET et d’Avalonia, a publié d’un coup sur son Github, plusieurs reconstitutions de Windows 3.1, 95, 98, Me, 2000, XP, Vista et même Mac OS 9 directement utilisables dans le navigateur ! Vous cliquez sur le lien, la page se charge en moins de deux secondes, et hop, vous voilà devant le Program Manager, le menu Démarrer ou le Finder.

Les huit bureaux au démarrage : Windows 3.1, 95, 98 et Me en haut, 2000, XP, Vista et Mac OS 9 en bas
Et ce ne sont pas des coquilles vides comme on le voit parfois mais de vrais OS complets. Le Windows 3.1 compte 28 applications rangées dans les groupes d’origine du Program Manager, XP en a 56, et Windows Me monte à 60 app en comptant les panneaux de configuration. Donc si vous n’avez jamais connu ces machines en vrai parce que vous êtes un.e petit.e jeune, c’est l’occasion de tripoter vous-même ce que vos aînés vous racontent depuis des années.

Le Démineur de Windows 3.1, ouvert par-dessus les groupes du Program Manager
Toutes les applis d’un même bureau partagent en plus un disque virtuel. Ainsi, sous Windows 95, un document enregistré dans Notepad apparaîtra dans l’Explorer tout comme dans l’invite MS-DOS, et l’interpréteur de commandes gère les redirections et les jokers (les *) sans soucis.
Voici par exemple le début d’une petite séquence que propose le README, à taper dans une invite de commande MS-DOS pour créer un fichier :
CD "C:My Documents"
ECHO Hello from DOS>hello.txt
TYPE hello.txt
DIR /B *.txt

L’invite MS-DOS de Windows 95 après la séquence ci-dessus : hello.txt est créé, lu puis listé
Côté jeux, XP propose le Spider Solitaire, une Dame de pique contre trois adversaires pilotés par l’ordinateur et un flipper dont le tableau original, s’inspire de Space Cadet. Vista, quant à lui, ressort Chess Titans, Mahjong Titans, Purble Place et InkBall avec ses gadgets sur le côté, et Mac OS 9 a son Finder spatial, ses 33 tableaux de bord et sa Graphing Calculator.

Le flipper de Windows XP, une table originale inspirée de Space Cadet

Chess Titans sous Vista, avec l’horloge, le diaporama et le calendrier en gadgets

Mac OS 9 et sa Graphing Calculator, qui trace ici y = sin(x)
Maintenant, ce qui m’a intrigué, c’est comment ça peut démarrer aussi vite ???
Eh bien tout simplement parce que rien n’est émulé ! Par exemple, un émulateur comme
, dont je vous parlais en 2022, traduit à la volée le code machine x86 en WebAssembly pour faire tourner Windows lui-même dans le browser. Mais ici, il n’y a ni noyau Windows ni processeur virtuel, car chaque fenêtre, chaque menu et chaque application ont été réécrits en HTML, CSS et modules JavaScript. Les fenêtres sont donc des éléments de page web ordinaires, que le navigateur affiche comme n’importe quel site.
Le code, lui, est volontairement dépouillé, avec par exemple Windows 3.1 qui n’a besoin d’aucun framework ni d’aucun bundler, ou encore le bureau de Windows 95 qui s’affiche via un simple python3 -m http.server.
Seuls le fond d’écran, les économiseurs et certaines opérations de dessin passent par le GPU en WebGPU, avec un repli sur WebGL2 puis sur Canvas 2D si votre machine ne suit pas. Et sur Windows 3.1 comme sur Mac OS 9, l’image ne se redessine que quand quelque chose change, donc un bureau au repos ne relance aucun rendu au niveau GPU.
Pour le poids, pareil, c’est super léger. Cache désactivé, chaque "OS" charge très peu de data : 183 Ko pour Windows 95, 180 Ko pour Mac OS 9 et 306 Ko pour Windows 2000. Et XP et Vista montent à 4,5 et 2,5 Mo. À titre de comparaison,
, un éditeur de diagrammes façon Visio du même auteur, écrit en C# et compilé en WebAssembly avec Uno Platform, en réclame 17 Mo.

DrawingSpace, l’éditeur de diagrammes du même auteur, écrit en C# et compilé en WebAssembly
Le revers de la médaille, vous l’aurez compris, c’est que vous n’avez pas Windows sous la main, mais sa reconstitution. Aucun programme d’origine ne s’exécute, et l’équivalence au pixel près n’a pas été établie. Pour montrer à quoi ressemblait un bureau à quelqu’un qui ne l’a pas connu, ou pour choper un peu de code afin de développer votre propre bureau Windows HTML pour y mettre votre site web, c’est parfait. Mais pour relancer un logiciel d’époque tel qu’il était, faudra passer par v86, par
pour Mac OS 9, ou encore par
, qui exécute les vrais .exe Windows et DOS.
Mais le plus beau morceau de tout ce que le garçon nous a sorti, c’est je trouve,
, publié le même jour. C’est un Visual Basic 6 dans un onglet, avec sa boîte à outils, sa fenêtre Properties, son concepteur de formulaires et un débogueur pas à pas. Vous appuyez sur F5 et le projet d’exemple (une saisie de commandes shopping) se lance aussitôt. Et le code VB n’est pas confié à un eval JavaScript, mais réellement exécuté par un compilateur et une machine virtuelle maison, avec 37 types de contrôles différents dispos.

VB6 Studio Web après un F5 : le projet d’exemple Order Entry tourne dans l’IDE
Ouvrez ensuite l’exemple Calculator par File, New Project…, puis lancez File, Make Calculator.html, et votre programme deviendra une page HTML unique qui embarquera son propre runtime. Sur l’exemple Calculator, ça m’a donné un fichier de 1,9 Mo qui s’ouvre directement depuis le disque, sans l’IDE, et qui répond bien 42 quand je lui demande de faire un 6×7 (ouais, six-seven, on soutient la cause lycéenne ici !).
Pour ceux qui ont des archives, il peut aussi ouvrir les projets .vbp et .vbg d’époque, depuis des fichiers, un dossier ou un ZIP, et il embarque même un agent de code qui pilote l’IDE avec votre propre clé OpenAI, Anthropic ou Gemini.
L’entrée voisine, "Make Calculator.exe" (Win32 AOT), va encore plus loin puisqu’un éditeur de liens PE32 et un générateur de code x86 écrits en JavaScript y fabriquent un exécutable Windows natif, sans quitter le navigateur.
Chez moi, après compilation, j’ai obtenu un fichier de 34 ko que la commande file identifie comme un véritable exécutable PE32 pour Windows. Je ne l’ai pas lancé sous un vrai Windows, mais ça devrait normalement se lancer vu que c’est assez basique comme code.

Le projet Calculator après Make Calculator.exe : la barre d’état annonce 34304 octets, code x86, contrôles natifs et GDI, sans extraction

La même calculatrice exportée en un seul fichier HTML, ouverte hors de l’IDE : 7 × 6 = 42
Bref, le mec a fait des trucs de zinzin, à se demander comment un développeur peut-il sortir autant de choses à lui tout seul ?
Probablement grâce à l’IA, puisque les projets contiennent pour la plupart un fichier .openai/hosting.json mais peu importe, même si c’est vibe codé, c’est quand même un gros boulot et la qualité est au rendez-vous.
Voilà, si vous voulez tester, tout se lance sans rien installer, depuis les dépôts
,
,
,
,
,
,
et
Vos fichiers créés dans ces "OS" resteront bien sûr dans le navigateur dans un IndexedDB, donc si vous videz les données du site ou si vous changez de navigateur, votre ordinateur virtuel repartira de zéro…
Sous Windows 95, l’outil Backup exportera le disque en JSON donc il y a quand même moyen de faire un petit export si ça vous amuse et bonne nouvelle, son VB6 Studio Web est sous licence MIT, donc si vous avez encore un vieux projet VB6 qui dort sur un disque dur, vous savez maintenant où aller pour tenter de le rouvrir !
Source : korben.info