システムイメージ

コンピューティングにおけるシステムイメージ（英語:system image）は何らかの形で蓄えられたコンピュータまたはソフトウェアのシステムの状態である。格納形式は通常ファイルである。システムを停止させ、後でまったく同じ状態に回復するためにシステムイメージを使うことがある(もしくは捨てる)。システムイメージはバックアップのために使用されることもある。

一般的に、2タイプのシステムイメージが存在する。
コンピュータシステム全体のイメージ。
特定のプログラムなどのシステムのある部分のイメージ。

タイプ1のイメージは通常、他の場所のファイルにコンピュータの大容量記憶装置の内容をコピーすることによって作られ、ディスクイメージと呼ぶことのほうが多い。プログラムはしばしばディスクドライブ仮想化ソフトである。しかし、ディスククローンプログラムでは多くのシステムで完全なシステムイメージは作ることができない。これは、いくらかの情報がディスクの外で(例えば不揮発性のメモリーで)保持されるためである。

タイプ2のイメージはしばしば永続性と関連した専用の目的を持っている。一例としてはデータベース管理システム (DBMS) がある。ほとんどのDBMSは、閉じられる前に、データベースそのものかデータベースの状態をファイルに蓄えることができる。DBMSは、データベースの情報そっくりそのままをもって後で再スタートし、ソフトウェアが一度も止まったことがなかったかのように進行することができる。別の例はたくさんのオペレーティングシステムのハイバネーション機能である。ここで、すべてのRAMの状態がディスクに蓄えられ、コンピュータは省エネルギーモードに入り、後にメモリに読み込んで状態を復元する。

エミュレートされているシステムのイメージを保存するために、エミュレータによってはこの機能を提供する。。

あるプログラムのシステムイメージを取るために、いくつかのプログラミング言語はコマンドを提供している。これはLISP、Smalltalk、Forthの標準機能であり、他の言語でも同様の機能を持つものもある。これらの言語による開発は多くの他のプログラミング言語による開発とまったく違うことが多い。例えば、LISPを使用するとき、プログラマーは、read eval print loop（REPL）を使って、LISPの処理系の実行の中にパッケージまたは他のコードをロードすることができる。プログラマーは、そのプリコンパイルされていて、場合によってはカスタマイズされたコードを含んだ、その時のシステムイメージをダンプすることができる。このイメージは実行形式であることが多く、他のマシンの上で動作可能である。この方法はLISPまたはSmalltalkによって記述されたプログラムでよく使われる。

その目的は違うけれども、システムイメージはコアダンプに構造がよく類似している。

システムソフトウェア