零,前言
前幾天,我把進入到BIOS中隨便翻了一下,隨手關掉了一個不瞭解的功能,再重啟到系統(黑蘋果)中,發現一些軟件不能正常運行了,主要包括虛擬機軟件(VMware、ParaDesktop)和一些用於開發的環境搭建的軟件(XAMPP,Docker等等),然而除了這些之外,其他的軟件都能正常運行,於是我開始好奇其中的原理是什麼。於是上網一查,才知道我關掉功能的原來是“虛擬化”!因為平時要用到Docker,所以好奇的查了一下相關資料。
![關於“虛擬化”(Intel VT和AMD SVM)的一些認識](http://p2.ttnews.xyz/loading.gif)
一、虛擬化是什麼
虛擬化,就是把一臺計算機模擬成多臺邏輯計算機,在這些邏輯計算機上同時運行不同的程序,而相互之間不發生干擾。
通俗的說,就是提供一個運行環境,用現有的軟件和硬件,模擬出一套“虛擬層”硬件,在這個虛擬的硬件上再去運行軟件。
因此,平時我們常用的各種虛擬機,其實都是基於虛擬化這個功能的,換言之,如果沒有虛擬化功能,也就不存在那麼多虛擬機軟件了。
傳統虛擬機的結構圖:
![關於“虛擬化”(Intel VT和AMD SVM)的一些認識](http://p2.ttnews.xyz/loading.gif)
Docker的結構圖:
二、常見的使用虛擬化功能的軟件
虛擬機肯定是,Docker雖然不算虛擬機,但也離不開虛擬化。可是,為什麼當我關掉虛擬化時,XAMPP也不能用了呢?
查閱資料發現:
Mac版的XAMPP,實質上是虛擬機虛擬出了一個Linux系統!
(怪不得Mac版要啟動一分鐘,而Windows和Linux版瞬間就能啟動服務......)
而其他用不到虛擬化技術的軟件(各種日常軟件、IDE等等)自然不受影響了。
三、Intel和AMD自家的虛擬化技術
作為全球PC處理器最大的出貨商,Intel和AMD的虛擬化技術並不相同,我目前並沒有能力,從底層去了解,只能說一些淺顯的認識。
Intel的虛擬化技術稱為Intel-VT(Virtual Technology),而AMD的叫做AMD-V(AMD Virtualization,AMD主板的BIOS中稱為SVM)。
主流的虛擬化軟件產品都能支持兩家的技術,然而,蘋果的產品就要特殊說明了,由於Apple的的PC沒有用過AMD的CPU,因此MacOS是不支持AMD-V的。
這一點為神秘而黑蘋果方案提供了理論基礎:Intel平臺的CPU,安裝MacOS自然不是特別困難;而AMD的CPU就沒那麼幸運了,即使有了辦法使系統在AMD平臺上啟動,可由於指令集不同,不能實現全部功能,其中最重要的功能缺失,恐怕就是 虛擬化 了。
因此AMD平臺即使安裝了黑蘋果,也是不能用於開發的,因為沒有虛擬化功能,根本不能搭建服務。
四、總結
幾天前的這次偶然嘗試,使我無意間對虛擬化有了簡單瞭解。
我還了解到,使用虛擬化功能,我們可以在一臺物理機上搭建一個集群,後來又知道了,大名鼎鼎的騰訊雲、百度雲等等雲計算平臺,都是用的虛擬化技術,我們鎖購買的小型服務器,實際上就是一個一個的虛擬機。
閱讀更多 sandag 的文章