告诉老默,我想换系统了

在路上 2023-02-06 阅读:2013 评论:0
   在电视剧狂飙中,高启强动手时,总会说一句,告诉老默,我想吃鱼了,现在言归正传,改变一下Windows和Linux的使用方式,也可以动手了。      在实际工作中,如果经常用Windows和Linux打交道,可能需要安装虚拟机来解决互...

   在电视剧狂飙中,高启强动手时,总会说一句,告诉老默,我想吃鱼了,现在言归正传,改变一下Windows和Linux的使用方式,也可以动手了。

  

   在实际工作中,如果经常用Windows和Linux打交道,可能需要安装虚拟机来解决互相测试访问的问题,这样还面临D版的风险,那么问题来了,能不能不用虚拟机,用Linux的方式使用Windows,老实说这个需求在过去,比买等离子电视还难,但是最近几年,Windows已经做的相当不错了


  下面来说说,Windows10,Windows11里的WSL2吧,有机会大家可以尽快安排起来。

         传统的 VM 体验可能启动速度慢,是独立的,消耗大量资源,需要你花费时间进行管理。 WSL 2 没有这些属性。

         WSL 2 有 WSL 1 的优点,包括 Windows 和 Linux 之间的无缝集成,启动时间短,资源占用量少,并且无需 VM 配置或管理。 虽然 WSL 2 确实使用 VM,但 VM 是在幕后管理和运行的,因此你将具有与 WSL 1 相同的用户体验。

完整的 Linux 内核

WSL 2 中的 Linux 内核是 Microsoft 根据最新的稳定版分支(基于 http://kernel.org 上提供的源代码)构建的。此内核已专门针对 WSL 2 进行了调整,针对大小和性能进行了优化,以便在 Windows 上提供良好的 Linux 体验。 内核将由 Windows 更新提供服务,这意味着你将获得最新的安全修补程序和内核改进功能,而无需自行管理它。

版本

WSL 2 仅适用于 Windows 10 版本 1903、内部版本 18362 或更高版本。


提升了文件 IO 性能

如果使用 WSL 2,文件密集型操作(如 git 克隆、npm 安装、apt 更新、apt 升级等)的速度都明显更快。

实际的速度提升将取决于你运行的应用以及它与文件系统的交互方式。 在对压缩的 tarball 进行解包时,WSL 2 的初始版本的运行速度比 WSL 1 快达 20 倍,在各种项目上使用 git 克隆、npm 安装和 cmake 时,大约快 2-5 倍。

完全的系统调用兼容性

Linux 二进制文件使用系统调用来执行访问文件、请求内存、创建进程等功能。 虽然 WSL 1 使用的是由 WSL 团队构建的转换层,但 WSL 2 包括了自己的 Linux 内核,具有完全的系统调用兼容性。 优点包括:

  • 可以在 WSL 内部运行的一组全新应用,例如 Docker 等。

  • 对 Linux 内核的任何更新都立即可供使用。 (无需等待 WSL 团队实现更新并添加更改)。

查看win10版本号

通过按 Windows 徽标键 + R,检查你的 Windows 版本,然后键入 winver,选择“确定”。 (或者在 Windows 命令提示符下输入

ver 命令)。 你可能需要更新到最新的 Windows 版本。 低于 18362 的版本根本不支持 WSL。

例外情况(使用 WSL 1 而不是 WSL 2)

我们建议使用 WSL 2,因为它提供更快的性能和100% 的系统调用兼容性。 但是,在某些特定情况下,你可能会更倾向于使用 WSL 1。 在以下情况下,请考虑使用 WSL 1:

你的项目文件必须存储在 Windows 文件系统中。 WSL 1 可以更快地访问从 Windows 装载的文件。

如果你将使用 WSL Linux 分发版来访问 Windows 文件系统上的项目文件,并且这些文件无法存储在 Linux 文件系统上,那么,通过使用 WSL 1,你将跨 OS 文件系统实现更快的性能。

一个项目要求对相同的文件使用 Windows 和 Linux 工具进行交叉编译。

在 WSL 1 中,跨 Windows 和 Linux 操作系统的文件性能比 WSL 2 中更快,因此如果要使用 Windows 应用程序来访问 Linux 文件,则目前通过 WSL 1 可实现更快的性能。

你的项目需要访问串行端口或 USB 设备。但是,现在可通过 USBIPD-WIN 项目为 WSL 2 提供 USB 设备支持。

WSL 2 不支持访问串行端口。

有严格的内存要求,WSL2 的内存使用量会随使用而缩放。 当进程释放内存时,这会自动返回到 Windows。 但从现在开始,在关闭 WSL 实例前,WSL 2 还不会将内存中缓存的页面释放回 Windows。 如果你有长时间运行的 WSL 会话或访问非常大量的文件,此缓存可能会耗尽 Windows 内存。

1.对于使用 VirtualBox 的用户,你可能需要考虑你正在运行的版本以及它是否与 WSL 2 兼容。

2.如果依赖 Linux 发行版在与主机相同的网络中拥有 IP 地址,则可能需要设置一种替代方法来运行 WSL 2。 WSL 2 作为 hyper-v 虚拟机运行。 这是对 WSL 1 中使用的桥接网络适配器的更改,这意味着 WSL 2 使用网络地址转换 (NAT) 服务作为其虚拟网络,而不是将其桥接到主机网络接口卡 (NIC),从而生成唯一的将在重启时更改的 IP 地址。

总结

WSL 1 和 WSL 2 之间的主要区别在于,在托管 VM 内使用实际的 Linux 内核、支持完整的系统调用兼容性以及跨 Linux 和 Windows 操作系统的性能。

要安装并开始使用 WSL 2,请完成以下步骤:

启用“ 虚拟机平台(Virtual Machine Platform)”可选组件

使用命令行设置要由 WSL 2 支持的发行版

验证你的发行版使用的 WSL 版本

请注意,你需要运行 Windows 10 build 18917 或更高版本才能使用 WSL 2,并且你需要安装 WSL(可以在此处找到相关说明)。

启用“虚拟机平台”可选组件

以管理员身份打开 PowerShell 并运行:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

启用这些更改后,你需要重新启动计算机。

使用命令行设置要由 WSL 2 支持的发行版

在 PowerShell 中运行:

wsl --set-version <Distro> 2

并确保将 <Distro> 替换为发行版的实际名称。 (你可以使用以下命令找到它们:wsl -l)。 你也可以通过运行与上面相同的命令随时更改回 WSL 1,但将“2”替换为“1”。

此外,如果你想使 WSL 2 成为默认架构,可以使用以下命令执行此操作:

wsl --set-default-version 2

这将使你安装的任何新发行版初始化为 WSL 2 发行版。

完成验证发行版使用的 WSL 版本

要验证每个发行版使用的 WSL 版本,请使用以下命令:

wsl --list --verbose
或
wsl -l -v

你在上面选择的发行版现在应该在“version”列下显示“2”。 现在完成了,你随时可以开始使用你的 WSL 2 发行版了!

安装所选的 Linux 分发版

打开 Microsoft Store,并选择你偏好的 Linux 分发版。这里以Ubuntu为例:


点击进入并选择“获取”就可以。Windows会自动下载对应版本的Ubuntu镜像,全程不需要再进行其他操作。

首次启动WSL设置

在Microsoft Store找到已安装的Ubuntu,也可以在开始菜单中选择Ubuntu 20.04 LTS进行启动。

首次启动需要设置用户名

输入用户名后进行密码设置,设置好后可以看到Ubuntu启动成功

sudo passwd root

输入“su”来切换到root用户,当看到“$”变为“#”说明用户切换成功

在WSL2的系统里,Windows的磁盘,都被挂在了/mnt的目录下,后续可以安装docker等等,在此就不啰嗦了。

自己使用WSL2环境已经有多半年了,网上评论也各自不同,我自己总结了几个优点,如果这些优点正符合你目前的需求,那就可以入坑了。

一,显卡使用N卡的同学,做GPU深度学习框架的,可以解决过去在Linux系统中的驱动问题

二,WSL2子系统端口直接就可以被Windows访问,这个对于我来说相当方便,过去在VMware上实现端口互通,必须要配置端口转发,如果端口配置多了,真的叫你怀疑人生

三,调试一些应用程序,需要Linux环境。

目前使用中也有一些问题,不过都可以解决,有问题的可以留言交流。

PS:最后贴一张我正在使用的子系统Arch linux





版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

热门文章
  • 告诉老默,我想换系统了

    告诉老默,我想换系统了
       在电视剧狂飙中,高启强动手时,总会说一句,告诉老默,我想吃鱼了,现在言归正传,改变一下Windows和Linux的使用方式,也可以动手了。      在实际工作中,如果经常用Windows和Linux打交道,可能需要安装虚拟机来解决互相测试访问的问题,这样还面临D版的风险,那么问题来了,能不能不用虚拟机,用Linux的方式使用Windows,老实说这个需求在过去,比买等离子电视还难,但是最近几年,Windows已经做的相当不错了  下面来说说,Windows10,Win...
  • Windows系统鼠标右键菜单添加打开cmd终端

    Windows系统鼠标右键菜单添加打开cmd终端
      当要在某个文件夹下打开cmd终端时,如果没有右键菜单快捷方式,就得打开cmd后,使用cd方式进入 当前目录,很麻烦。 以下的脚本,可以帮你解决这个问题。第一步:新建一个txt文件,名字叫什么无所谓的 第二步:复制以下代码到刚才的txt文件中Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere] @="在此处打开命令窗口" "Icon"="cmd.ex...