什么是WSL?

适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称WSL)是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。

WSL可以做什么?

  • 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
    • 工具:vim、emacs、tmux
    • 语言:NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。
    • 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。
  • 使用自己的 GNU/Linux 分发包管理器安装其他软件。
  • 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
  • 在 Windows 上调用 GNU/Linux 应用程序。

什么是 WSL 2?

WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。

这一新的体系结构改变了这些 Linux 二进制文件与Windows 和计算机硬件进行交互的方式,但仍然提供与 WSL 1(当前广泛可用的版本)中相同的用户体验。

单个 Linux 分发版可以在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你可以并行运行 WSL 1 和 WSL 2 分发版。 WSL 2 使用全新的体系结构,该体系结构受益于运行真正的 Linux 内核。

只有 Windows 10 版本 2004 的内部版本 19041 或更高版本中才提供 WSL 2

WSL 面向哪些用户?

WSL 是主要面向开发人员的工具 – 尤其是 Web 开发人员,以及处理和使用开源项目的开发人员。 想要/需要使用 Bash、常用 Linux 工具(sed、awk 等)和许多 Linux 优先工具(Ruby、Python 等)的用户可以通过 WSL 在 Windows 上使用其工具链。

WSL 支持哪些处理器?

WSL 支持 x64 和 ARM CPU。

在 WSL 中是否可以运行所有 Linux 应用?

不是! WSL 工具的目的是使用户能够视需要在 Windows 上运行 Bash 和核心 Linux 命令行工具。
WSL 并不旨在支持 GUI 桌面或应用程序(例如 Gnome、KDE 等)。
此外,尽管你可以运行许多流行的服务器应用程序(例如 Redis),但我们不建议使用 WSL 来托管生产服务 – Microsoft 提供多种解决方案用于在 Azure、Hyper-V 和 Docker 中运行生产 Linux 工作负荷。

比较 WSL 1 和 WSL 2

功能 WSL 1 WSL 2
Windows 和 Linux 之间的集成
启动时间短
占用的资源量少
可以与当前版本的 VMWare 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能

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

  • 你的项目文件必须存储在 Windows 文件系统中。
    如果你将使用 WSL Linux 分发版来访问 Windows 文件系统上的项目文件,并且这些文件无法存储在 Linux 文件系统上,那么,通过使用 WSL 1,你将跨 OS 文件系统实现更快的性能。
  • 一个项目要求对相同的文件使用 Windows 和 Linux 工具进行交叉编译。
    在 WSL 1 中,跨 Windows 和 Linux 操作系统的文件性能比 WSL 2 中更快,因此如果要使用 Windows 应用程序来访问 Linux 文件,则目前通过 WSL 1 可实现更快的性能。

WSL 2 体系结构

传统的 VM 体验可能启动速度慢,是独立的,消耗大量资源,需要你花费时间进行管理。 WSL 2 没有这些属性。
WSL 2 有 WSL 1 的优点,包括 Windows 和 Linux 之间的无缝集成,启动时间短,资源占用量少,并且无需 VM 配置或管理。 虽然 WSL 2 确实使用 VM,但 VM 是在幕后管理和运行的,因此你将具有与 WSL 1 相同的用户体验。

完整的 Linux 内核

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

提升了文件 IO 性能

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

WSL 2 在启动时使用的内存量更少

WSL 2 在实际 Linux 内核上使用轻量级实用工具 VM,内存占用量很小。 该实用工具将在启动时分配虚拟地址支持的内存。 它已经过配置,在启动时使用的内存占比小于 WSL 1 所需的内存占比。

安装WSL

  1. 进入Windows store 选择需要的版本进行下载

  2. 进入Windows 应用设置,启动WSL功能



  3. 重启电脑后,进入Windows 10启动菜单,找到Ubuntu双击打开。第一次运行时会等待一会儿设置环境,第一次运行Ubuntu会提示设置用户和密码。如果想使用root权限,可以输入sudo passwd root,输入之前设置的用户的密码,再为root设置密码。

玩转WSL 2(一)——WSL的介绍和安装相关推荐

  1. Windows10玩转Linux子系统(WSL)

    Windows10玩转Linux子系统(WSL) WSL简介 WSL 是 Windows Subsystem for Linux 的缩写,意思是 linux 版的 window 子系统. Linux ...

  2. 简述WSL 2安装和WSL 1转换为WSL 2

    WSL 2 是 WSL 中体系结构的新版本,它更改了 Linux 发行版与 Windows 进行交互的方式. WSL 2 的主要目标是提高文件系统性能并增加完全的系统调用兼容性. 每个 Linux 发 ...

  3. Bash on Windows 抢鲜测试 -- 介绍及安装

    前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...

  4. ActiveMQ简单介绍以及安装

    ActiveMQ简单介绍以及安装   现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS ...

  5. 【javaWeb微服务架构项目——乐优商城day07】——Elasticsearch介绍和安装及使用(安装kibana,安装ik分词器,Spring Data Elasticsearch,高级查询)

    文章目录 0.学习目标 1.Elasticsearch介绍和安装 1.1.简介 1.1.1.Elastic 1.1.2.Elasticsearch 1.1.3.版本 1.2.安装和配置 1.2.1.新 ...

  6. 对初学者友好的Git和Github使用指南之介绍和安装篇

    本文首发在个人博客:ladyzero.cool,欢迎前往阅读,阅读体验更佳. 原文地址:对初学者友好的Git和Github使用指南之介绍和安装篇 前言 本文将初步介绍Github和Git是什么,以及介 ...

  7. Scrapy-Splash的介绍、安装以及实例

    scrapy-splash的介绍   在前面的博客中,我们已经见识到了Scrapy的强大之处.但是,Scrapy也有其不足之处,即Scrapy没有JS engine, 因此它无法爬取JavaScrip ...

  8. Springlake-01 介绍功能安装

    Springlake-01 介绍&功能&安装 1. 简介与功能 1)Springlake 是一个企业内容平台SECP 2)是一个可配置的系统,80%内容可以配置 3)允许建立和配置垂直 ...

  9. Kafka系列一之架构介绍和安装

    Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...

  10. SharpWebMail介绍和安装(转)

    SharpWebMail介绍和安装 什么是:SharpWebMail SharpWebMail是一款C#开发的基于WEB应用程序的多语言的WEB邮件服务.它允许我们使用SMTP或IMAP服务来完成发送 ...

最新文章

  1. 新浪短链api java_php调用新浪短链接API的方法
  2. java 模块分离部署_GitHub - yangjiu/Mis: 模块接口服务,如何在一个模块内维护其对外暴露的接口(包括打包发布),而不是把接口和接口实现分离到两个不同的模块?...
  3. 华为防火墙查看日志命令_防火墙接入互联网方式,到底有哪些呢?5分钟学会防火墙入网...
  4. 文献学习(part65)--稳健主成分聚类方法的构建及其比较研究
  5. JStorm2.1.1集群的安装和使用
  6. NuGet是什么?理解与使用(下)
  7. leetcode9 回文数
  8. LintCode: Median of two Sorted Arrays
  9. m1芯片Mac安装jekyll+搭建GitHub pages个人博客站点
  10. python字典数据类型笔记_python笔记2-数据类型:元组、字典常用操作
  11. 普联技术java工程师_【普联技术(TP-LINK)工资】java开发工程师待遇-看准网
  12. Nisus Writer Pro for Mac拆分视图和注释技巧
  13. manjaro安装微软雅黑字体_manjaro设置字体_Manjaro 20.03字体美化的2.5个级别
  14. Java的责任链模式
  15. 公司官网建站笔记(四):从阿里云将域名转出,并将域名转入腾讯云
  16. python二进制转十进制函数_python基础教程之python基础教程之python进制转换(二进制、十进制...
  17. 图像二值化方法及适用场景分析(OTSU Trangle 自适应阈值分割)
  18. 聊聊编程中的 “魔数”
  19. app 与服务端通讯方式概览
  20. 美国签证申请中的行政审查制度(图)

热门文章

  1. 计算机应用情话,情话大全浪漫情话 最美的情话莫过于我也爱你
  2. 我的MBTI职业性格测试
  3. NIO和BIO的比较
  4. 3.1 电压频率变换器
  5. 怎么下载b站的弹幕(danmuku)
  6. uibot和按键精灵区别_uibot和按键精灵有什么区别?
  7. 简洁明了的深度优先遍历算法
  8. 推荐 10 款让你的 Chrome 浏览器功能更强大的插件
  9. 连续值特征分桶区间设置
  10. 论文阅读|Embodied Hands: Modeling and Capturing Hands and Bodies Together