[Virtual] Virtualization

虛擬化系統早年是用在大型伺服器上,公司為了節省成本,將許多不常用的小型的Server OS裝在同一個實體伺服器裡,大量的節省成本。

如今要裝在laptop or netbook上,其實它的架構是很類似的

  • VMM (Virtual Machine Monitor)
VMM是架在原始的Hardware與OS之間的軟體程式,對於Harware來講,VMM提供了原本OS對硬體的控制,所以VMM必須有所有的硬體驅動程式。而對於OS方面,VMM必須提供虛擬的Hardware,包括CPU、記憶體、硬碟與IO,並且讓OS使用這些虛擬的Hardware系統,而VMM還要控制這些OS對於實體硬體的使用時間和大小。

看起來很完美,但是裡面藏了一個大問題,就是權限問題,我們把CPU權限分為四種,ring 0~ ring 3,ring 0權限最大,本來OS的權限為ring 0,但現再多了一個VMM,因此必須要把OS的權限提高,將ring 0的權限讓給VMM,因此VMM就必須模擬出ring 0的指令,尤其是GDT、IDT、LDT、TSS指令,會消耗掉10%~30%的CPU資源,因此降權的方法則會損耗許多的資源。

此問題可以用Hardware來解決,Intel在這方面有提供Virtualization Technology,簡稱VT,可參考Intel Virtualization Technology:

Comments

Popular posts from this blog

[Linux] UVC Camera

UPnP Device Implementations

[UPnP] UPnP Implementers Corporation & UPnP Forum