WSL2:Windows 亲生的 Linux 子系统
作 者:道哥,10+年的嵌入式开发老兵。
公众号:【IOT物联网小镇】,专注于:C/C++、Linux操作系统、应用程序设计、物联网、单片机和嵌入式开发等领域。 公众号回复【书籍】,获取 Linux、嵌入式领域经典书籍。
转 载:欢迎转载文章,转载需注明出处。
在上一篇文章中,我们主要聊了一下:在 Windows
系统中,安装 WSL
子系统。
文章在此:WSL:在 Windows 系统中开发 Linux 程序的又一神器
但是 WSL
只是长得像 Linux
而已,虽然在这个子系统中,我们可以执行 Linux 程序,但是到了底层,WSL
调用的还是 win32 API
。
也就是说:WSL 只是一个适配层。
后来,微软终于放出了 WSL2
这个真正的 Linux
子系统,这是一个真正的 Linux 完整内核,与传统的虚拟机 VitualBox
、VMWare
一样,但是它与宿主机的互操作性更好。
为了完整性,我们就继续把这个流程给走完。
在这个过程中遇到的问题、需要的安装软件等资源,已经上传到网盘,在文末有下载地址。
安装 WSL2 的前提条件
在开始之前,我们先来看一下目前电脑中的 WSL
的版本。
在 Windows
命令行窗口,输入指令: wsl --list --verbose
(或者输入简化版本: wsl -l -v
),得到结果:
可以看到我们上一篇文章中安装的 Ubuntu-18.04
,而且 WSL
的版本是 1
。
如果要升级到 WSL2
,Windows
操作系统的内核版本必须满足一定的要求,如下:
我们就按照官方的要求,检查一下自己的电脑是否满足需求:选择 Windows
徽标键 Win + R,然后键入 winver
,选择 “确定”。
看来我的系统能满足要求,那就继续下一个步骤!
如果你的内核版本不满足这个需求,可以搜索关键字 “WIN10 获取内部预览版本”,就可以找到解决方案。
安装 WSL2
继续以管理员身份启动 PowerShell
,然后执行指令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
此时,又到了重启电脑的时候!
重启之后,继续在 PowserShell
中,把 Ubuntu-18.04
设置为 WSL2
版本。
输入的指令是:
wsl --set-version Ubuntu-18.04 2
这个步骤可能会遇到这样的问题:
解决方法:从微软的官网下载 WSL2 Linux 内核升级包,下载地址是:
也可以从文末的网盘中下载
下载之后,一路 Next
安装即可。
此时,在 PowerShell
中重新执行 wsl --set-version Ubuntu-18.04 2
指令(需要等待一段时间,大概 1
分钟左右吧):
同时,把 WSL
的默认版本改为 2
: wsl --set-default version 2
。
此时,我们再执行指令 wsl -l -v
来查看一下,就变成 WSL2
版本了:
现在,重新启动一下 Ubuntu-18.04
系统,虽然还是黑乎乎的窗口,但是它可是一个完整、纯正的 Linux 操作系统!
安装桌面环境
这部分的操作,参考:https://autoize.com/xfce4-desktop-environment-and-x-server-for-ubuntu-on-wsl-2/。
关于 Linux
的桌面环境,它与 Windows
桌面环境的理念有一些不一样。
在 Linux
系统中,桌面环境是一个独立的应用程序,不属于操作系统的一部分。
换句换说,即使没有桌面环境,也可以很愉快的玩 Linux
系统,比如那些服务器之类的设备。
Linux
中的桌面由客户端和服务端组成,它们之间通过一个协议来通信,俗称:X11
。
服务端:负责图形的显示;
客户端:根据系统设置的 DISPLAY 环境变量,把显示图形的请求发送给服务端;
因此,为了让我们的 Ubuntu
显示图形界面,我们就需要安装一个服务端软件和客户端软件。
注意:这里的服务端软件是安装在 Windows
系统中的,客户端是安装在 Ubuntu-18.04
系统中的。
安装客户端
在 Ubuntu-18.04
的终端窗口中,执行如下指令安装客户端软件 xfce4
:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install xfce4
配置 DISPLAY 环境变量
因为 Ubuntu
中的客户端 xfce4
需要把显示请求,通过网络发送给 Windows
上的服务端,因此需要知道 Windows
系统的 IP
地址,在 Windows
系统中的命令行窗口中查看:ipconfig
然后在 Ubuntu-18.04
中把这个 IP
地址,配置到家目录下的 .bashrc
文件中:
$ cd
$ vi .bashrc
在文件末尾添加:
export DISPLAY=192.168.192.1:0
保存、关闭文件之后,执行:source ~/.bashrc
更新即可。
安装服务端
图形界面有 VcXsrv
和 Xming
两款软件,我们选择前面的 VcXsrv
。
同样的,我已经把 vcxsrv-64.1.20.9.0.installer.exe 放在网盘里,下载后一路 Next
安装。
安装之后,启动 Windows
桌面上的 XLaunch
程序:
然后,按照参考文档中的配置,如下:
在最后一个步骤,可以把配置信息保存在桌面上。
启动客户端
在 Ubuntu-18.04
系统中的命令行窗口,执行指令:startxfce4
:
此刻,神器的事情就发生了:你的 Windows 系统中是不是就跳出了下面这个窗口:
可以打开桌面上 File System
,是不是看到了很多熟悉的身影?
在打开 mnt
目录,是不是看到了 Windows
系统中的盘符?
但是,中文信息显示的都是乱码!那我们就来安装中文语言支持包。
中文支持
在 Ubuntu-18.04
系统命令行窗口,设置 locale
:
此时,我们可以使用桌面环境中的终端窗口,如下图所示:
sudo vi /etc/locale.gen
把下图中的蓝色这一行复制,然后去掉前面的 #
和 空格
,然后保存、退出。
然后在终端中执行指令: sudo locale-gen
单机右上角的用户名,选择 【Log Out..】
此时,Ubuntu
虚拟机的 WSL
窗口中的 xfce4
客户端会退出,再次执行 startxfce4
启动客户端:
再次,在桌面中的终端窗口中,把 locale
改为中文:
sudo vi /etc/default/locale
把 LANG=C.UTF-8
改为 LANG=zh_CN.UTF-8
然后,把下面这个几个中文语言包给它安装进去:
sudo apt install language-pack-zh-hans
sudo apt install language-pack-gnome-zh-hans
sudo apt install language-pack-kde-zh-hans
此刻,你再看一下刚才的那些乱码,是不是已经正确显示中文了?
------ End ------
接下来,你还可以安装各种 IDE
,探索它们是如何共享文件的...
文中需要安装的软件,已经上传到网盘中了。
请在公众号后台回复721(不是留言区啊),即可收到下载地址,谢谢!
推荐阅读
【1】C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻
【2】一步步分析-如何用C实现面向对象编程
【3】原来gdb的底层调试原理这么简单
【4】内联汇编很可怕吗?看完这篇文章,终结它!
其他系列专辑:精选文章、C语言、Linux操作系统、应用程序设计、物联网
星标公众号,能更快找到我!
WSL2:Windows 亲生的 Linux 子系统的更多相关文章
- Windows下的Linux子系统安装,WSL 2下配置docker
Windows下的Linux子系统安装,WSL 2下配置docker 前提条件: 安装WSL 2需要Windows 10版本是Build 18917或更高,首先先确认系统版本已升级. 在“启用或关闭W ...
- Windows10上开启WSL2(Windows Subsystem for Linux 2)及Docker Desktop For Windows
什么是WSL2 WSL2(Windows Subsystem for Linux 2)是适用于Linux的Windows子系统体系结构的一个新版本,它支持适用于Linux的Windows子系统在Win ...
- WSL(Windows上的Linux子系统)
WSL(Windows上的Linux子系统) WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++ ...
- Windows 10 下 Linux 子系统的安装和使用
介绍 适用于 Windows 的 Linux 子系统(英语:Windows Subsystem for Linux,简称 WSL)是一个为在 Windows 10 和 Windows Server 2 ...
- 关于WSL(Windows上的Linux子系统)的介绍
WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++ 首先要说一句,其实Windows 10在一周 ...
- 关于WSL(Windows上的Linux子系统)的简单介绍及安装
WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++),在wsl环境下我们可以运行一些Linux程 ...
- windows 下使用Linux子系统
在 Windows 上进行 web 开发,比较普遍的方案是使用 phpstudy 或者别的一些集成环境软件进行环境搭建,写好代码后将代码上传至版本管理工具 git/svn,再将代码同步到 Linux ...
- Windows中安装Linux子系统的详细步骤
早就听说Windows中可以安装Linux子系统,体验了一下,感觉还是不错的,下面直接开始安装和配置步骤吧! 开启Windows中的配置 首先开启开发者模式 打开"所有设置"进入& ...
- Windows下的Linux子系统
强调!!!必须是Windows专业版!!! 一.安装运行过程 第一步:打开开发人员模式 第二步:进入 '控制面板 '--'程序'--'启用的Windows功能'--勾选Linux子系统(根据提示进行重 ...
随机推荐
- BERT模型的OneFlow实现
BERT模型的OneFlow实现 模型概述 BERT(Bidirectional Encoder Representations from Transformers)是NLP领域的一种预训练模型.本案 ...
- springboot 集成 elk 日志收集功能
Lilishop 技术栈 官方公众号 & 开源不易,如有帮助请点Star 介绍 官网:https://pickmall.cn Lilishop 是一款Java开发,基于SpringBoot研发 ...
- zookeeper命令行练习,熟练节点权限, 数组越界异常解决方案
https://www.cnblogs.com/qlqwjy/p/10517231.html zookeeper 创建持久有序节点时候报错,我的版本号是3.4.12, 亲测有效 https://blo ...
- JVM_ 动态链接
虚拟机栈: -> 栈帧---对应每个方法----> 包含: 局部变量表, 本地方法栈, 动态链接, 方法出口, 动态链接: 每个栈帧都保存了 一个 可以指向当前方法所在类的 运行时常量池, ...
- 1738. 找出第 K 大的异或坐标值
2021-05-19 LeetCode每日一题 链接:https://leetcode-cn.com/problems/find-kth-largest-xor-coordinate-value/ 标 ...
- linux用户组添加和权限的设置
1.useradd 添加用户 useradd [选项]... 用户名 -u 用户id.-d 家目录路径.-s 登录Shell(解释器).-G 附加组 /sbin/nologin :禁止用户登陆系统 ...
- Effective Fusion Factor in FPN for Tiny Object Detection
微小目标检测的FPN有效融合因子 摘要:基于FPN的检测器在一般物体检测方面取得了显著的进步,例如MS COCO和PASCAL VOC.然而,这些检测器在某些应用场景中会失败,例如微小物体检测.在本文 ...
- Java进阶 | 泛型机制与反射原理
一.泛型的概念 1.基础案例 泛型在Java中的应用非常广泛,最常见则是在集合容器中,先看下基础用法: public class Generic01 { public static void main ...
- FTP下载文件时拒绝登陆申请怎么办?
1.有时候用网页登陆FTP无法下载文件,如下图 2.这时候就需要用文件夹登陆FTP,(打开我的电脑,然后输入ftp://10.2.41.31.如下图 然后就可以下载文件了
- C++知识点大汇总
概述 1.1980年 贝尔实验室 Bjanre Stroustrup(比雅尼·斯特劳斯特鲁普)对C改进与扩充 最初称为"带类的C",(c with classes). 1983年正 ...