WSL2:我在原生的Win10玩转Linux系统
原文地址:梁桂钊的博客
欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。
WSL2:我在原生的Win10玩转Linux系统
今天,我跟大家分享一个好玩的东西:WSL 2(Windows Subsystem for Linux 2)。WSL 2 很有意思,它是基于Hyper-V 功能的子集提供了“真正的 Linux 内核”。怎么理解这句话呢?大家设想,我们平时的研发办公环境需要Windows,而开发环境需要 Linux 系统,我们会怎么做?
- 方案一:安装主机双系统,实现物理隔离。
- 方案二:安装虚拟机,例如使用 VMware 来实现完整的使用体验。
- 方案三:使用 Docker 容器。
其中,方案一成本最高,需要两台以上的物理机,而方案二资源消耗大、运行效率低,而方案三“容器化”方案是我们目前较多采用的方案。而最新的 Windows 版本(对于x64系统:版本1903或更高版本,以及内部版本18362或更高版本)通过 WSL2 技术支持在原生的系统上使用到 Linux 内核,实现 Linux 子系统化。

WSL 2 使用之旅
现在,让我们来一探究竟吧。要更新到WSL 2,我们必须正在运行 Windows 10。这里,官方对于 Windows 10 版本是由要求的。
- 对于 x64 系统:版本 1903 或更高版本,以及内部版本 18362 或更高版本。
- 对于 ARM64 系统:2004 或更高版本,内部版本19041或更高。
- 低于18362 的内部版本不支持 WSL2。使用 Windows Update Assistant 来更新 Windows 版本。
我们可以通过选择 Windows徽标键+ R 键入 winver ,然后选择确定。

下图,就是我的电脑的版本号了。如果你运行的是 Windows 10 版本1903 或 1909,请从 Windows 菜单中打开“设置”,导航至“更新和安全”,然后选择“检查更新”。

紧接着,我们需要确保开启 适用于 Linux 的 Windows 子系统 和 虚拟机平台 配置项。

这里,我们也可以以管理员身份打开 PowerShell 用命令方式安装。
首先启用 虚拟机平台 功能。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
然后重启下,启用 适用于 Linux 的 Windows 子系统 功能。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
然后呢,我们还需要下载最新 Linux 内核更新程序包。 下载地址:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
安装完成后,将 WSL 2 设置为默认版本。
wsl --set-default-version 2
最后,我们安装自己需要的 Linux 发行版。

我比较熟悉使用 CentOS,而应用商店中的 CentOS 是收费版本,而 github 上面有 CentOS 官方开源的安装包,我们这里使用 github 上的安装包进行安装。地址:https://github.com/CentOS/sig-cloud-instance-images/
安装完毕后,进入命令行,可以查看版本清单。
wsl -list -verbose
通过输入 wsl 命令都可以进入CentOS7系统。

至此,我们可以在原生的 Windows 10 玩转 Linux 系统了。
Docker Desktop WSL 2
现在,我来说一个更好玩的特性。因为,WSL 2 引入了重大的体系结构更改,它是由 Microsoft 构建的完整 Linux 内核,允许 Linux 容器在没有仿真的情况下本机运行。因此,通过在 WSL 2 上运行的 Docker Desktop,用户可以利用 Linux 工作区。此外,WSL 2 改进了文件系统共享,启动时间,并允许 Docker Desktop 用户访问一些很酷的新功能。Docker Desktop 使用 WSL 2 中的动态内存分配功能极大地减少了资源消耗。这意味着,Docker Desktop仅使用所需数量的所需 CPU 和内存资源,同时使 CPU 和内存密集型任务(如构建容器)运行得更快。此外,使用WSL 2,冷启动后启动 Docker 守护程序所需的时间明显更快。与之前版本的 Docker Desktop 几乎需要一分钟相比,启动 Docker 守护程序所需的时间不到 10 秒。
在安装 Docker Desktop WSL 2 之前,必须完成以下步骤:
- 下载 Docker Desktop Stable 2.3.0.2 或更高版本。
- 安装 Windows 10 版本 1903 或更高版本。
- 在 Windows 上启用 WSL 2 功能。


参考文献
写在末尾
【服务端思维】:我们一起聊聊服务端核心技术,探讨一线互联网的项目架构与实战经验。让所有孤军奋战的研发人员都找到属于自己的圈子,一起交流、探讨。在这里,我们可以认知升级,连接顶级的技术大牛,连接优秀的思维方式,连接解决问题的最短路径,连接一切优秀的方法,打破认知的局限。
更多精彩文章,尽在「服务端思维」!

WSL2:我在原生的Win10玩转Linux系统的更多相关文章
- Linux 桌面玩家指南:01. 玩转 Linux 系统的方法论
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- 玩转 Linux 系统的方法论
Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...
- Linux江湖01:玩转Linux系统的方法论 (转载)
http://www.blogjava.net/youxia/archive/2015/01/08/linux001.html 2014年上半年,我是在写RCP系列.然后,由于要准备研究生毕业论文和答 ...
- win10 vmware下Linux系统联网
本来,这个问题网上资源很多的,但是就因为多,就变得杂了,对于许多新手,并不理解为啥,故记录下来方便以后使用.此处我采用配置VWmare虚拟网关(上学期刚刚学计算机网络,正好可以复习下).关于虚拟机下L ...
- Install Ubuntu On Windows10(win10上安装linux系统)
一.准备: 硬件:U盘 软件:ultraiso.Ubuntu镜像文件 二.安装linux: 1.Ubuntu官网(http://www.ubuntu.org.cn/download/alternati ...
- 使用win10 hyper-v安装linux系统
1.控制面板---程序---启动或关闭windows功能---启动hyper-v管理器---重启 2.配置网络 因为公司内网通过ip验证,而通过桥接的方式,虚拟机就相当于物理机所在的网络中的一台真实主 ...
- 如何用win10自带linux系统学习c语言---解决gdb使用问题
1.windos store---ubuntu18 2.改安装源 3.装gcc apt-install 即可 4.装gdb apt-instll 即可 5.写helloworld 记做 ...
- win10+Ubuntu16.04双系统下深度学习环境的搭建
环境零零碎碎地搭了三四天,虽然碰到各种问题,但还是搭建好了,自己整理记录下,同时也算给有需要的人一些指导吧 一.双系统的安装 Win10硬盘管理助手 压缩或者直接利用未使用的空间,空间大小自定,将腾出 ...
- Win10玩魔兽争霸不能全屏显示的设置教程
Win10玩魔兽争霸不能全屏显示的设置教程: 1.右击桌面左下角的windows图标,显示图片内容,然后点击运行: 2.点击运行,有个输入框,输入regedit,点击确认: 3.显示win10注册表, ...
随机推荐
- 游戏2048的核心算法c#版本的实现
接触游戏有一段时间了,也写了一些东西,效果还不错,今天没事,我就把2048 c# 版本的实现贴出来,代码已经测试过,可以正常.完美运行.当然了,在网上有很多有关2048的实现方法,但是没有提出到类里面 ...
- IDEA 简拼输入
1. sout = System.out.println(); 2. soutp = System.out.println(""); 3. soutv = System.out.p ...
- 苏州6617.9373(薇)xiaojie:苏州哪里有xiaomei
苏州哪里有小姐服务大保健[微信:6617.9373倩儿小妹[苏州叫小姐服务√o服务微信:6617.9373倩儿小妹[苏州叫小姐服务][十微信:6617.9373倩儿小妹][苏州叫小姐包夜服务][十微信 ...
- 详解command设计模式,解耦操作和回滚
大家好,欢迎来到设计模式专题,我们的主旨是介绍一些有趣好玩的设计模式. 今天我们介绍的设计模式叫做命令模式(command),在这个模式下,我们可以实现do和undo的解耦,让使用方不用关心内部的实现 ...
- day29 Pyhton 面向对象 多态 封装
# coding:utf-8 # py2中的经典类 # class D:#没有继承object是经典类# pass # # def func(self): # # print('d') # class ...
- linux(centos8):安装配置consul集群(consul 1.8.4 | centos 8.2.2004)
一,什么是consul? 1,Consul 是 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置. Consul 是分布式的.高可用的. 可横向扩展的 2,官方网站: h ...
- HTML DOM Document的实际应用
HTML文档中可以使用以下属性和方法: 属性 / 方法 描述 document.activeElement 返回当前获取焦点元素 document.addEventListener() 向文档添加句柄 ...
- 【git冲突解决】: Please commit your changes or stash them before you merge.
刚刚使用 git pull 命令拉取代码时候,遇到了这样的问题: error: Your local changes to the following files would be overwritt ...
- JavaWeb学习笔记(六)jsp
第六章.jsp 1.什么是jsp jsp:java server pages,java的服务器页面 作用:代替Servlet回传HTML页面的数据 因为Servlet程序回传HTML页面的数据很繁琐, ...
- CountDownLatch(减少计数)
public class Test04 { public static void main(String[] args) throws InterruptedException { CountDown ...