WSL Disadvantages

 20th August 2020 at 2:19pm

用了一段时间后,觉得 WSL 比较鸡肋,没有太多意义。考虑到已经有 Linux 系统做日常开发,不应该再使用 Windows 做开发,因此不要使用 WSL。

按功能做了表格:

功能点子功能WSL 上能力Windows 上能力
GNU 工具链coreutilsscoop install coreutils
方便的包管理工具pacmanscoop
编程语言包
后台程序 (Consul / MySQL / Nginx)
SSH 及相关配置原生支持优良支持
好用的终端 (zsh / oh-my-zsh)原生支持Windows Terminal 体验尚可
配置同步(yadm)原生支持不支持(不是太重要)
开发 Linux 相关程序原生支持不支持
启动 TiddlyWikitw shell aliastw.ps1 script

大部分需求点,有不错的 Windows 替代解决方案,或者这个能力并不是非有不可。WSL 上的 shell 有一些自定义的脚本、功能,比如 z(autojump)、with-proxy-env 这些东西要找 Windows 上的对应方案还是有成本的。

另外 WSL 还有一些缺陷:

  • 性能太差:参考这篇 帖子,WSL 的性能居然比虚拟机还差。我在使用时也明显感受到慢,比如 zsh 很多 theme,会在你 cd 进一个目录时去拿 git 信息,这个过程卡得不行。所以你想用 WSL 编译一些中型以上的程序,很可能是不行的
  • 没法用 systemd:由于 WSL 并不是运行在一个真正 boot 起来的系统,systemd 是不能用的,意味着一些之前由 systemd service 做的事情,你得手动做。比如启动 TiddlyWiki。(不过这个也可以通过脚本来做)
  • 涉及底层的操作做不了:比如你没法用 tcpdump 抓包

Scoop 的出现很大程度上解决了问题。感谢 Scoop。