1. 程式人生 > >3——虛擬機器體驗之VirtualBox篇——效能強大的經典架構

3——虛擬機器體驗之VirtualBox篇——效能強大的經典架構

  前兩篇體驗了QEMU和經過KVM加速的QEMU,並體驗了第三方虛擬機器管理工具virt-manager,讓我們見識了開源社群的強大和開源虛擬機器軟體的高質量和高效能。這一篇,我來剖析一下VirtualBox。VirtualBox號稱是目前開源界最強大的虛擬機器產品,在Linux平臺上,基本上都被大家選擇為首選的虛擬機器軟體。VirtualBox的強大不是蓋的,畢竟其後臺是超有錢的Oracle公司。VirtualBox的任性也不是蓋的,它硬是沒有使用我前文所述的那些qemu、kvm、libvirt等被各個虛擬機器使用的開源元件,它的前端、後端以及核心加速模組都是自己開發的,唯有遠端桌面所需要的VNC大約使用了libvncserver。

  我在標題中說到VirutalBox是使用的經典架構。所謂經典,主要體現在以下幾個方面:

  1.虛擬機器及虛擬機器中的系統(Guest System)仍運行於主作業系統(Host System)之上,只是通過主作業系統的核心模組進行加速;

  2.Unix系統中Front-End模式的經典架構,在VirtualBox中,VirtualBox的圖形介面只不過是命令列介面的虛擬機器軟體VBoxManage的圖形包裝而已,同時,它還提供VBoxSDL、VBoxHeadless等命令列工具。比如VBoxHeadless就可以執行一個不顯示虛擬機器桌面的虛擬機器,如果要顯示桌面,可以執行一個遠端桌面連線它。前後端分離有一個好處,就是對於桌面使用者,可以使用前端的圖形介面簡化操作,而對於企業級使用者,可以使用命令列工具構建自動化指令碼,甚至在系統啟動時自動執行虛擬機器。

  我並不是一開始就喜歡上VirtualBox的,一點小小的插曲差點就讓我錯過了這麼好的虛擬機器軟體。本來我剛開始看到在各個Linux論壇都將VirtualBox放到首位,而不是在新聞中鋪天蓋地的KVM、Xen,我就覺得VirutalBox可能有點不夠專業,再加上第一次使用VirtualBox時,發現它不能完美轉發Ctrl+Alt+Fx(x=1~12),發現它的有些配置不能完全在圖形介面中設定,需要手動更改配置檔案,然後我就放棄了。直到我掌握的正確的折騰Linux的方法論,看完了它長達369頁的使用者手冊,我才真正瞭解了它的強大,並深深愛上了它。

  首先,在Ubuntu中安裝VirutalBox是非常容易的,只需要一個 sudo apt-get install virtualbox 即可。

  安裝完VirtualBox後,可以考察一下它所遵守的我之前提到的“經典架構”,命令和執行結果如下圖:

  lsmod 命令可以看到VirtualBox安裝後,在主作業系統中安裝了好幾個核心模組,用來對虛擬機器進行加速。至於使用核心模組對虛擬機器加速的圖片我這裡就不再貼了,請大家參考我的上一篇。通過 dpkg -L 命令可以考察VirtualBox提供了哪些命令列工具。最後,通過 dpkg -S 命令可以看到,VirtualBox這個可執行程式其實是屬於 virtualbox-qt 軟體包的,它只是一個圖形介面的封裝。

  啟動VirtualBox,新建虛擬機器和安裝作業系統的過程我就不多說了,圖形介面很強大,一步一步執行準沒錯。安裝完WinXP後,執行效果如下圖:

  從該圖中可以看出,WinXP系統認出的CPU是準確的Intel Core i7-4770K,雖然我只給它分配了兩個核心。但是顯示卡不能準確識別。之所以是這樣,是因為WinXP系統中沒有相應的驅動,所以,需要安裝VirtualBox的客戶系統增強工具。在選單欄選擇安裝增強功能,如下圖:

  然後VirtualBox就會給WinXP安裝一個虛擬光碟,雙擊該光碟,就可以在WinXP系統中安裝客戶系統增強工具,如下圖:

  客戶系統增強工具是安裝在Guest System中的,可以認為客戶系統增強工具主要是包含了客戶作業系統中所需要驅動,因為沒有這些驅動,客戶作業系統可能無法認識那些虛擬出來的硬體,比如虛擬顯示卡什麼的。當然,客戶系統增強工具的功能遠遠不止這些,比如顯示卡3D加速啊、主作業系統和客戶作業系統共享資料夾啊什麼的,還有一個最牛B的,那就是讓客戶作業系統進入無縫模式。比如安裝完使用者增強工具後,可以識別出顯示卡型別,並且有不同的解析度選項,如下圖:

  按Host+L鍵,可以鍵入無縫模式,如下圖,可以看到在Ubuntu系統中,Ubuntu風格的視窗和WinXP風格的視窗共存:

  再玩大一點,使用IE瀏覽器訪問部落格園,如下圖:

  由此可見,在Linux系統中使用Windows的軟體進行辦公不再是夢,什麼網銀、什麼QQ,一樣毫無障礙。再按Host+L鍵,虛擬機器會回到視窗模式。

  VirtualBox功能非常強大,單憑我這一篇博文是不可能學會的。好在是我這一個系列一直都是秉承“授人以魚不如授人以漁”的原則,一直都是指導折騰Linux系統的方法論,並貼圖讓沒有親自動手機會的人也對Linux系統有一個直觀的感受,也一直指出從哪裡可以找到相應的學習資料。用 dpkg -L 命令,就可以找出我前面提到的VirtualBox自帶的長達369頁的文件,使用Ubuntu自帶的evince閱讀器閱讀之,如下圖:

  至於我前面說的VirtualBox這不能那不能什麼的,完全都是我自己不切實際的瞎說,等你看完它的文件,你就會發現它沒有什麼是不能的。就VirtualBox在我機器上的執行效果看,流暢度要超過前面的QEMU+KVM組合,圖形效能也要更加強大。它的文件中還有更多更高階的玩法,仔細閱讀吧,精通命令列和配置檔案不是夢,而且VirtualBox並不僅僅適用於桌面使用者,對於企業級的應用,它也是可以的。

(京山遊俠於2015-03-04釋出於部落格園,轉載請註明出處。)