Questo emulatore x86 per browser web utilizza il CSS, non JavaScript
L'architettura x86 è la base di molti computer, server e console di gioco, e ci sono molti emulatori per essa. Questo nuovo emulatore è speciale, però: è scritto completamente in CSS, il linguaggio normalmente usato per applicare stili di layout alle pagine web.
Abbiamo già visto alcuni emulatori x86 che possono essere eseguiti in un browser web, inclusi v86, il debugger di assembly di Jakub Beránek e JSLinux. Invece di utilizzare JavaScript o WebAssembly, come quei progetti, il nuovo emulatore x86CSS di Lyra Rebane esegue il codice macchina x86 in un browser utilizzando i fogli di stile a cascata.
La maggior parte dei siti e delle web app usa solo CSS per i layout delle pagine e per aggiungere stili visivi agli elementi, ma con le nuove funzionalità CSS come le istruzioni if() e le @functions, è possibile creare progetti più complessi. L'emulatore funziona attualmente solo nei browser Chromium, come Google Chrome, Microsoft Edge e Vivaldi, perché Firefox e Safari non hanno ancora implementato alcune di queste funzionalità CSS.
La pagina demo utilizza un programma C compilato con GCC in codice macchina nativo 8086, eseguito all'interno di CSS. Il programma può stampare il triangolo di Pascal o una sequenza di Fibonacci, oppure puoi giocare a un gioco di Horsle—Wordle, ma la parola è sempre "cavallo."
Lo sviluppatore ha spiegato: "Questo progetto implementa la maggior parte dell'architettura x86, ma non letteralmente ogni singola istruzione e stranezza, perché molte di esse sono inutili e non vale la pena aggiungerle. Il modo in cui ho affrontato questo progetto è stato scrivere programmi che volevo eseguire in C, compilarli con GCC a vari livelli di ottimizzazione e poi implementare ogni istruzione di cui avevo bisogno. In questo modo so di avere tutto ciò di cui ho bisogno implementato."
L'emulatore utilizza un orologio basato su JavaScript per aiutare nelle prestazioni e nella stabilità dell'emulatore, ma non è strettamente necessario. Se disattivi gli script sulla pagina, l'emulatore ritorna a un orologio CSS alimentato da animazioni e query sui contenitori di stile.
Questo non è un emulatore pratico, ma è un progetto divertente e un promemoria delle crescenti capacità del CSS. Siamo ancora lontani dagli effetti di fuochi d'artificio e dalle ricreazioni del Game Boy. Se qualcuno insiste ancora sul fatto che il CSS non sia un vero linguaggio di programmazione, ora avete un emulatore x86 da condividere con loro.
Puoi controllare il codice su GitHub, e lo sviluppatore dice che un post che spiega come funziona sarà pubblicato sul suo blog.
Fonte: Rebane2001 su Mastodon (1, 2)

