仮想化
https://gyazo.com/f1080c47b64aa5f2b7850d4473d5ead4
コンピュータの仮想化技術は、下記の5つのレベルに分けて考えることができることが知られている
Instruction Set Architecture(ISA) Level CPUの命令セットを仮想化
例:32bit Windowsの命令を64bit Windowsでも動くようにする技術
Hardware Abstraction Layer(HAL) Level
I/Oデバイスやメモリなどの物理デバイスとOSの間を仮想化
Operating System(OS) Level
OSとアプリケーションの間を抽象化するための仮想化
例:Container
Library Level
ユーザーとライブラリ間を仮想化
例:Windowsのプログラムが呼び出すライブラリをMacのライブラリに読み替えて動かす技術
Application Level
一つのアプリケーションのみを仮想化
例:アプリケーションを外部のライブラリに依存せずに動かす技術