如果是 WSL1 真的發展,倒是有可能一定程度替代Linux,因為它跟 Linux 確實存在替代關係,它替代了Linux內核接駁到GNU上層,相當於把 Linux 替換掉了,這個 WSL 中可以原生的運行 Linux 程序以及 Windows 程序,是 cygwin 的完美替代。
但 WSL2 就不同了,它本身就是 Linux ,相當於在 Windows 內開了一個虛擬機運行 Linux。這個模式下,沒了 Linux 就根本沒法運行 WSL2,因此自然, WSL2 沒有辦法取代 Linux。如果微軟的發展方向是 WSL2,那麼,永遠不可能取代 Linux。
其實虛擬機一直都有,如果我要的只是個虛擬機,根本沒必要等待 WSL2 的到來。而事實上,我一直都反對使用虛擬機,因為這真的不是一個舒服的解決方案。
所以在我看來,WSL2不是什麼飛速發展,而是開倒車。從一個非常牛逼的系統級支持方案(WSL1)變成了鶸的虛擬機方案(WSL2)。給WSL愛好者當頭澆了個透心涼。
MacOSX為什麼受到開發者追捧?因為它的那一套POSIX/GNU上層,是完全系統原生的,而不是運行在一個虛擬機中。為什麼我如此看好 WSL1 ?因為它的實現方式比 OSX 更舒服!畢竟Linux的包管理系統比 homebrew 好用太多太多。
微軟要是真想取代 Linux,就應該繼續發展 WSL1,把 Linux 變成 Windows 的一部分。不過現在看來,微軟大概並不是這樣想的。——所以我發現,在可以預見的將來,Windows也沒有辦法取代Linux。
按照你的說法,其實原生Linux早就被打敗了……
90%的Linux系統跑在虛擬機裡面……
WSL2和他們有什麼區別?
反對所謂「WSL2是開倒車」的觀點。
WSL1下交叉編譯是有問題的。理由也說了,WSL1就是個長得像Linux的縫合怪。
我們要用WSL的時候,我們很清楚自己要什麼——我們就是需要在Windows上方便地使用Linux。我們不想要在物理機上跑Linux,因為不方便;我們也不太想要縫合怪,因為我們仍然想全面地兼容系統調用。
何況WSL2的I/O性能還更好[1]。也不知道WSL1怎麼就成了系統級支持方案,WSL2就成了弱雞了。貸款奪冠?
回到原問題。
「所有爭論都是名詞之爭」。這個問題就在於我們怎麼看待「替代」這兩個字。
原生Linux會消失嗎?當然不可能。沒有Linux,何來Windows Subsystem for Linux。摻了水的汽油如此便宜,有可能替代汽油么?
但是。
WSL好用嗎?我覺得好用。
WSL會改變很多人在Windows上使用Linux的方式嗎?我覺得會。
參考
- ^Comparing WSL 2 and WSL 1 https://docs.microsoft.com/en-us/windows/wsl/compare-versions
WSL發展如此迅速,也就從NT時就有的子系統性質的WSL1發展到虛擬機性質的WSL2,原來沒有虛擬機嗎?
不可能取代,宣揚這個論調的一般都是原來用Windows偶爾用不得不用Linux的人,不是原來就用Linux的人。
你們啊,不要總想搞個大新聞。
WSL 前兩個單詞是什麼?Windows Subsystem 啊!
一切用 WSL 的前提都是,你是個 Windows 的深度用戶,離不開 Windows 的豐富生態。
以前 Windows 對 Linux 很不好,總覺得有刁民想害朕,不能便宜了這小子。
現在 Windows 則是 MDGA,Make Developers Great Again,從 WSL 到 VSCode,從 Windows Terminal 到 GitHub,都是在向開發者示好。
WSL 自始至終都只面對開發者,特別是那些同時喜歡 Windows 桌面環境和 Linux 開發環境的開發者,它的野心沒那麼大。
再者說,Linux 也不止是開發者們的玩物,也有更大的應用場景。原生 Linux 的價值從來都沒有被 WSL 折損,反而借 WSL 把觸角延伸到了更大的人群,這也是 Linux 的勝利。
Windows 還是 Linux?WSL 給出了答案。