この Web ブラウザー用の x86 エミュレーターは、JavaScript ではなく CSS を使用します。

in tech

x86 アーキテクチャは多くのコンピュータ、サーバー、ゲーム機の基盤であり、x86 アーキテクチャ用のエミュレータが多数あります。ただし、この新しいエミュレータは特別です。CSS で完全に記述されています。CSS は通常、Web ページにレイアウト スタイルを適用するために使用される言語です。

v86、Jakub Beránek のアセンブリ デバッガ、JSLinux など、Web ブラウザで実行できる x86 エミュレータをいくつか確認しました。これらのプロジェクトのように JavaScript や WebAssembly を使用する代わりに、Lyra Rebane の新しい x86CSS エミュレーターは、カスケード スタイル シートを使用してブラウザーで x86 マシン コードを実行します。

ほとんどのサイトや Web アプリでは、ページ レイアウトと要素へのビジュアル スタイルの追加にのみ CSS を使用しますが、if() ステートメントや @functions などの新しい CSS 機能を使用すると、より複雑なプロジェクトを作成できます。 Firefox や Safari にはこれらの CSS 機能の一部がまだ実装されていないため、エミュレータは現在、Google Chrome、Microsoft Edge、Vivaldi などの Chromium ブラウザでのみ動作します。

デモ ページでは、GCC でネイティブ 8086 マシン コードにコンパイルされた C プログラムを使用し、CSS 内で実行されます。プログラムはパスカルの三角形やフィボナッチ数列を印刷したり、Horsle-Wordle のゲームをプレイしたりできますが、単語は常に「horse」です。

Edge の x86 エミュレーターのスクリーンショット

開発者は次のように説明しました。「このプロジェクトは、x86 アーキテクチャの大部分を実装していますが、文字通りすべての命令や癖を実装しているわけではありません。その多くは不必要で追加する価値がないからです。私がこのプロジェクトに取り組む方法は、実行したいプログラムを C で作成し、さまざまなレベルの最適化を使用して GCC でコンパイルし、必要なすべての命令を実装することでした。この方法で、必要なものがすべて実装されていることがわかります。」

エミュレータは、エミュレータのパフォーマンスと安定性を高めるために JavaScript ベースのクロックを使用しますが、これは厳密に必須ではありません。ページ上のスクリプトを無効にすると、エミュレータはアニメーションとスタイル コンテナ クエリを利用した CSS クロックに戻ります。

JavaScriptのロゴ

この新しい JavaScript エンジンには 10 KB の RAM のみが必要です

文字通りあらゆるものに対して JavaScript を実行します。

これは実用的なエミュレータではありませんが、楽しいプロジェクトであり、CSS の機能の成長を思い出させてくれます。私たちは花火の効果やゲームボーイのレクリエーションからは程遠いです。 CSS は本物のプログラミング言語ではないとまだ主張する人がいれば、x86 エミュレータを共有できるようになりました。

GitHub でコードをチェックアウトできます。開発者は、コードがどのように機能するかを説明する投稿がブログで公開される予定だと述べています。

出典: マストドンの Rebane2001 (1, 2)

関連記事

前の投稿
ゲーマーたちが依然として Discord の年齢認証に腹を立てている理由
次の投稿
セレーナ・ゴメスはクローンなのか?今週人々が間違っていること

関連記事