什麼是虛擬機?
這是終端用戶需要知道的所有關於虛擬機的信息,包括它的工作方式及其必要性。
虛擬機(VM)是一個模擬版的物理計算機,它在虛擬環境中模擬各種功能並分配資源。
簡言之,你可以在你當前的操作系統中運行另一個操作系統,就像運行媒體播放器或網路瀏覽器一樣。
你可以在 VM 中執行與裸機(例如你的筆記本電腦或個人電腦)相同的操作,例如連接到網路、下載軟體、更新操作系統等等。
當然,根據使用場景,VM 的體驗可能會與實體計算機有所不同。
讓我們來探索虛擬機,它們的應用場景,以及它們的工作原理。
虛擬機:起源
虛擬機是最重要的基於軟體的創新之一。它的起源可以追溯到 1966 年的 IBM CP-40 和 CP-67 虛擬機操作系統,那時候人們在研究和測試虛擬內存和資源的概念。
快進到我們發表此文的 2023 年,虛擬機已經無處不在,涵蓋從個人電腦,到大型企業,再到小型企業。每個人以某種或其他方式都在使用虛擬機。
考慮到所有這些,顯然,虛擬機非常有用。但是,它是如何工作的,我們具體用它來做什麼?
?
- 裸機 = 實體的物理電腦,例如你的 PC 或筆記本電腦
- 宿主操作系統 = 安裝在你實體電腦上的操作系統
- 客戶操作系統 = 在虛擬機內運行的操作系統
- 虛擬機(VM)= 是虛擬化應用的通用術語
虛擬機如何運作
理解虛擬化的概念會有助於你弄清楚虛擬機是如何運作的。
回顧我們在一篇文章中的描述:
「虛擬化為你提供了計算機硬體的抽象概念,以便你創建虛擬機(VM)、網路、存儲等。」
虛擬化允許用戶在虛擬環境中利用物理系統的資源。這使得一個進程可以單獨地使用資源,而不會影響物理計算機。
而虛擬機就是運用這一能力的過程,在此你會得到以虛擬磁碟、內存,及其他配置文件形式的虛擬資源,讓你能在其上運行操作系統。
你或許已經熟悉一些能幫助你創建這些虛擬機的 專為 Linux 的虛擬化軟體。
為了詳細展示虛擬機和物理計算機之間的技術差異,這裡提供一張圖幫助你理解:
我們為什麼需要使用虛擬機?
虛擬機已經成為一種多功能的概念,對於幾乎每一個小任務都十分實用,這也是你應該 在虛擬機中運行 Linux 的其中一個理由。
不僅對個人用戶有幫助,虛擬機在雲計算的領域中也起著重要的作用,而雲計算是構成互聯網必不可少的一部分。
下面是虛擬機能夠幫助你完成的一些任務:
- 軟體測試
- 操作系統測試
- 為臨時的網路瀏覽會話增強你的在線隱私
- 在不影響物理計算機的情況下進行網路安全研究
- 利用虛擬機作為伺服器,使同一硬體上可以託管更多的虛擬機,(從而讓硬體資源使用更加高效)
- 各種開發活動,擁有了更強大的遷移、複製等功能
- 利用虛擬機在雲中複製系統
因此,虛擬機的隔離能力使我們能採用它進行測試和開發,也使其成為伺服器可擴展性和靈活性的核心。
建議閱讀 ?
無論你是學生、專業人員,還是企業,你都會發現虛擬機在某個時間點會發揮出重要的作用。
虛擬機消耗系統資源嗎?
當你創建一個虛擬機在其中運行另一個操作系統時,你會為它分配一些系統資源,主要包括:
- 處理器:只有當在虛擬機中運行操作系統時才消耗
- 內存:只有當在虛擬機中運行操作系統時才消耗
- 磁碟空間:創建虛擬機時預留,無論虛擬機是否運行,都會佔據一定的空間。
有些人認為處理器和內存會一直被虛擬機佔用,這並不正確。它們只在虛擬機運行操作系統時才會被使用。
然而,無論虛擬機是否在運行,磁碟空間始終會被佔用。
使一切成為可能的虛擬化類型
如果你對能夠幫助創建虛擬機的虛擬化概念感興趣,那麼我將列舉並簡要解釋所有的不同類型。
管理程序 管理著硬體,並將系統資源從虛擬環境中隔離出來。它在技術上被標記為 「 虛擬機監視器 (VMM)」。
而管理程序就是那個能讓我們創建和運行虛擬機的軟體。
管理程序有兩種類型:
- 一級管理程序 :它直接連接到物理機,用於管理虛擬機的資源。一個很好的例子就是 KVM,它直接集成在 Linux 系統里。
- 二級管理程序 :它存在於操作系統上,在操作系統上運行,讓你能夠管理虛擬機資源等等。例如 VirtualBox。
雖然管理程序使虛擬化成為可能,但是各種虛擬化類型則能使你在使用虛擬機時帶來更多便利和功能。
一些相關的類型包括:
- 存儲虛擬化 :這能通過將可用的磁碟空間劃分為小塊,以被虛擬機使用,從而創建虛擬磁碟。
- 網路虛擬化 :允許物理網路連接通過虛擬網路(或者適配器)路由到虛擬機。
- 桌面虛擬化 :通過該方式,你可以同時向多台物理設備部署多個虛擬桌面環境。可以從一個中心點配置和管理所有虛擬桌面。
為了深入了解所有的技術細節,我建議你查閱 AWS 關於虛擬化的文檔。
虛擬機的優勢
雖然你已經通過其使用案例了解到了一些虛擬機帶給你的好處,但是我還是想再補充一些你需要知道的要點:
- 虛擬機能夠讓你充分地利用硬體資源,而不影響宿主機
- 有了虛擬機,你可以自由地進行測試或者做任何你想做的事情。無論是一個極老的應用,或是一個有風險的軟體,你都可以完全依賴虛擬機來完成一切,並且不會對你宿主機產生影響
- 你可以在一個地方運行多個操作系統,而不需要面對雙啟動或增加額外的物理驅動器來使用其它操作系統的麻煩。這樣可以幫你節省成本,時間,同時避免管理的困擾
- 有了虛擬機,你可以在不需增加任何硬體的情況下快速地克隆你的配置。
虛擬機的劣勢
雖然虛擬機在許多場景中都非常有幫助,但是它也有可能帶來什麼不利影響嗎?
嗯,實際上,使用虛擬機並沒有直接的缺點,但是你仍然需要對一些虛擬機可能帶來的影響持謹慎態度:
- 儘管虛擬機被認為能夠有效地利用資源,但是如果你不監控它們或者粗心大意地運行多個虛擬機,它們還是有可能會耗盡系統的資源
- 虛擬機永遠無法替代裸機的體驗和性能。無論宿主機有多麼強大,虛擬機的運行速度總是比你在物理計算機上預期的要慢
- 虛擬機雖然與宿主機隔離,但你必須要注意文件共享可能會將惡意軟體暴露給你的宿主機系統
虛擬機的利用廣泛
虛擬機的概念讓許多事情變得可能。
如果沒有虛擬機,你認為雲計算行業會如何發展?如果每次嘗試不同的操作系統都需要重新安裝,這將帶來多大的不方便?
? 無論是哪種形式,每個電腦用戶或伺服器用戶都需要虛擬機。你對虛擬機有什麼看法呢?你會如何定義它?
(題圖:MJ/be913487-080e-4869-98d9-ccd996f68a7f)
via: https://itsfoss.com/virtual-machine/
作者:Ankush Das 選題:lujun9972 譯者:ChatGPT 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive