虛擬化技術在 x86 系統中的發展歷程對目前的雲端計算架構有著深遠的影響。隨著虛擬化技術的成熟，雲端計算能夠有效地利用底層硬體資源，實現資源的動態分配與管理，並提供高度的可靠性和可擴展性。

### 影響與應用

1. **資源的隔離**：
   虛擬化技術通過將底層硬體抽象化，使多個虛擬機器（VM）可以在同一硬體上安全地運行。每個虛擬機器擁有獨立的操作系統與應用環境，這樣就能在不相互干擾的情況下，允許不同用戶或應用程序共享相同的硬體資源。例如，在雲端服務提供商（如 AWS、Azure 或 Google Cloud）中，不同的客戶可以在同一伺服器上創建虛擬機器，彼此之間的數據與操作完全隔離，這保障了數據安全和隱私。

2. **效能優化**：
   現代虛擬化技術（如 Intel VT-x 和 AMD-V）允許無需修改的客作業系統在虛擬環境中高效運行，這提升了虛擬機器的性能。透過虛擬化管理程序（VMM），雲端提供商能夠根據需求動態分配計算、存儲和網路資源，進行負載均衡，並最小化資源浪費。例如，在高峰時期，雲端提供商可以自動增加虛擬機器的數量，以應對流量的增加；而在需求減少的時候，則可以釋放未使用的資源以降低成本。

3. **便利性與靈活性**：
   藉由虛擬化，雲端計算為用戶提供了按需的計算資源，支持快速部署和擴展應用。用戶無需投入大量資源於物理硬體上，僅需透過雲端介面便可快速啟動虛擬機，運行應用。這種便利性允許企業快速應對市場變化，縮短了產品上市的時間。

### 具體案例

例如，企業可能會使用雲端服務來運行其網路應用程式。在這種情況下，雲端提供商可以根據流量負載自動增加或減少虛擬機器的數量，從而提供穩定的性能保障。而在這些虛擬機器之間，由於虛擬化技術的資源隔離特性，即使有一個虛擬機器遭到攻擊或出現故障，其他虛擬機器依然能夠穩定運行，確保整體應用的可靠性。

在總結上，虛擬化技術的進步不僅促進了雲端計算架構的發展，還解決了資源管理的許多挑戰，提升了運用效能，並在發展業務靈活性方面發揮了關鍵作用。
虛擬化技術在 x86 系統中的發展歷程如何影響目前的雲端計算架構？舉例說明虛擬化技術如何提供資源的隔離和效能優化。
**虛擬化技術**是指在 x86 的系統中，一個或以上的客作業系統（Guest Operating System，簡稱：Guest OS）在一個主作業系統（Host Operating System，簡稱：Host OS）下執行的一種技術。這種技術只要求對客作業系統有很少的修改或甚至根本沒有修改。x86 指令集架構起先並不滿足波佩克與戈德堡虛擬化需求（Popek and Goldberg virtualization requirements），這使得在 x86 處理器下對普通虛擬機器的操作變得十分複雜。在 2005 年，英特爾與 AMD 分別在它們的 x86 架構上解決了這個問題。

## 軟體技術

1999 年 2 月 8 日，VMware 展示了它的第一個 x86 虛擬化產品「VMware 虛擬平台」（VMware Virtual Platform），此產品建立在建立者早期在史丹福大學的研究基礎之上。VMware 在 1998 年 10 月提交了對這一技術的專利申請，並於 2002 年 5 月 28 日被授予美國專利第 6,397,242 號。VMware 與類似的 x86 虛擬化軟體必須使用十分複雜的技術來獲得並虛擬執行一些指令，這些技術被 IBM 的 IBM\_System/370 （頁面存檔備份，存於網際網路檔案館）以及摩托羅拉的 MC68020 等原生可虛擬化的架構遠遠超出。

Kevin Lawton 啟動了 Plex86 專案（原來叫作「freemware」）來建立套用於 x86 虛擬化的自由軟體。此專案已經改變了原有的目的，現在只支援 Linux 作為客作業系統；然而在這之前，Lawton 發表了一篇論文《使用虛擬化技術在一台 IA-32 PC 上同時執行多個作業系統》，作出了對 x86 架構虛擬化困難的分析以及提出了一些解決這些困難的技術。

2003 年，套用於 Linux 平台的 x86 虛擬化方案 Xen 誕生。2005 年，隨著 Intel 推出支援 x86 虛擬化技術的 CPU，Xen 亦加入全虛擬化模式。Xen 的全虛擬化模式允許在虛擬機器中執行 Windows 等非 Linux 系統。

微軟也提供了基於 Windows 的 x86 虛擬化產品：Microsoft Virtual PC 與 Microsoft Virtual Server，這兩個產品都基於微軟收購 Connectix 後獲得的技術。後來，微軟的 Microsoft Virtual PC 更名為 Hyper-V 並成為 Windows 的一個組件，亦曾推出 Windows XP Mode 以儘可能的解決 Windows 7 作業系統不支援某些老應用程式的問題。

開放原始碼的替代品也包括 KVM、QEMU 與 VirtualBox。

## 硬體支援

英特爾與 AMD 獨立地開發出了 x86 架構的虛擬化擴充。它們並不直接相容，但是能夠做到大部份的功能都相同。這兩個擴充都允許在虛擬的效能不出現明顯下降時執行一個虛擬機器檢視器，以執行未經過修改的客作業系統。

### 英特爾虛擬化技術

**英特爾虛擬化技術**（Intel Virtualization Technology）是由英特爾開發的一種虛擬化技術，利用 IVT 可以對在系統上的作業系統，通過虛擬機器檢視器（VMM，Virtual Machine Monitor）來虛擬一套硬體裝置，以供虛擬機器作業系統使用。

這些技術以往在 VMware 與 Virtual PC 上都通過軟體實現，而通過 IVT 的硬體支援可以加速此類軟體的進行。

英特爾在 32 位元與 64 位元 x86 架構下的虛擬化擴充被命名為「IVT」，有時候也用它的開發代號「Vanderpool」來稱呼它。32 位元 / 64 位元的 IVT 擴充叫作「VT-x」。英特爾同時為用於 IA-64（安騰 2）處理器的 IVT 發布了規格說明，此項 IVT 被稱為「VT-i」；在這之前，IA-64 的虛擬化技術的開發代號是「Silverdale」。

英特爾虛擬化技術是在 2005 年春季英特爾科技論壇時由官方發布的。部份型號的 Pentium 4/Pentium D/Core 2/Pentium Dual-Core/Celeron/Xeon 可用 VT-x。Intel Core i3/i5/i7/i9 可用 SLAT。

VT-x 不僅需要處理器的支援，也需要晶片組、BIOS 的支援。

在 Linux 中，支援虛擬化的英特爾處理器會在一個特別檔案 _/proc/cpuinfo_ 中有一個名為「vmx」的標誌。

Intel 還推出了「直接輸入 / 輸出虛擬化」（Virtualization for Directed I/O，VT-d）技術。這項技術提供了一種組態傳送給獨立虛擬機器的中斷與組態 I/O 記憶體單元的方式，以防止虛擬機器使用 DMA 來終止與真實硬體的隔離。
不過值得注意的是，該功能在 Core 系列以及 Xeon E3、Xeon D 系列中並不完整。

部份 Intel 網路卡支援 VT-c 技術。

### AMD 虛擬化

**AMD 虛擬化**（AMD Virtualization），縮寫為「AMD-V」，是 AMD 為 64 位元的 x86 架構提供的虛擬化擴充的名稱，但有時仍然會用「Pacifica」（AMD 開發這項擴充時的內部專案程式碼）來指代它。

AMD-V 在 AMD 的步進為「F」與「G」的 Athlon64 以及 Athlon64 X2 處理器，使用 Socket S1 的 Turion64 處理器、Turion64 X2 處理器、Phenom 處理器，以及全部更新的處理器上可用。現在的 AMD APU、AMD FX、AMD Athlon、AMD Ryzen、AMD Epyc 等 AMD 處理器絕大多數都支援 AMD SVM 技術。

在 Linux 中，支援虛擬化的 AMD 處理器會在一個特別檔案 _/proc/cpuinfo_ 中有一個名為「svm」的標誌。

AMD 為一項名為 AMD-V 的 IO 記憶體管理單元（IOMMU）發布過一份技術規範。這份技術規範提供了一種組態傳送給獨立虛擬機器的中斷與組態 I/O 記憶體單元的方式，以防止虛擬機器使用 DMA 來終止與真實硬體的隔離。IOMMU 在進階的作業系統（如缺席虛擬化，absent virtualization）與 AMD 的 Torrenza 架構中起到了重要的作用。

AMD 亦有 I/O 虛擬化的 IOMMU 技術。

## Windows Vista

起初 Windows Vista 的家用入門版與家用進階版在終端使用者授權合約中聲明，該系統不能夠在一台虛擬機器中安裝或執行，儘管在技術上並沒有障礙使得使用者無法這樣做。這一條款在 2008 年 1 月時被修改了。

## 參考文獻

## 相關條目

* 虛擬化
* 虛擬機器

## 外部連結

* Virtualization technologies from Intel （頁面存檔備份，存於網際網路檔案館）
* Intel VT（Virtualization Technolegy）技術
## 軟體技術

1999 年 2 月 8 日，VMware 展示了它的第一個 x86 虛擬化產品「VMware 虛擬平台」（VMware Virtual Platform），此產品建立在建立者早期在史丹福大學的研究基礎之上。VMware 在 1998 年 10 月提交了對這一技術的專利申請，並於 2002 年 5 月 28 日被授予美國專利第 6,397,242 號。VMware 與類似的 x86 虛擬化軟體必須使用十分複雜的技術來獲得並虛擬執行一些指令，這些技術被 IBM 的 IBM\_System/370 （頁面存檔備份，存於網際網路檔案館）以及摩托羅拉的 MC68020 等原生可虛擬化的架構遠遠超出。

Kevin Lawton 啟動了 Plex86 專案（原來叫作「freemware」）來建立套用於 x86 虛擬化的自由軟體。此專案已經改變了原有的目的，現在只支援 Linux 作為客作業系統；然而在這之前，Lawton 發表了一篇論文《使用虛擬化技術在一台 IA-32 PC 上同時執行多個作業系統》，作出了對 x86 架構虛擬化困難的分析以及提出了一些解決這些困難的技術。

2003 年，套用於 Linux 平台的 x86 虛擬化方案 Xen 誕生。2005 年，隨著 Intel 推出支援 x86 虛擬化技術的 CPU，Xen 亦加入全虛擬化模式。Xen 的全虛擬化模式允許在虛擬機器中執行 Windows 等非 Linux 系統。 **虛擬化技術**是指在 x86 的系統中，一個或以上的客作業系統（Guest Operating System，簡稱：Guest OS）在一個主作業系統（Host Operating System，簡稱：Host OS）下執行的一種技術。這種技術只要求對客作業系統有很少的修改或甚至根本沒有修改。x86 指令集架構起先並不滿足波佩克與戈德堡虛擬化需求（Popek and Goldberg virtualization requirements），這使得在 x86 處理器下對普通虛擬機器的操作變得十分複雜。在 2005 年，英特爾與 AMD 分別在它們的 x86 架構上解決了這個問題。 在計算機技術中，**虛擬化（技術）** 或**虛擬技術**（英語：Virtualization）是一種資源管理技術，是將電腦的各種實體資源（CPU、記憶體、磁碟空間、網路適配器等），予以抽象、轉換後呈現出來並可供分割、組合為一個或多個電腦組態環境。由此，打破實體結構間的不可切割的障礙，使使用者可以比原本的組態更好的方式來應用這些電腦硬體資源。這些資源的新虛擬部份是不受現有資源的架設方式，地域或物理組態所限制。一般所指的虛擬化資源包括計算能力和資料儲存。

## 定義

由於目前資訊科技領域的很多企業都曾在宣傳中將該企業的某種技術稱為**虛擬化技術**，這些技術涵蓋的範圍可以從 Java 虛擬機器技術到系統管理軟體，這就使得準確的界定虛擬技術變得困難。因此各種相關學術論文在談到虛擬技術時常常提到的便是如前面所提到的那個不嚴格的定義。

## 歷史

虛擬化技術起源於 20 世紀 60 年代末，美國 IBM 公司當時開發了一套被稱作虛擬機器監視器（**V**irtual **M**achine **M**onitor）的軟體，該軟體作為電腦硬體層上面的一層軟體抽象層，將電腦硬體虛擬分割成一個或多個虛擬機器，並提供多使用者對大型電腦的同時、互動存取。 **虛擬化技術**是指在 x86 的系統中，一個或以上的客作業系統（Guest Operating System，簡稱：Guest OS）在一個主作業系統（Host Operating System，簡稱：Host OS）下執行的一種技術。這種技術只要求對客作業系統有很少的修改或甚至根本沒有修改。x86 指令集架構起先並不滿足波佩克與戈德堡虛擬化需求（Popek and Goldberg virtualization requirements），這使得在 x86 處理器下對普通虛擬機器的操作變得十分複雜。在 2005 年，英特爾與 AMD 分別在它們的 x86 架構上解決了這個問題。