Stelaプロジェクトは、汎用的なApple Siliconハードウェアレイヤーを作成することで、x86-64 PC上でmacOSを実行する手法を提供します。ホストOSの上で動作する従来のエミュレータとは異なり、Stelaはarm64eコードを直接x86-64命令に変換するUEFIブートプログラムとして機能し、標準的なIntelまたはAMDハードウェア上でAppleのソフトウェアの実行を可能にします。

命令変換とハードウェアモデリング

Stelaの核心は、2つの異なるプロセッサアーキテクチャ間の翻訳機として機能することです。これは3,000以上のAArch64命令エンコーディングを処理するコンパイラを採用しており、ゲストレジスタをホストレジスタにマッピングし、効率を向上させるために変換されたコードをキャッシュします。

環境を機能させるために、StelaはAppleシリコンハードウェアのモデルを提供します。現在はMac mini (M2)をシミュレートしており、macOSおよびほとんどのアプリケーションを初期化するために必要な環境を提供します。

「これは、arm64からx86-64への翻訳機、NVIDIA GPU用のMetalドライバ、およびAppleシリコンハードウェアのモデルを備えたUEFIブートプログラムです。」

— GitHub - tylertms/Stela: A general purpose Apple Silicon layer for x86-64 PCs

Metalドライバによるグラフィックスサポート

このプロジェクトの重要な構成要素はMetalドライバであり、これによりシステムはNVIDIAグラフィックスハードウェアとインターフェースをとることができます。このドライバは、Metalのシェーダー中間表現であるAIRを、Mesaで使用される中間表現であるNIRに直接コンパイルします。

この特定の実装はMetal3およびApple7 GPUファミリーをサポートしており、特にNVIDIA GTX 16およびRTX 20シリーズ以降のGPUをターゲットとしています。

現在の制限とパフォーマンス

StelaはmacOSや多くのアプリケーションの起動に成功していますが、プロジェクトは初期の開発段階(v0.1.0)にあります。開発者は、現在の体験は低速であり、安定性を確保するためにはさらなる大幅なテストが必要であると述べています。

プロジェクトは依然として主要なハードウェアサポートの修正と最適化の過程にあるため、ユーザーは低い起動成功率とパフォーマンスのボトルネックを予想する必要があります。

Hacker Newsの読者の反応

  • 技術的な指摘: あるコメント投稿者は、このプロジェクトは標準的なAOTまたはJITコンパイラというよりも、リバースRosetta翻訳に近いように機能すると説明しました。 コメント ↗
  • 懐疑的: 別のユーザーは、この特定のツールを使用せずにmacOS上で同様の結果を得られたと主張し、プロジェクトの必要性に疑問を投げかけました。 コメント ↗
  • 体験談: あるコメント投稿者は、PC上でモバイルゲームを実行するためにこのプロジェクトを使用することに関心を示しましたが、他のユーザーは現在のバージョンは低速でバグが多いと指摘しました。 コメント ↗

Hacker Newsのスレッドで出た意見の要約です。事実として検証されたものではありません。 議論の全文を読む ↗