很多年前的程序員基本都是從Linux編程起家的,現在的程序員似乎更習慣於Windows和Mac的用戶界面體驗。操作系統作為電腦最重要的組件之一,就好像是平台的命脈,決定著軟件兼容性以及軟硬件交互。對於很多人來說,Linux與Windows或者Mac的組合似乎是最佳選擇。
本質上,電腦是可以支持雙系統的。Windows有它的特長,Linux也有它的優勢。Linux系統有優秀的定制能力,安全性能,專門的開源社區,並且所提供的服務通常都是免費的。當然,Windows或Mac也有相應的支持者以及某些優勢,比如原生APP和簡單友好的交互界面。既然各有優劣,到底要不要選擇雙系統呢?
選擇雙系統的五大理由
1、新舊版本游戲通殺
對於喜歡玩游戲的程序員來說,Windows上的本機游戲非常不錯,而在Linux上編程比在Windows上性能更優良。當然,多虧Steam OS推動了跨平台兼容的游戲性能優化,使得Linux版本的游戲迭代得已跟上Windows和Mac的腳步。但Windows依然是玩游戲的最佳選擇。
如果你想玩一些舊版的游戲(比如16位的)怎麼辦呢?現在的32位或64位Windows系統可能無法很好地支持游戲運行。Linux就可以通過32和64位操作系統對16位的程序提供支持。這要多虧WINE,許多Windows應用都可以以虛擬機的方式運行。如果既要編程,又要通過新舊多版本游戲度過漫漫長夜,雙系統是個不錯的選擇。
2、主機
當在一個系統上原生運行操作系統時(不同於虛擬機或者VM),操作系統能夠訪問全部主機。因此,雙系統意味著可以訪問更多的硬件組件,並且通常會比VM的速度要快。因此在VM內運行Linux或者Windows,為了得到更好的性能,通常需要不錯的配置。
3、兼容性
你可能會發現,一些你比較喜歡的、常用的應用程序並不是在任何一個系統中都可以很好地運行。很典型的一個例子就是Netflix(不過現在已經克服了),然而,常規使用的Adobe應用或者一些video游戲可能會強迫你使用雙系統。因此,安裝雙系統可以確保你可以訪問所有的應用和服務。
4、Linux平台的編程效果往往更好
還記得大學計算機有一門必修課就是操作系統,當時的任課老師建議我們一定要嘗試使用Linux編程,並認為可以在Linux上編程才算得上一個合格的程序員。我對這個觀點印象很深,想要學好編程嗎?像那些大片裡的黑客一樣,手指敲鍵盤就像鋼琴家演奏《野蜂飛舞》一樣。
Linux在編程上的優勢十分明顯。首先,它是免費的,這是一個很大的加分項。其次,它可以支持很多編程語言比如Java,PHP,Ruby,Python和C/C++,外加各類編碼應用負載和bash支持。如果你的簡歷裡有一項是熟練掌握Linux,將會十分吸引人。
想要為Windows或MAC開發應用嗎?當然,使用Linux完全沒問題,但一般來說,原生開發的效果可能更好。例如,Windows提供了一個十分強大的編程工具Visual Studio,近幾年還在不斷完善優化,Visual Studio很適合用來進行Windows應用開發。考慮到雙系統的應用程序開發,可以使用Linux作為開發環境。
5、使用簡單、方便
很多人習慣使用Windows和Mac系統之後,會認為Linux系統十分復雜,其實這是個誤解。雖然命令行的運行方式會讓新手需要花上一段時間去適應,但Linux其實非常易用。同樣地,雙系統啟動也很容易實現。網上有大量的此類教程,可以設置將Linux作為第二系統進行安裝,並在啟動時進行選擇。文件共享也將不是問題,因為Linux可以訪問大部分Windows文件。
選擇雙系統需要顧慮的兩點
凡事很難盡善盡美,安裝雙系統有一些缺點,你也應該認真考慮。
1、復雜性增加
雙系統的安裝過程並不復雜,雖說不是每所大學都有一個叫肖奈的大神,但一般級別的大神還是有那麼幾個的。解決了安裝問題,兩套系統之間的文件共享可能是個不小的挑戰。Linux訪問Windows文件通常問題不大,但通過Windows訪問Linux文件就有些難度了。Linux通常使用EXT4文件系統,Windows則需要求第三方應用具備EXT4兼容性。上山容易下山難,盡管雙系統的安裝不是問題,但卸載就沒那麼簡單了,可能會有一些文件殘留,卸載不徹底。如果沒做好隨時處理輕微故障的准備,不要急於嘗試。
2、虛擬機基本能夠實現同樣的效果
正如前面所討論的,虛擬機是在一個操作系統內運行另一個操作系統的不錯的解決方案。這個方法可以被用來在另一個操作系統內運行Linux,反之亦然。另外,安裝和卸載也變得更加簡單,不用擔心影響其他加載程序。
選擇虛擬機的解決方案不是要占用更多的硬盤空間,並且資源分配要超出直接運行Linux發行版的。早期的一些硬件可能不適合跑虛擬機,因為可能存在硬件驅動空間缺失或者系統配置較低的情況。另外,虛擬機的操作系統可能無法對PC進行完全訪問。
如果你對於使用雙系統並沒有十分必要的理由,就要慎重考慮了。但雙系統與單系統相比,確實能夠提升兼容性、安全性等。對於程序員來說,我認為雙系統必須一試。