作為大一學生一直用 MacOS 系統編程,最近想學 Linux 系統就在 Mac 上安裝了 Linux 虛擬機。

虛擬機與實體機的系統有何差別?要不要再買一臺電腦只安裝 Linux 系統?


對於學習來說,虛擬機是最高效最安全的實驗方式:

1. 不用擔心破壞主機系統,隨便折騰。主機還是盡量不要折騰,搞掛了喫力不討好。耽誤其他事情。

2. 使用效率也很高,當個App一樣用,開關機就是點個按鈕。

如果要學嵌入式開發,剛開始也可以完全用虛擬機,最後可能還是需要拿個硬體開發板上手。

學習基本的開發,用docker,virtualbox裝個Ubuntu之類就夠了,學彙編,C,資料庫,操作系統都沒問題,甚至複雜一點的嵌入式開發都ok。

歡迎閱讀:為什麼計算機的學生要學習Linux,http://tinylab.org/why-computer-students-learn-linux-open-source-technologies/

從研究、視野、工作和課程實踐等方面講了原因,也提供了大量實習案例。其中 Linux Lab 是筆者專門為學習C、彙編、Linux內核、驅動開發專門設計的一個高度集成的開源工具,基於 Docker,支持 MacOSX,適合作為學習工具,詳情請訪問http://tinylab.org/linux-lab。

如果想進一步關注和交流,歡迎訂閱『Linux知識星球』專欄,正在籌備中:

https://zhuanlan.zhihu.com/tinylab (二維碼自動識別)


不知道你想說什麼

首先虛擬機上跑linux那就是真的linux 誰閑的蛋疼還弄個閹割版的嗎 虛擬機裝linux和物理機裝linux都用同一個鏡像

如果你想問虛擬機跑linux和物理機跑linux的區別 那除了性能就沒區別


為什麼用的差距而不是差別?瞧不起虛擬化技術嗎?


什麼是虛擬機?

虛擬機 (Virtual Machine) 是指通過軟體模擬出來的具有完整的硬體系統功能的,運行在宿主機上的一個隔離環境中的計算機系統。

簡單來說就是虛擬機中的系統是運行中模擬出來的硬體上的,而非直接運行在我們計算機的物理硬體上,因而具有較高的兼容性。虛擬機中運行的系統是一個獨立的系統,不會對宿主機的系統設置造成意外的影響,但是相應的會佔用一些存儲空間。

什麼是雙系統?

一般來說,我們的物理機器可存儲多個操作系統,只要我們選擇開機引導的時候載入對應的內核以及系統文件,那麼這樣就能啟動我們想要的系統。基於這一點,我們可以在我們的物理機中存放兩個操作系統,並配置好兩個系統引導選項,這樣就可以實現雙系統。所謂的雙系統並不是同時運行兩個系統,而是指兩個系統都在存儲空間中,我們可以選擇其中一個進行啟動。

二者的區別

虛擬機和雙系統都可以讓我們安裝上 Linux 系統,那麼二者的區別是什麼呢?

通過上面的概念性的介紹已經有了初步的瞭解,一個是需要運行在宿主機中,另一個是直接運行在物理硬體中。

所謂的 宿主機 在這裡就是指直接運行在我們物理硬體的操作系統,而 虛擬機 則是運行在宿主機之上,所以當我們運行一個虛擬機的時候,實際上我們是在同時運行兩個系統,這對我們的物理硬體要求比較高(主要是內存)。因為首先你要保證你的宿主機能正常運轉的前提下,再跑動一個可能具有相同規模的虛擬機。

雙系統因為是直接運行在物理硬體上,不存在同時運行兩個系統的情況,因此對硬體的要求沒那麼高。當然你可以在雙系統的基礎上,選擇在其中一個系統中建立虛擬機,這些都是允許的。

建議

雖然從上面的分析看來,雙系統具有無與倫比的優勢,但是在這裡我建議新手還是選擇虛擬機,原因有以下幾點:

  • 雙系統的安裝需要直接對硬碟操作,如果不當會損壞磁碟上的數據以及原有的系統
  • 某些硬體比較特殊,部分 Linux 發行版對這些硬體還未兼容,導致許多神祕的錯誤以及崩潰,而虛擬機虛擬出來的硬體系統通用且普遍,不會存在這種兼容性問題
  • Linux 下是沒有 QQ 以及其它的一些常用的國內通訊工具的,出現問題不能及時交流解決,拍照的效果也經常不如人意
  • 目前的普通筆記本的硬體已經足夠在運行一個 Windows 系統的宿主機上再運行一個帶桌面的 Linux 發行版了,所以硬體方面運行虛擬機基本不成問題,沒必要再麻煩自己去折騰雙系統。如果虛擬機確實卡,那麼可以選擇安裝不帶桌面的發行版,佔用內存也就幾百兆
  • 選擇虛擬機是更快進入 Linux 世界的一個方法,你不用擔心玩壞了,盡情折騰,然後讓自己快速進步

我在這裡是站在新手的角度,建議選擇虛擬機的,當你們慢慢了解了各種原理之後,我想安裝個雙系統也只是幾個命令的事


不用

學習Linux 也分很多種,如果你是做 Linux 運維的話,一臺 虛擬機的 Linux 就足夠了。

如果你是做 Linux應用開發,也是可以用虛擬機開發的。

但是如果你是做 Linux 驅動開發,這就有必要一個 Linux 開發板了,也可以用 Linux 虛擬機。


推薦閱讀:
相關文章