共有ライブラリ 【shared library】 シェアードライブラリ
概要
共有ライブラリ(shared library)とは、部品化されたプログラムの集合であるライブラリの一種で、複数のプログラムから共有・共用されるもの。OSやミドルウェア、プログラミング言語の実行環境(ランタイム)などの一部として提供されることが多い。ライブラリは関数やクラス、定数の定義など、外部から呼び出して利用できる部品化されたプログラムを集めたもので、共有ライブラリは互いに無関係な複数のプログラムに連結して利用することができるものを指す。多くのプログラムが共通して使う汎用的な機能などが実装されており、個々の開発者が同じ目的の機能を何度も重複して開発してしまう無駄を減らすことができる。
共有ライブラリという語は様々なプログラムに連結できる実行可能形式のプログラムを格納したファイル(WindowsのDLLなど)を指す場合と、メモリ上に一つだけ展開され、実行中の様々なプログラムから呼び出せるようになっているコードを指す場合がある。
前者のような意味で共有可能なプログラムファイルが実行時にメモリ上で必ずしも後者のように共有されるとは限らず、プログラムを起動するごとに複製がメモリにロードされるようになっている場合もある(後者の基準で言えば共有ライブラリではない)。
共有ライブラリはその性質上、WindowsのDLLファイルやUNIX系OSの.soファイルなど、プログラムの実行時に連結される動的ライブラリ(dynamic library)として提供される。実際、動的ライブラリの多くは共有ライブラリでもあるが、特定のプログラムとしか連結しない動的ライブラリも存在し得るため、共有・専用と動的・静的は必ずしも対応しない。
(2018.11.27更新)