めんどくさがりダイアリー

へっぽこプログラマの備忘録

仮想マシンについてまとめ

仮想マシンとは?

最近vmwareを使ってWindowsPC上でLinuxを立ち上げている
新しくPCを買わずに別のOSが使えるのでとても便利!
しかし、なぜ別のOSが起動できるのかなど仮想環境の仕組みは
全然分かっていなかったのでこれを機に調べてまとめておこうと思います

「ホストOS型」と「ハイパーバイザー型」

いろいろ調べてみるとどうやら仮想化にも2つの方式があるらしい

  • ホストOS型
    1つの物理的なPC上に仮想マシンを立ち上げる
    例えば、winPC上にLinuxPCを立ち上げる
    物理マシン上のOSはホストOS、仮想マシン上のOSはゲストOSと言われるらしい
    ホストOSが落ちると、ゲストOSも落ちる

  • ハイパーバイザー型
    OSと物理マシンの間をハイパーバイザが取り持つ
    各OSがホストOSを介さずに直接、物理HWと通信できるので
    ホストOS型より処理速度は速い
    起動されている各OSは独立しているため、連鎖してOSが落ちることはない

「完全仮想化」と「準仮想化」

さらに走らせるOSも2通りあるみたい

  • 完全仮想化
    OSのカーネルをそのまま動作させる
    クロス開発ではこっちの方がポーティングするときにも
    ある程度は安心できそう

  • 準仮想化
    仮想マシン用に最適化したOSカーネルを動作させる
    完全仮想化に比べ、オーバーヘッドなどが減少するため実行速度は向上するらしい


改めて考えてみると、HWの処理をSWで再現するってすごいと思った



参考にさせて頂いたページ
「仮想化入門」
"http://www.plathome.co.jp/solution/virtualserver/introduction/02.html"
「エンジニアなら知っておきたい仮想マシンのしくみ」
"http://gihyo.jp/dev/serial/01/vm_work/0001?page=2"