在Windows上运行Linux?这其实不是新鲜事,20年前,就有黑客这么干过。不过大体都是虚拟机的做法,速度慢,能跑的Linux应用也少。
三十年河东,三十年河西。微软的开发者博客刚刚公布[1],下一个Windows10版本,不仅自带Linux内核,而且还会通过WindowsUpdate安装方式更新,简单得就像安装驱动程序一样。大杀器这个大杀器叫做WSL,全称是“适用于Linux的Windows子系统”(WindowsSubsystemforLinux),它其实也不是一夜间冒出来的,只是一直默默无闻。最早它起源于一个叫Astoria的项目,目的是为了让一些安卓APP运行在Windows10移动版上。
但它的目标并不是硬件仿真或者虚拟化这样的项目,或者像流行的Cygwin这样的第三方Linux环境。它的设计目标是一个完整的Linux子系统,可以直接使用主机的文件系统,比如允许用户在同一组文件上使用Windows应用程序和Linux工具;也可以调用硬件的某些部分,这是微软官方提供的在Windows环境下运行Linux软件的最直接方式。比如直接使用GNULinux的命令行工具,各种编程语言诸如Python、Ruby的解释器,甚至像XWindow这样的图形应用程序。
当然,微软指出WSL主要是面向应用程序的开发者,而不是日常的桌面环境。对于主力开发环境是Windows,但时不时需要用到Linux的开发者、老师或学生来说,堪称提高效率的开源神器。
下个月就可能发布这个要推出的Windows10版本号是2004,根据YYMM格式的命名规则,2004就是2020年4月,当然5月发布也不奇怪,WindowsInsider里则可以先行体验。这次更新的其实是WSL第二个版本(WSL2),它比上一个版本WSL1要强大得多,它打包了真正的Linux内核,推进到了普遍可用(GA,GenerallyAvailable)的状态。特别是它大幅度提高了文件系统I/O性能,可以在Windows上直接运行Linux二进制文件。
WSL1是通过转换层,对系统调用还要做翻译;而WSL2则包含自己的Linux内核,具有完整的系统调用兼容性,比如像Linux版本的Docker这样的开源程序,就可以直接调用。WSL2是在2019年6月的微软Build大会上宣布的,到这次即将要达到的人人可用的状态,花了接近一年的时间。
如何安装使用这次WSL2最值得称道的,就是它简便的安装和使用方式,说白了就像安装驱动程序或者打一个补丁那么简单。具体而言就是使用WindowsUpdate进行更新,这样可以获得最新的内核版本,而无需更新整个Windows映像。如果是第一次安装WSL,就会在安装过程中检查更新并为您安装Linux内核。当然,你也可以在命令行里操作,直接下载软件包。
在Github上,你可以看到完整的源代码:WSL2-Linux-Kernel[2]。它基于Linux修改而来的,采取Linux内核的GPLv2开源许可证协议。对于开发者来说,安装了Linux内核之后,不仅仅是使用Linux命令行工具,而是可以运行其上的GNU/Linux,这意味着你可以选择不同的Linux发行版,比如Ubuntu、Debian、SUSE等等,这些发行版通过Microsoft商店就可以安装。
开源的微软,开源的社区微软对开源的支持今非昔比了。随着WSL的发布,开发者已经形成了一个热烈的开源社区,甚至还办起了开发者大会WSLCONF[3],今年的WSLCONF就是3月3日,当然由于疫情原因,变成了一次线上活动。
开发者大会还是Ubuntu赞助的,围绕WSL主题进行各个方面的讨论,其中社区的头号人物就是WSL的微软项目经理克雷格·罗文(CraigLoewen)[4]。克雷格非常年轻,2018年刚从加拿大滑铁卢大学机电工程毕业,在校时实习经验丰富,不仅做过微软的实习生,还做过FIRST机器人大赛的评委。【雷锋网注:图片来源:craigloewen.com所有者:CraigLoewen】作为微软官方的WSL项目经理,克雷格在微软开发者博客上也发布了他面对开发者的最新概述视频《在WSL2上如何更快的开发程序》。
(雷锋网(公众号:雷锋网)注:上图为克雷格的演讲视频截图)曾几何年,微软和Linux是操作系统领域最大的对手,为什么现在后者反而成了前者座上宾了?Engadget的评论认为,微软现在越来越不依赖于Windows的销售,而是更多依赖Azure这样的云服务。而在服务器端和开发者端,更多的支持Linux,就是更好的打造生态。
参考[1]https://devblogs.microsoft.com/commandline/wsl2-will-be-generally-available-in-windows-10-version-2004/[2]Github:https://github.com/microsoft/WSL2-Linux-Kernel[3]WSLCONF:https://www.wslconf.dev[4]CraigLoewen:http://www.craigloewen.com。
本文关键词:微软,Win10,变身,开发者,利器,内置,2007,Linux,内核
本文来源:2007-www.aimeevonbokel.com