關(guān)于“虛擬化”(Intel VT和AMD SVM)的一些認(rèn)識(shí)
一、前言
前幾天,我把進(jìn)入到BIOS中隨便翻了一下,隨手關(guān)掉了一個(gè)不了解的功能,再重啟到系統(tǒng)(黑蘋果)中,發(fā)現(xiàn)一些軟件不能正常運(yùn)行了,主要包括虛擬機(jī)軟件(VMware、ParaDesktop)和一些用于開發(fā)的環(huán)境搭建的軟件(XAMPP,Docker等等),然而除了這些之外,其他的軟件都能正常運(yùn)行,于是我開始好奇其中的原理是什么。于是上網(wǎng)一查,才知道我關(guān)掉功能的原來是“虛擬化”!因?yàn)槠綍r(shí)要用到Docker,所以好奇的查了一下相關(guān)資料。

二、虛擬化是什么
虛擬化,就是把一臺(tái)計(jì)算機(jī)模擬成多臺(tái)邏輯計(jì)算機(jī),在這些邏輯計(jì)算機(jī)上同時(shí)運(yùn)行不同的程序,而相互之間不發(fā)生干擾。
通俗的說,就是提供一個(gè)運(yùn)行環(huán)境,用現(xiàn)有的軟件和硬件,模擬出一套“虛擬層”硬件,在這個(gè)虛擬的硬件上再去運(yùn)行軟件。
因此,平時(shí)我們常用的各種虛擬機(jī),其實(shí)都是基于虛擬化這個(gè)功能的,換言之,如果沒有虛擬化功能,也就不存在那么多虛擬機(jī)軟件了。
傳統(tǒng)虛擬機(jī)的結(jié)構(gòu)圖:

Docker的結(jié)構(gòu)圖:

三、常見的使用虛擬化功能的軟件
虛擬機(jī)肯定是,Docker雖然不算虛擬機(jī),但也離不開虛擬化。可是,為什么當(dāng)我關(guān)掉虛擬化時(shí),XAMPP也不能用了呢?
查閱資料發(fā)現(xiàn):
Mac版的XAMPP,實(shí)質(zhì)上是虛擬機(jī)虛擬出了一個(gè)Linux系統(tǒng)!
(怪不得Mac版要啟動(dòng)一分鐘,而Windows和Linux版瞬間就能啟動(dòng)服務(wù)......)
而其他用不到虛擬化技術(shù)的軟件(各種日常軟件、IDE等等)自然不受影響了。
四、Intel和AMD自家的虛擬化技術(shù)
作為全球PC處理器最大的出貨商,Intel和AMD的虛擬化技術(shù)并不相同,我目前并沒有能力,從底層去了解,只能說一些淺顯的認(rèn)識(shí)。
Intel的虛擬化技術(shù)稱為Intel-VT(Virtual Technology),而AMD的叫做AMD-V(AMD Virtualization,AMD主板的BIOS中稱為SVM)。
主流的虛擬化軟件產(chǎn)品都能支持兩家的技術(shù),然而,蘋果的產(chǎn)品就要特殊說明了,由于Apple的的PC沒有用過AMD的CPU,因此MacOS是不支持AMD-V的。
這一點(diǎn)為神秘而黑蘋果方案提供了理論基礎(chǔ):Intel平臺(tái)的CPU,安裝MacOS自然不是特別困難;而AMD的CPU就沒那么幸運(yùn)了,即使有了辦法使系統(tǒng)在AMD平臺(tái)上啟動(dòng),可由于指令集不同,不能實(shí)現(xiàn)全部功能,其中最重要的功能缺失,恐怕就是 虛擬化 了。
因此AMD平臺(tái)即使安裝了黑蘋果,也是不能用于開發(fā)的,因?yàn)闆]有虛擬化功能,根本不能搭建服務(wù)。
五、總結(jié)
幾天前的這次偶然嘗試,使我無意間對虛擬化有了簡單了解。
我還了解到,使用虛擬化功能,我們可以在一臺(tái)物理機(jī)上搭建一個(gè)集群,后來又知道了,大名鼎鼎的騰訊云、百度云等等云計(jì)算平臺(tái),都是用的虛擬化技術(shù),我們鎖購買的小型服務(wù)器,實(shí)際上就是一個(gè)一個(gè)的虛擬機(jī)。