Windows Subsystem for Linux
今天早上,我阅读到一篇业内人士写的警醒微软的文章,这篇文章以微软失去手机业务、windows phone开发业务等为引子,批评Microsoft正在重蹈IBM的覆辙。这也意味着,Microsoft在软硬件方面的大批“土地”都在遭遇沦丧,不得不说苹果、Google对微软都形成了强有力的狙击。
不过我在文章中留意到微软在windows 10中,在开发者模式下是暗藏着一个很不错功能的,当然微软并没有好好利用它,也没有做什么宣传。那就是 Windows Subsystem for Linux。这个不像cygwin等假Linux,也不像虚拟机中的Linux系统,它是在windows的命令行模式中嵌入了一个Linux系统平台。关于其使用以及文档可以参考:https://msdn.microsoft.com/commandline/wsl/about
我虽然每天都期待自己时刻都是使用Linux系统的,而且确实我也每天都ssh的方式使用很多Linux环境,但是由于多年积攒下来的一些习惯,我不得不依赖于个别windows软件来处理一些特别的事情,所以我常用的工作环境还是windows。
有时候,当ssh去Linux服务器或者超级计算中心不方面的时候,我们可能会想在windows上有个Linux或者类Linux系统。我曾经试过双系统(需要切换)、cygwin、gitbash,这些都是各有优缺点,这里我最不推荐的是cygwin。软件大而弱鸡,假的Linux系统,我这辈子都不可能回头去用这个东西。双系统在我读本科时候,使用过一段时间,但是切换系统还是麻烦的,也折腾过虚拟机。笔记本弱鸡的情况下,虚拟机简直是受罪,好在现在下伙子小姑凉们的电脑都是好。
回到windows substem for linux,我觉得算是微软工程师妥协、顾及客户体验、挽留个人和企业用户的折中方案。这样,在windows shell中,我们也能轻松使用Linux了。而且这个Linux,是个真正的Linux。
举个例子,在git bash这类mingw系统中,虽然比cygwin轻量化许多许多,但是本质上也是个假的Linux系统。例如,当我们想在git bash中使用gnuplot的时候,我们不得不先下载并安装一个windows版本的gnuplot,然后在git bash的环境配置文件.bashrc中设置好gnuplot for windows的路径,这样才能在git bash中调用gnuplot;而在Microsoft的windows subsystem中,由于这是个真实的Linux系统,使用sudo apt-get install gnuplot就可以安装一个gnuplot for linux,如果你在windows命令行中没有X11,只要安装一个windows的X11环境(才几个Kb,如Xming),然后在windows subsytem中输入
export DISPLAY=:0 gnuplot
就可以在gnuplot中将terminal设置为X11,这无疑是很方便的,而且对于Linux用户来说更加coherent。