Windows 10 WSL运行Ubuntu

最近试用了一下Windows 10上的Ubutnu, 总体感觉,能用,但是比较鸡肋,可以做些简单开发。文末附上wiki上介绍的优缺点。话说微软近些年确实改变了经营策略,从敌视Linux和开源软件到现在的主动示好,给自己在程序员们心中增加了不少印象分。就我自己而言,虽然Windows, Linux和MacOS都会轮换使用,但windows是毫无疑问的日常工作主力,用它上面软件的工作效率远非Linux或MacOS 可比。

安装和使用都比较简单,从Store里下载安装Ubuntu,安装完后创建用户名和密码就可以使用了。运行了一下lsb_release -a, 显示Ubuntu 18.04.1 LTS,看来还是更新比较及时的。

windows的所有文件在/mnt/c路径下,可以进行各种文件相关操作。

自己试着安装了一下gcc,make,pip3, matplotlib,tkitner等来尝试编译一个项目,因为没有GUI,所以只可以运行console类程序。运行没有问题,速度也不慢。就是安装各种程序的时候速度比较慢,搜了下发现是个普遍问题, 说是文件
I/O操作是WSL的瓶颈,目前没有解决。一个用户发言说用native ubuntu pip 安装一个包需要8s,而在WSL上,相同机器同样操作就需要1分多钟。在微软没有提供解决方案前,目前只能忍了,这也是WSL鸡肋的一个原因。

虽然没有GUI,但是可以通过在windows上安装第三方的X Server来运行。这个我试用了一下 VcXsrv。下载exe后在windows上安装,启动XLaunch,选择mutliple windows就可以了。然后在Ubuntu里修改~/.bashrc文件,在末尾添加上如下一行:
export DISPLAY=192.168.1.98:0.0
保存后再source一下就可以使用了: source .bashrc。然后在ubuntu里执行各种GUI程序时,就会自动弹窗显示界面了。

我运行了一下基于Matplotlib和Tkinter的GUI 程序,没有问题,安装了firefox,打开youtube网页视频,视频很流畅,就是没有声音,搜了下可以再折腾一下PulseAudio就可以,不过比较麻烦,需要在windows 10 和 Ubuntu里同时进行安装和设置,就懒得弄了。

顺便仔细看了下中文wiki的介绍:
https://zh.wikipedia.org/wiki/%E9%80%82%E7%94%A8%E4%BA%8E_Linux_%E7%9A%84_Windows_%E5%AD%90%E7%B3%BB%E7%BB%9F

在性能测试中,Windows Subsystem for Linux通常接近原生Linux,如Ubuntu,Debian,Intel Clear Linux或其他Linux发行版。I/O在某些测试中是WSL的瓶颈。

此子系统无法运行所有Linux软件(如32位二进制文件)或需要在WSL中未实现的特定Linux内核服务的软件。由于WSL中没有“真正的”Linux内核,因此无法运行内核模块(如设备驱动程序)。

可以通过在Windows(主机)环境(例如VcXsrv或Xming)中安装X窗口系统来运行一些图形(GUI)应用程序(例如Mozilla Firefox),尽管并非没有警告,例如缺乏音频支持或硬件加速(导致图形性能不佳)。当前还没有实施对OpenCLCUDA的支持,尽管计划在将来的版本中使用。[22][23]

也就是说,微软明确指出WSL面向应用程序的开发者,而不是面向桌面环境或生产服务器,建议使用虚拟机Hyper-VKubernetes)和Azure来实现这些目的。

所以这个目前还不成熟,可以拿来练手,仅此而已。