忘れられた言葉:環境

むかしむかし、コンピューターが大きくプログラムが小さいとき、環境などの重要な概念が使用されていました。 この良い用語は、その控えめな意味をすでに失っていますが、その関連性を失っていません。 仮想化の普及により、オペレーティング環境に関する情報が議論の対象となり、ある意味ではプログラマーの間でもスポーツへの関心が高まっています。 CPUID命令という「鉄」引数でこれに参加することにしました。



なぜそう 実際には、標準および高度な機能に加えて、CPUIDはホストシステムハイパーバイザーが担当する仮想機能を実装しています。 この場合、 ハイパーバイザー情報取得要求の結果は、オペレーティング環境を一意に定義する署名の1つである可能性があります。 実装によっては、次の署名が利用できる場合があります(リストは不完全です)。



画像



Oracle VirtualBoxによって実装される仮想環境の機能を識別するために、32ビットおよび64ビットのUEFI BIOS実装でEFIバイトコードモードで動作するように設計された、以前に記述されたUEFIInfoサンプル(英語のBrief Sysinfo Utility)に基づいて決定されました。この環境を特定する作業ソフトウェアを作成します。 (EBCを使用した実験については、Habrで公開されています。たとえば、「 EFIバイトコードとメモリ操作 」の注を参照してください)



UEFIを選ぶ理由 ファームウェアでの実験は、ソフトウェアの文化的な層のない一種の「クリーンルーム」だからです。 デバッグされたアルゴリズムを手元に用意することは、LinuxやWindows向けのこのようなソフトウェアを実装するのに難しくありません。



アセンブリ言語のユーティリティUEFIInfo v0.02のソースコードは、すべての人が見ることができるようにレイアウトすることが決定されました。 注目を集めるために、Oracle VirtualBox仮想環境での実行のスクリーンショットを投稿します。これは、オープンなTianoCore実装の影響を考慮したものです。



画像







All Articles