Computer Science

虛擬化技術

2023-05-16 1 min read

虛擬化技術

虛擬化要解決的問題是:「當我寫了一個程式,在我電腦上可以執行,但在別人電腦上就不行」。

But why?

  • 作業系統不同
  • 硬體配置不同

簡單來說:我的程式可能剛好只跟我的電腦的環境相容。😢

何謂虛擬化技術?

而虛擬化要做的就是模擬出一個環境,讓程式可以在不同硬體或作業系統上執行時,都以為自己在同一個環境中執行,以此來避免前面所述的問題。

目前常見用來比較的虛擬化技術有兩種:

  • 在系統層級的虛擬化技術,稱虛擬機器(Virtual machine) 例如 : Virtual Box 。
Virtual Box
  • 在作業系統層級技術,此稱容器(Container) 例如 : Docker 。
Docker

虛擬機器

以作業系統為中心

傳統虛擬化的目標: 將一個應用程式所需的執行環境打包起來,建立一個獨立環境,方便在不同的硬體中移動。

虛擬機器是在系統層上虛擬化, 簡單來說, Virtual Box 就是一個可以讓你在作業系統(Host OS)上面再裝一個作業系統(Guest OS),然後讓兩個作業系統彼此不會打架的平台。

容器

以應用程式為中心

容器化的目標: 改善虛擬機器因為需要裝 Guest OS 導致啟動慢、佔較大記憶體的問題。

容器是在作業系統層上虛擬化, 透過 Container Manager 直接將一個應用程式所需的程式碼、函式庫打包, 建立資源控管機制隔離各個容器,並分配 Host OS 上的系統資源。 透過容器,應用程式不需要再另外安裝作業系統(Guest OS)也可以執行。

VM vs. CONTAINER

← Posts
meow~