コンピューティングにおいて、ネイティブソフトウェアまたはデータ形式は、特定のオペレーティングシステムで実行するように設計されたものです。より技術的な意味では、ネイティブコードとは、特定のプロセッサ専用に記述されたコードです。[1]対照的に、クロスプラットフォームソフトウェアは、複数のオペレーティングシステムやコンピュータアーキテクチャで実行できます。
たとえば、ゲームボーイはカートリッジを通じてソフトウェアを受け取ります。カートリッジにはゲームボーイでネイティブに実行されるコードが含まれています。 [2]このコードを別のプロセッサで実行する唯一の方法は、実際のゲームボーイをシミュレートするエミュレータを使用することです。 [3]これには通常、速度が犠牲になります。[4]
アプリケーション
コンピュータ上でネイティブに実行されるということは、外部レイヤーなしで実行され、必要なソフトウェア レイヤーが少なくなることを意味します。たとえば、Microsoft Windowsでは、ネイティブ APIはWindows NTカーネルに固有のアプリケーション プログラミング インターフェイスであり、これを使用して、より汎用的なWindows APIでは直接アクセスできない一部のカーネル機能にアクセスできます。
オペレーティングシステム
仮想化が存在しない、または最低レベルの仮想化を示すために使用されます。さまざまなレベルの仮想化が行われる場合、実際にハードウェアを直接制御する最低レベルのオペレーティング システムは、たとえば「ネイティブ VM」と呼ばれます。
マシンコード
マシンコード はネイティブコードとも呼ばれ、機械語で書かれたプログラムです。 マシンコードは通常、コンピューターの最も低いレベルのコードと考えられており、その最低レベルの形式ではバイナリ(0と1)で書かれていますが、扱いやすくするために16進数や8進数で書かれることもよくあります。 [5]これらの命令セットはコンピューターによって解釈されます。これにより、翻訳の必要がなくなります。 マシンコードは厳密に数値であり、この複雑な性質のため、通常、プログラマーがプログラムするものではありません。[6]マシンコードはプロセッサにできるだけ近いものでもあるため、この言語を使用すると、各プロセッサのマシンコードが異なる場合があるため、そのプロセッサ専用にプログラミングすることになります。[7]通常、プログラマーはC、C++、Pascalなどの高級言語(または直接コンパイルされる他の言語)でコーディングし、それがアセンブリコードに変換され、アセンブリコードがマシンコードに変換されます(またはほとんどの場合、コンパイラーが直接マシンコードを生成します)。CPUはそれぞれ異なるため、そのCPUで動作させるにはプログラムを再コンパイルまたは書き直す必要がある。[8]
データ
データに適用されるネイティブデータ形式または通信プロトコルは、最大限の一貫性と最小限の追加コンポーネントで、 特定のコンピューター ハードウェアまたはソフトウェアによってサポートされるものです。
たとえば、EGAおよびVGAビデオ アダプタは、コード ページ 437 をネイティブでサポートします。これにより、他のコード ページのサポートが妨げられることはありませんが、フォントをアップロードするか、グラフィック モードを使用する必要があります。
クラウドコンピューティング
クラウド コンピューティングにおける「クラウド ネイティブ」とは、クラウド コンピューティング環境で最新のアプリケーションを構築、展開、管理するソフトウェア アプローチを指し、クラウドベースのプラットフォームで実行するように最適化されたソフトウェアを指します。クラウド ネイティブ アプリケーションは通常、個別のモジュール式マイクロサービスで構成されます。
参考文献
- ^ 「ネイティブ コードとは? - WhatIs.com からの定義」。SearchAppArchitecture。2019年11 月 22 日閲覧。
- ^ 「Nintendo Game Boy - ゲームコンソール - コンピューティングの歴史」www.computinghistory.org.uk . 2019年11月22日閲覧。
- ^ Pot, Justin. 「ビデオゲームエミュレーターはなぜそれほど重要なのか?(歴史を保存するため)」How-To Geek 。 2019年11月22日閲覧。
- ^ 「エミュレーションはどのように機能し、なぜこんなに遅いのか?」。MakeUseOf 。 2019年11月22日閲覧。
- ^ 「マシンコードとは何か?定義と例」。マーケットビジネスニュース。 2019年11月23日閲覧。
- ^ 「マシンコードとは何か?定義と例」。マーケットビジネスニュース。 2019年11月23日閲覧。
- ^ Beal, Vangie. 「機械言語とは何か? Webopedia の定義」www.webopedia.com 。 2019 年 11 月 23 日閲覧。
- ^ Manzoor, Amir ( 2012-03-19). ビジネスにおける情報技術。Amir Manzoor。ISBN 978-1-4699-9188-7。
