为什么不建议你使用windows中的WSL

什么是WSL

Windows Subsystem for Linux,WSL,也就是Windows Linux子系统,可以在windows内使用linux, 类似于一台Linux虚拟机了,但是,这并非是真的Linux虚拟机。

微软对于WSL的一些说明

并未基于生产环境负载设计或构建WSL。如果你的应用或作业流程需要达到特定服务水平协议,那么不要将其运行在WSL之上。

需要使用 Windows 11 内部版本 22000或更高版本才能使用Linux GUI。

特殊符号

比如半角?号,在linux里面作为文件名没问题,但windows不行,告诉你说名称不正确。另外,/:?*<>|都不行。

image-20220119152332047

大小写问题

我在开发中就遇到过,因为windows不区分文件及目录名称大小写,造成开发的服务器程序无法运行。有补救的办法,但挺烦人的。如果你遇到了wsl大小写问题,可以用下面的办法来解决:

启用NTFS区分大小写功能

fsutil.exe file SetCaseSensitiveInfo 文件夹名称 enable

禁用NTFS区分大小写功能

fsutil.exe file SetCaseSensitiveInfo 文件夹名称 disable

注意,必须在安装WSL之后,上面的命令才会有作用!

奇怪的互操作问题

你在windows里面直接操作WSL创造的文件,然后再回去WSL操作时可能会出现奇怪的毛病!有时候明明文件删除了,但在Linux里面还是无法创建同名的文件,在重启电脑后又正常。

网络不可靠

WSL中的网络最终还是通过Windows实现的, 这与真实的Linux虚拟机不同,也就是说,你在Windows里面对于网络的设置会影响到WSL,如果你在进行Linux方面的网络编程,那么很可能会出现各种意想不到的怪异问题。

内存占用

当你退出WSL中的应用程序以及Docker,这些占用的内存仍然会被WSL保留。你可以在PowerShell中通过

wsl --showdown

来完全关闭WSL,以便清空其占用内存。

总结

如果你想要开发运行于Linux环境的应用程序、后台服务,那么请不要使用WSL。有可能出现各种奇怪的问题,而这些问题在虚拟机的Linux里面根本不会出现!虽然虚拟机的Linux块头大一点儿,多占用一些资源,但与真实的服务器环境99%的类似,除了物理位置不同之外,各种运行环境可以保持100%的一致!看似一开始安装虚拟机、配置会浪费一些时间,但其实在开发及部署的时候会更方便。

所以,请使用最接近生产环境的虚拟机Linux来进行软件开发, 而不要使用windows的WSL。

WSL只适合于用于非生产负载环境和一些快速简单的任务。我个人在体验过WSL没多久就又回到了虚拟机的Linux环境,在VS Code中使用远程管理服务器文件之后,一切就和本地开发没啥区别了。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱玩的安哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值