ソフトウェアがネイティブに動作することはどういう意味ですか?
人々がネイティブソフトウェアの実行、エミュレーション、およびソフトウェアの互換性について言及するとき、彼らは正確に何を言及しているのでしょうか?ネイティブソフトウェアの概念を詳しく調べながら読みます。.
今日の質疑応答セッションは私達に礼儀正しく来る SuperUser - Stack Exchangeのサブディビジョン、コミュニティ主導のQ&A Webサイトのグループ化.
質問
SuperUserの読者Throsbyは、ソフトウェアをネイティブに実行することの意味について興味があります。彼は書く:
ソフトウェアがネイティブに動作するということはどういう意味ですか。そのようなソフトウェアとは一体何であり、ネイティブに動作しないソフトウェアとどう違うのですか。特定のソフトウェアがコンピュータ上でネイティブに動作するかどうかを確認する方法はありますか。ネイティブに動作するソフトウェアが私のコンピュータに既に存在する可能性がありますか?
特定のシステムでネイティブになることが正確に何を意味するのかを説明する優れたアナロジーを読んでください。.
答え
SuperUserの寄稿者であるDeltikは、ソフトウェアがネイティブであることが何を意味するのか、および特定のシステムで他にどのようなソフトウェアを見つけることができるのかを強調した素晴らしいアナロジーを提供します。
ソフトウェアがプラットフォーム上で実行されるように設計されている場合、そのソフトウェアはそのプラットフォームに固有のものです。.
プラットフォームは通常オペレーティングシステムを指しますが、ニンテンドーゲームボーイなどのデバイスにも適用できます。.
例としてゲームボーイを使用して、それはカートリッジからそのソフトウェアを得ます。これらのカートリッジには実行するコードが含まれています ネイティブに ゲームボーイで.
エミュレータ あるプラットフォーム用に設計されたソフトウェアを別のプラットフォーム上で実行できるようにする層です。たとえば、ゲームボーイのカートリッジの画像を実行して、ゲームボーイのゲームをコンピュータや携帯電話でも実行できるエミュレータがあります。.
A 互換性レイヤー エミュレータのようなものです。 64ビットコンピュータとオペレーティングシステムが主流になったとき、それらは既存の32ビットテクノロジと互換性がある必要がありました。 64ビットアーキテクチャと32ビットアーキテクチャは大きく異なるため、64ビットマシンで32ビットソフトウェアを実行するには、互換性レイヤが必要になることがよくあります。 Microsoft Windowsの64ビット版では、32ビットプログラムが新しい64ビットシステムで動作するように、互換性レイヤを作成する必要がありました。これがいくつかのプログラムがしばしばという名前のフォルダにインストールされる理由です。
プログラムファイル(x86)
, どこでx86
「32ビット」を意味します.互換性レイヤは、エミュレータよりもネイティブシステムと親密になりがちです。 VirtualBoxエミュレートする オペレーティングシステム用のハードウェア*、およびそれがエミュレートするシステムは、ホストシステムと直接対話することはあまりありません。 WoW64は 互換性レイヤー つまり、32ビットプログラムを64ビットWindows上でより統合された方法で実行できます。 WoW64はプログラムを作るのを助けます 互換性のある のではなくエミュレート 隔離された環境でそれらを.
A 翻訳ライブラリー 互換性レイヤのコンポーネントです。バイナリコードが非ネイティブで実行されているときはいつでも、翻訳ライブラリは、外部の非ネイティブコールをシステムが理解できるネイティブコールにリダイレクトするのに役立ちます。オリジナルのTI-83用に書かれたアセンブリプログラムは、新しいTI-83/84 Plus計算機と互換性がないかもしれません。なぜなら、TI-83のアーキテクチャーで意味のある呼び出しはTI-83/84 +ではもはや有効でないからです。翻訳ライブラリ(おそらくMirageOSのようなシェルに含まれています)は、TI-83の呼び出しがTI-83/84 +計算機の新しい更新された場所に行くことを保証します。.
プラットフォームに依存しないコード ある言語で書かれている 解釈済み 通常ネイティブに動作するものによって。たとえば、PHPは、すでにコンパイル済みのインストール済みのPHPバイナリによって解釈および実行されるプログラミング言語です。 ネイティブに Windows、Mac、およびUnixベースのオペレーティングシステム用。 Webスクリプト作成者が作成するPHPコードはプラットフォームに依存しないため、PHPがそれらのオペレーティングシステム用にインストールされている限り、複数のオペレーティングシステム上で機能することができます。.
説明に追加するものがありますか?コメントの中で消してください。他の技術に精通したStack Exchangeユーザーからの回答をもっと読みたいですか?こちらのディスカッションスレッドをチェックしてください。.