抽象化レイヤー
抽象化レイヤー(ちゅうしょうかレイヤー、または抽象化層)は、高レベルのリクエストを、そのリクエストを実行するために必要な低レベルのコマンドに変換するメカニズムである。また、ある特定の機能の詳細な実装を隠す手段である。抽象化レイヤーを用いたソフトウェアモデルで有名なものとしては、コンピュータ・ネットワーク・プロトコルのOSI参照モデルや、OpenGLのグラフィック描画ライブラリ、あるいはUNIXで生まれてMS-DOSやLinuxなど最近のオペレーティングシステムのほとんどが採用しているバイトストリーム入出力モデルなどがある。
UNIXでは、ほぼすべての入出力を、装置から読み込んだり装置に書き込んだりするバイトの連なりとみなす。装置の独立性を達成するために、ファイルI/O、ソケットI/O、端末I/Oなどでこのバイトの連なりモデルが使われている。アプリケーションが装置に対して読み書きを行う場合、まずその装置をオープンする機能を呼び出す。装置は、端末などの実在する装置の場合もあれば、ネットワークポートやファイルシステム内のファイルといった仮想的な装置の場合もある。オペレーティングシステムが装置の物理的な特性を隠蔽し、抽象的なインタフェースを代わりに提供することにより、プログラマは装置を意識せずにバイト列を読み書きするだけでよくなる。個々の装置の読み書きに必要な変換処理は、オペレーティングシステムが行う。
OpenGLのようなグラフィックライブラリのほとんどは、抽象化されたグラフィック装置をインタフェースとして提供している。プログラマが書いたコマンドは、ライブラリによって特定の装置に図形を描く専用コマンドに翻訳される。