只有一顆 CPU,同時執行多個作業系統, 而讓每一個作業系統以為他使用到全部CPU資源,然而這是 CPU 虛擬化得來的結果。(類似Multi-thread, 每個thread以為自己是CPU唯一的使用者,然而這是OS 進行排程scheduling的結果 ,使得每一個 thread 感覺同時執行中)\
實現VM的軟體稱之VMM (Virtual Machine Monitor),它伴演一個Virtual Machine Manager 的角色。它是虛擬化技術的實踐者,對Guest OS 作出一個抽象化(虛擬化)的架構,使得Guest OS 看不到真正的硬體,只看得到VMM,而把CPU、Memory、I/O全部抽象化。
虛擬化CPU:
- 讓每一個Guest OS 以為只有一個CPU, 並且完全擁有系統所有資源。 這須要存在一個Virtual Machine Monitor (Hypervisor) 來實現,讓 Guest OS 跑Hypervisor上。所有 Guest OS 產生的Exception 都送到Hypervisor上來處理。
ARM Virtualization Extension
- From ARM Cortex-A15 and beyond, ARM architectures are including virtualization extension.
- In CPU virtualization extension, ARM adds a new mode and a new Privilege Level. It calls “Hyp mode” which is running on Non-Secure Privilege Level 2.
虛擬化Memory:
- 讓每一個Guest OS 以為只有一塊Memory,Guest OS 看不到實際Memory,Guest OS 看到的硬體乃由VMM 所模擬出來的抽象化Memory。
- In Memory virtualization extension, ARM adds “Intermediate Physical Address”, let Guest OS cannot access physical address directly.
虛擬化I/O
- Guest OS 碰不到實際硬體,Guest OS 看到的硬體乃由VMM 所模擬出來的抽象化硬體架構。
- VMM 要實作一個Virtual Device給Guest OS。VM自己本身處理實際硬體包含中斷訊號,而產生Virtual IRQ給Guest OS。
- In I/O virtualization extension, ARM adds “Virtual Generic Interrupt Controller” interface to deliver interrupt in more faster way.
References:
沒有留言 :
張貼留言