仮想機械
1979年 IBM System/38は、TIMI(Technology Independent Machine Interface、技術に依存しないマシンインターフェイス)を採用した。TIMIは、メインフレームで採用されたマイクロコードによる互換性確保を更に進めたもので、主に水平型レベル・マイクロコードにより実現され、ハードウェア・アーキテクチャ(CPU命令セット等)とプログラムを分離している。プログラムの配布は中間コードであるバイトコードで行われ、インストール時にハードウェアの命令セットに展開される。このためソースプログラムを配布すること無く、実行時の性能を犠牲にすることもなく、別のアーキテクチャのハードウェアへの移行も容易である。実際、CPUアーキテクチャの移行(独自CISC→POWER)も容易に行えたとされる。
TIMIはSystem/38後継のAS/400、iSeries、System i、Power Systems i Edition に、現在でも使用されている。また現在はLPARなどと併用できる(後述のPowerVMを参照)。
各社の商用ミッドレンジコンピュータ(オフィスコンピュータ、ミニコンピュータ)では、TIMIと同等の機能を持ったシリーズは、過去も現在も存在しない。
UnixやLinux、Windows上で動作する仮想マシンには、VMwareやXen、Oracle VM(ベースはXen)、Hyper-Vなどがある。物理的資源を区分けして特定のワークロードがシステム全体を独占させない機構(仮想マシンモニタ)を持つ。
一台のコンピュータを複数のコンピュータとして使うことができる。オペレーティングシステムの変更なしに複数のゲストオペレーティングシステムを稼働できる。稼働させる複数のゲストオペレーティングシステムは、全く別の種類のオペレーティングシステムであることも可能である。
元々仮想マシンモニタはメインフレームにおいてその資源を各ワークロードの負荷に応じて動的に分割し、システム全体の利用効率を上げるために用いられた。計算機が高性能化した現在では、小規模なWebホスティングのような処理であっても、それらを仮想マシンモニタを用いて並列に実行することが行われている。
OSの機能による各種リソースの仮想化には、仮想記憶やマルチタスク、マルチユーザー、タイムシェアリングなどがある。
主記憶装置の仮想化である仮想記憶は、商用では1961年のバロース B5000で登場し、1970年のIBM System/370で広く普及した。
マルチタスク(アプリケーションによるマルチプログラミングではなく、OSの機能によるマルチタスク)は商用では、OS/360のバリエーションのひとつであるMVTと、後継のMVSで登場し、広く普及した。入出力待ちなどにCPUが他の処理を行えるため、処理の応答時間短縮と全体のスループット向上がもたらされた。
なお、メインフレームにおけるこれらの「マルチタスク」は、単に複数のプログラムが同時に動かせるというだけではなく、複数の独立したアドレス空間(リージョン)を作成し、ハードウェアの機能も使用して完全に分離し、同時稼働するプログラム同士は直接見えない(バグや悪意あるプログラムでも相互に干渉できない)ものである。