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

2023-05-16

什么是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中使用远程管理服务器文件之后,一切就和本地开发没啥区别了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么不建议你使用windows中的WSL 的相关文章

随机推荐

  • JAVA学习笔记

    第一章 IDEA基本配置和快捷键 IDEA快捷键 快捷键功能shift 43 F6选中目标内容后 xff0c 更改所有用到它的内容ctrl 43 Y删除当前行ctrl 43 D复制当前行Alt 43 Enter导入包自动修正代码Ctrl 4
  • 动态规划——装箱问题

    使用动态规划 xff0c dp i 记录当容积为i时的最大填充体积 span class token keyword import span java span class token punctuation span util span
  • 两种经典最短路径算法

    dijkstral算法 xff1a 计算单源最短路径 xff08 固定起点 xff0c 计算出起点到其他所有顶点的最短路径 xff09 用贪心思想 xff0c 每次找出距离起点最近的节点 xff0c 直到找出所有节点动态规划 xff1a 每
  • 【Spring Boot组件集成实战】集成Kaptcha谷歌验证码

    更多精彩内容 xff0c 请访问 Spring Boot组件集成实战专栏 xff01 推荐项目 xff1a 一套基于Spring Boot 43 Layui的内容管理系统 快速开发脚手架 xff08 含完整的开发文档 演示网址等 xff09
  • Redis

    NoSQL数据库 概述 NoSQL数据库 xff0c 指的是非关系型的数据库 不依赖业务逻辑的方式存储 xff0c 而是以简单的key value模式存储 因此大大增加了数据库的扩展能力 不遵循SQL标准不支持ACID 原子性 xff1a
  • 动态规划之戳气球

    leetcode312 戳气球 这一题可以用动态规划来解决 但是dp含义的设置和状态转移方程的设计很有意思 首先 一维dp难以实现的 xff0c 应该考虑二维dp xff0c 尤其在一个数组中 xff0c 要考虑到双指针移动来解决复杂问题
  • Java正则表达式

    捕获组 span class token keyword public span span class token keyword static span span class token keyword void span span cl
  • 进程同步与互斥

    什么是进程同步 答 xff1a 进程同步指的是 xff0c 由于进程并发执行具有异步性 xff08 即各自以独立地 不可预知的速度向前推进 xff09 xff0c 但是某些情况下又需要进程之间进行配合和协调来完成一项工作 xff08 存在执
  • maven项目clean,Some problems were encountered while building the effective model for

    maven项目点击clean出现问题 xff1a Some problems were encountered while building the effective model for com whgk robotclient jar
  • linux常用命令(五)解压缩、软件包安装

    解压缩 tar xff1a c xff1a 打包 t xff1a 显示内容目录 x xff1a 解压 z xff1a 使用zip gzip压缩 v xff1a 显示详细信息 f xff1a 指定文件 tar cf xx tar file x
  • 配置阿里云的CDN加速

    1 控制台中找到CDN的控制台 需要开通 xff0c 按流量 按带宽都可以 2 添加域名 在 39 域名管理中 39 39 添加域名 39 3 修改域名的DNS 添加域名管理后 xff0c 会产生一个cname值 xff0c 将原来域名的d
  • openssl升级时,libssl.so.10缺失问题

    openssl升级时 xff0c 造成了动态库的缺失 xff0c wget yum命令都不能正常使用 报错 xff1a error while loading shared libraries libcrypto so 1 0 0 cann
  • Python的类定义,实例化

    定义 xff1a 必须使用class关键字 类名必须是用大驼峰命名 类定义完成后 xff0c 就会产生一个类对象 xff0c 绑定到了标识符ClassName上 class ClassName 语句块 举例 xff1a class MyCl
  • iOS开发,引入第三方库,秒验,XCBBuildService崩溃,问题解决

    之前使用秒验SDK都是直接引入 xff0c 便可使用 xff0c 今天引入后 xff0c XCBBuildService意外退出 尝试各种方法都不可以 于是使用CocoaPods引入第三方库 xff0c 终于可以运行 xff0c 但是仍然报
  • 【Spring Boot组件集成实战】集成MyBatis-Plus-Generator代码生成器(Version 3.5.1+)

    更多精彩内容 xff0c 请访问 Spring Boot组件集成实战专栏 xff01 推荐项目 xff1a 一套基于Spring Boot 43 Layui的内容管理系统 快速开发脚手架 xff08 含完整的开发文档 演示网址等 xff09
  • Ansible的安装与使用

    Ansible的安装 1 安装源 yum search ansible yum y install centos release ansible 29 2 安装ansible yum y install ansible 3 添加被管理服务器
  • 利用栈实现计算器功能-C语言

    功能 xff1a 实现计算器 xff0c 可以运算带括号的表达式 如1 43 xff08 1 43 1 xff09 2 43 1 首先 xff0c 我们需要了解中缀表达式和后缀表达式 中缀表达式 xff08 符号在中间 xff09 xff1
  • 【MAVEN】 IDEA maven基本配置及远程仓库发布、拉取依赖

    MAVEN IDEA maven配置三要素 xff08 本地安装并下载 xff09 MAVEN HOME 需要配置好MAVEN的本地环境变量 MAVEN settings xml 配置文件 镜像地址 mirros 本地仓库位置 localr
  • GO 语言离线安装包

    Go 安装包前提 所有包的安装下载都必须开启 go mod xff0c 并且 Go 版本需要大于 1 11 go env w GO111MODULE 61 on 包下载和安装需要在GOPATH 下一个项目内进行 准备好离线的包 在一台有网络
  • 为什么不建议你使用windows中的WSL

    什么是WSL Windows Subsystem for Linux xff0c WSL xff0c 也就是Windows Linux子系统 xff0c 可以在windows内使用linux 类似于一台Linux虚拟机了 xff0c 但是