反对所谓“WSL2是开倒车”的观点。
WSL1下交叉编译是有问题的。理由也说了,WSL1就是个长得像Linux的缝合怪。
我们要用WSL的时候,我们很清楚自己要什么——我们就是需要在Windows上方便地使用Linux。我们不想要在物理机上跑Linux,因为不方便;我们也不太想要缝合怪,因为我们仍然想全面地兼容系统调用。
何况WSL2的I/O性能还更好[1]。也不知道WSL1怎么就成了系统级支持方案,WSL2就成了弱鸡了。贷款夺冠?
回到原问题。
“所有争论都是名词之争”。这个问题就在于我们怎么看待“替代”这两个字。
原生Linux会消失吗?当然不可能。没有Linux,何来Windows Subsystem for Linux。掺了水的汽油如此便宜,有可能替代汽油么?
但是。
WSL好用吗?我觉得好用。
WSL会改变很多人在Windows上使用Linux的方式吗?我觉得会。
按照你的说法,其实原生Linux早就被打败了……
90%的Linux系统跑在虚拟机里面……
WSL2和他们有什么区别?
如果是 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。
这是我看到的最准确的总结。
总的来说,就是中国的高考相对公平,所以性价比极高,所以其他活动都可以适当让步。