在Windows 10上原生运行Linux是什么体验?
在Windows 上运行其他操作系统,并不是什么新鲜事。从VMware开始,主机打开了虚拟化的闸门,喜欢尝鲜的群众们完全可以在Windows上运行各种各样,千奇百怪的操作系统。但这次不同,Windows 10干脆集成了一套Subsystem for Linux,简称WSL。
原本我不想将一套系统搞得太复杂。Windows系统最令人诟病的一点,就是在上面安装的软件,经常到处拉屎,以致于保持系统干净也需要专业技能。
但在Windows 10下重新学习编写脚本,记住Powershell命令确实费力。不知微软的设计初衷是什么,Powershell使用了很多中间带横杠的单词做命令。比如:select-string,get-childitem。它们看起来很好懂,但记住不容易,特别是偶尔用一下的时候。
在Windows Powershell中,想要查看日志中的条目,要这样:
在Linux下,我只需要这样:
如果还想给同类项做个总结,自动数数。Linux只需加个“-c”的参数,可Powershell就复杂多了。也许对Powershell专家来说,这件事正相反,但我实在不愿意花时间再学习一遍新的命令系统,只为了实现一些简单的操作自动化。
将Linux融合进Windows的尝试,很早就有人做过了。大家都希望在Windows的终端窗口里,直接运行Linux命令,比如cygwin。但这种经过重新编译后的Linux命令,运行效果差强人意,甚至参数支持也与原生的命令不同。
于是便有了所谓的Windows Subsystem for Linux。
WSL的存在并非为了解决上面这些小众需求,而是微软希望将PC市场的占有率优势逐渐过渡到手机上,以免在未来的移动终端竞争中彻底被淘汰。
20年前,还有电脑培训班这种机构存在,书店里大量摆放学习Windows,如何用电脑的书籍,现在全换成成功学了。几乎没人会想找个电脑培训班去学习Windows怎么用。在新生代的认知里,手机才是电脑应该有的样子。如果电脑不如手机好使,那我为什么不用手机?
所以微软必须未雨绸缪,在大家彻底放弃探究PC操作系统的兴趣之前,让自己看起来像手机一样好用。新的Windows 11,无论从界面到架构,都在学习苹果融合Mac和iPhone的战略,与手机越来越像。
WSL从1到2,并非为了一小撮技工开发出的子系统,而是未来Windows上承载安卓App的预告。
安装WSL 2并不复杂,微软官网上有非常简单明确的步骤。尽管这套子系统依然使用了虚拟化的技术,但在感受上,远比一般的虚拟机方便,融合度更高。
在命令行启动这套子系统,完全感受不到延迟。
这套定制版的Ubuntu 20.04,也经过微软的深度改造,能够接近无感地运转在Windows下,用户完全可以在终端里体验纯净的Linux。
只是WSL依然是以虚拟机的面貌存在,很多服务需要手工开启,IP也是Windows 10宿主机重新开辟的子网。
我试了一下最近最能够表现一台主机性能的chia P盘操作。在理论性能最优的Linux下运行同样的程序,因为CPU无法占用到最高,磁盘性能又经过Linux NTFS驱动的再一次打折,耗时是Windows下的3倍,是运行Linux主机的6倍。
如果不是这种对CPU性能和磁盘IO索求无度的应用,WSL仅作为测试环境,能用。毕竟它的任务并不是高性能虚拟机,而是“原生”运行安卓的地基。
但安卓和Linux之间,还有一道巨大的鸿沟,处理器。手机端都是ARM处理器,PC上都是X86处理器。仅仅是不同处理器的差异,就足以抹掉系统优化带来的工作成果。
微软的下一步,一定是抛弃Intel,做自己的芯片,才能像苹果那样,在Mac和iPhone之间打造坚实的通用硬件架构。
这一步多半会在下一代Surface上做尝试,把ARM版的Windows再捡起来,拾掇拾掇,准备好迎接安卓App的宠幸。如果它们来的话。。。