プラットフォーム (コンピューティング)
(プラットフォーム非依存 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/08/03 08:29 UTC 版)
![]() |
コンピュータにおけるプラットフォーム (英: platform) とは、主に、オペレーティングシステム (OS) やハードウェアといった基礎部分を指す。コンピューティングプラットフォーム (英: computing platform) と呼ばれることもある。
概要
一般的なコンピュータ・プログラム(アプリケーションソフトウェア)の実行ファイル(バイナリ)は、実行環境であるそれぞれのOSに依存し、例えばWindows、macOS、Linuxなどの各OS上でのみ動作する専用のバイナリとして構築(ビルド)される。また、特定のプロセッサ(CPUやGPU)向けのネイティブ機械語コードを生成するプログラミング言語で開発されたソフトウェアは、互換性のあるハードウェア上でしか動作しない。例えば、PowerPCプロセッサ用のLinux上では、PowerPCプロセッサ用のMac OS X向けあるいはx86/x64プロセッサ用のLinux向けAdobe Readerは動作しない。また、x86/x64プロセッサ用のWindows上では、ARMアーキテクチャのプロセッサ (ARM32/ARM64) 用にビルドされたWindowsネイティブアプリケーションは動作しない。ただし、ABIエミュレーションレイヤーを持つOSなど、異なるプロセッサ向けのバイナリを動作させることができる環境もある。
プラットフォーム非依存とクロスプラットフォーム
特定のOSやハードウェアに依存しないことをプラットフォーム非依存 (英: platform-independent) と言う。例えば、Javaは各プラットフォームにおいてJavaアプリケーションが動作する仮想のプラットフォームを実装することによって、プラットフォーム非依存を実現させている。ちょうど異なるプラットフォーム上に介在としてJavaプラットフォームという仮想化された共通プラットフォームがあり、共通プラットフォーム上でJavaアプリケーションが動作する。プロセッサ命令セットはJavaバイトコードおよびJava仮想マシンによって抽象化される。
またプラットフォームの差異をミドルウェアで吸収し、複数のプラットフォームで動作するように設計したソフトウェアをクロスプラットフォームと呼ぶ。
マイクロソフトの.NET FrameworkもJavaとよく似たアプリケーション開発・実行プラットフォームであり、プロセッサに依存しない共通中間言語を生成することができ、共通言語基盤の仕様に従った共通言語ランタイム上で動作する。.NET FrameworkはWindows専用であるが、のちにMonoや.NET CoreによってWindows以外のOSにも移植され、クロスプラットフォームとなった。
プログラムのソースコードを実行時に翻訳・解釈するスクリプト言語や動的プログラミング言語で書かれたソフトウェアもプラットフォーム非依存・クロスプラットフォームであることが多い。
OpenCLプラットフォーム
OpenCLではInstallable Client Driver (ICD) Loaderの仕組みによって、1つのシステム上に複数のベンダーによる実装すなわち複数のOpenCLドライバーが共存できるようになっている[1]。このOpenCL実装のことをプラットフォームと呼ぶ。各OpenCLプラットフォームは、OpenCL対応ハードウェアの抽象化であるOpenCLデバイスを複数持つことができる。
脚注
関連項目
プラットフォーム非依存
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/13 16:15 UTC 版)
詳細は「Java仮想マシン」を参照 プラットフォーム非依存とは、Javaプログラムが特定のハードウェアやオペレーティングシステムに依存せずに、あらゆる環境での共通動作を保証する概念である。”Write once, run anywhere”(一度プログラムを書いてしまえば、どのコンピューターでも動くよ)とされる。Javaのプラットフォーム非依存性は次のようにして実現されている。 Javaコンパイラは、Javaソースコードを、Javaバイトコードという中間表現にコンパイルする。Javaバイトコードは、Java仮想マシン用の実行コードである。Javaバイトコードは通常、Javaクラスファイルにまとめられる。 Java仮想マシンは、各プラットフォームの差異を吸収するクッション的なソフトウェアである。Java仮想マシンは、様々なコンピュータ環境対応バージョンが提供されており、各プラットフォームにJava実行環境の中核としてインストールされる。 Java仮想マシンは、任意のJavaクラスファイルをJavaクラスローダーで読み込み、そのJavaバイトコードを解釈実行する。インタプリタ式の解釈走行と、実行時コンパイラで解釈走行させるものがある。 Java初期のインタプリタ式で走行されるJavaプログラムの実行速度は遅かったが、実行時コンパイラ技術と動的再コンパイル技術 (dynamic recompilation) の導入によって実行速度問題はほぼ解決した。実行時コンパイラとは、一定のJavaバイトコードをまとめてネイティブコードにコンパイルして継続的に実行させる技術である。Java仮想マシンはメモリ境界とバッファオーバーフローのチェックを行いながらプログラムを走行させる。また、クラスロード時のバイトコード検証機能によって、あからさまなコード暴走や致命的エラーの頻発を事前抑止している。
※この「プラットフォーム非依存」の解説は、「Java」の解説の一部です。
「プラットフォーム非依存」を含む「Java」の記事については、「Java」の概要を参照ください。
- プラットフォーム非依存のページへのリンク