0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Windows 子系统助力 Linux 2.0

vinww特烦恼 2023-01-04 11:17 次阅读

长期以来,Linux 和 Windows 之间的互操作一直是系统操作员面临的挑战。在过去的 20 年里,系统管理员使用模拟器、虚拟机,甚至重新编译的 UNIX 二进制文件在 Windows 上运行,以便访问他们需要的工具来管理在不同于他们的工作站的操作系统上运行的应用程序和服务。在运行 Windows 作为其标准化桌面操作系统的企业中工作的系统管理员和安全工程师必须找到创造性的方法来管理他们的 Linux 系统,而不仅仅是与运行 Linux 的远程主机的久经考验的真正安全外壳 (SSH) 连接。在过去的几年中,Microsoft 转向更明确地支持 Linux(以及一般的开源工具)。它将 SSH 直接整合到 Windows 中,允许系统管理员远程连接到其他 Linux 系统而无需第三方工具。2020 年 4 月,微软宣布发布 Windows Subsystem for Linux 2.0(WSL 2),它直接从 Windows 工作站直接支持 Linux 的最新版本。

20 多年来,Microsoft 一直支持 *NIX 操作系统。1999 年,Microsoft 发布了 UNIX 服务 (SFU),其中包括一个 POSIX 兼容模拟器,能够运行专门为其编译的 UNIX 软件子集。2016 年,微软发布了 Windows Subsystem for Linux 1.0(WSL 1),它提供了一个 Linux“兼容”的内核接口。使用 WSL 1,您可以在安装 Windows 的同时安装流行的 Linux 发行版。体验很好,尽管性能有时比运行 Linux 的虚拟机 (VM) 慢,并且并非所有硬件功能和系统调用都已启用。但对于需要在其 Windows 工作站上可在本地广泛访问的 Linux 环境的用户而言,WSL 1 成为了一个可靠的选择。

Microsoft 更新 WSL 2 架构有两个明确的主要目标:提高文件系统性能和添加完整的 Linux 系统调用兼容性。与 WSL 1 不同,WSL 2 依赖于 Linux 环境和 Windows 主机之间的转换层,WSL 2 将使用实际的 Linux 内核,Microsoft 将其调整为专门与其实现架构一起运行。WSL 2 内核将位于 Windows 管理程序之上的虚拟机中,与 Windows 操作系统本身并行。WSL 2 使用比 WSL 1 更多的虚拟化技术,但它的架构与简单地在 Hyper-V 上作为 VM 运行 Linux 发行版有很大不同。

与 WSL 1 一样,WSL 2 将支持您可以并行安装和运行的多个发行版。但是,每个发行版都将在一个公共虚拟机中运行,以尽可能保持 VM 的轻量级和主机系统的高性能。当您终止 Linux 应用程序时,VM 也会停止。WSL 管理运行 Linux 内核的 VM 与 Windows 用户界面之间的通信。例如,WSL 将标准输入输出从 VM 重定向到主机系统。(这意味着当您从 WSL 2 中运行 Bash shell 时,您将在 Windows 工作站的新窗口中看到输出。)

将 WSL 迁移到 VM 架构需要 Microsoft 更改在 Windows 和 Linux 环境之间访问文件的方式。在 WSL 1 中,Windows 和 Linux 环境共享相同的操作系统,并且在两个环境之间访问文件是直接的,因为 Linux 环境可以访问 Windows 新技术文件系统 (NTFS)。但是,由于 WSL 2 作为虚拟机运行,Microsoft 需要一种不同的方法来使文件系统对每个环境可见。Microsoft 利用文件服务器技术(预览版使用 Plan 9/9P 协议)在 Windows 和 Linux 环境之间提供文件服务。根据发出请求的环境,Windows 或 Linux 环境都可以充当文件服务器或客户端。例如,如果你想从 Linux 访问存储在 Windows 上的文件,

尽管采用了这种新架构,微软仍强调要确保 WSL 2 用户体验尽可能保持无缝。例如,通过在环境之间重定向标准输入和输出并使用文件服务器技术,您可以启动 Windows 编辑器来更改 Linux 文件。同样,在 Linux 环境中,您可以从 Bash 启动 cmd.exe 或 PowerShell 以对 Linux 文件进行操作,尽管二进制文件是从 Windows 环境运行的。

要安装 WSL 2,请订阅 Windows Insider 预览程序并将您的测试 Windows 10 工作站至少升级到版本 18917 或更高版本。

在提升的 PowerShell 提示符下,运行命令:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

并重新启动您的工作站。

将 WSL 的默认版本设置为 2.0 版:

wsl --set-default-version 2

访问 Microsoft 商店并按照说明下载并安装所需的发行版。该商店包括许多流行的发行版,包括 Ubuntu、openSUSE、Debian 甚至安全发行版 Kali。

安装 kali 后,打开管理员 PowerShell 终端并通过运行以下命令确保 Kali 正在使用 WSL 2 运行:

wsl -l -v

要启动新安装的 Kali 发行版,请运行以下命令:

kali

Kali 将从这里开始,你可以像典型的 Linux 控制台一样操作,但现在可以使用 WSL 1 中不可用的一些工具。例如,在你更新和升级你的发行版之后,

sudo apt update

sudo apt upgrade

从这里,您可以下载并安装所需的程序,并且可能会对 WSL 2.0 提供的更广泛的兼容性感到惊喜。虽然官方发布日期尚未公布,但 WSL 2 已包含在 Windows 预览计划中。单击此处了解有关 WSL 的更多信息和详细信息,以及它是否可以很好地添加到您自己的工作站中。

结论

从您的主工作站访问您需要的所有工具可能会节省您的时间和精力,而 Microsoft 的 WSL2 使 Linux 管理员可以更轻松地从他们的 Windows 工作站访问他们的 Linux 工具。Microsoft 继续推进 WSL,为更多系统调用提供增强的性能和更广泛的支持,这意味着与系统管理员每天使用的工具具有更好的兼容性。WSL2 使得使用来自任一环境的常用工具在 Windows 和 Linux 环境中查找和编辑文件变得更加容易。

审核编辑hhy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206734
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
收藏 人收藏

    评论

    相关推荐

    WINDOWS系统有几个版本

    Windows系统自1985年发布以来,已经推出了多个版本。根据不同的分类方式,Windows系统的版本可以分为以下几类: 按照时间顺序。包括Win
    发表于 02-29 16:40

    linuxwindows的区别 linux系统一般用来干嘛

    LinuxWindows是两种不同的操作系统,有着不同的设计理念和用途。本文将对LinuxWindows的区别进行详细分析,并介绍
    的头像 发表于 02-05 14:06 328次阅读

    安装Linuxwindows在哪启动

    )是一个多操作系统引导加载程序,可以管理多个操作系统的启动。它允许用户在系统启动时选择要运行的操作系统。本文将详细介绍 Linux 安装后
    的头像 发表于 11-28 15:02 507次阅读

    Linux网络子系统的实现

    Linux网络子系统的分层 Linux网络子系统实现需要: l 支持不同的协议族 ( INET, INET6, UNIX, NETLINK...) l 支持不同的网络设备 l 支持统一
    的头像 发表于 11-11 11:25 584次阅读
    <b class='flag-5'>Linux</b>网络<b class='flag-5'>子系统</b>的实现

    linuxwindows的区别

    LinuxWindows是两种不同的操作系统,它们之间的区别包括: 源代码开放性:Linux是开源的,意味着任何人都可以获取并修改其源代码,这为开发者提供了很大的便利性。而
    的头像 发表于 11-08 11:08 2454次阅读

    Windows11上Linux安装教程

    超简单,不安装虚拟机,Windows11运行Linux
    发表于 10-24 15:11 379次阅读
    <b class='flag-5'>Windows</b>11上<b class='flag-5'>Linux</b>安装教程

    Linux内核之LED子系统(二)

    这里说一说LED子系统的一些核心源代码文件,是如何实现LED子系统
    发表于 10-02 16:55 277次阅读
    <b class='flag-5'>Linux</b>内核之LED<b class='flag-5'>子系统</b>(二)

    Linux内核之LED子系统(一)

    Linux内核的LED子系统是一种重要的框架,用于管理和控制设备上的LED指示灯。在嵌入式系统和物联网设备中,LED子系统发挥着关键作用,为开发者提供了一种统一的方式来控制和定制LED
    发表于 10-02 16:53 282次阅读
    <b class='flag-5'>Linux</b>内核之LED<b class='flag-5'>子系统</b>(一)

    Linux clock子系统是什么

    clock子系统 Linux的时钟子系统由CCF(common clock framework)框架管理, CCF向上给用户提供了通用的时钟接口,向下给驱动开发者提供硬件操作的接口 。各结构体关系
    的头像 发表于 09-27 14:25 379次阅读
    <b class='flag-5'>Linux</b> clock<b class='flag-5'>子系统</b>是什么

    Linux reset子系统有什么功能

    Linux reset子系统 reset子系统非常简单,与clock子系统非常类似,但在驱动实现上,reset驱动更简单。 因为clock驱动主要是时钟的实现,涉及到固定时钟、分频、门
    的头像 发表于 09-27 14:06 357次阅读
    <b class='flag-5'>Linux</b> reset<b class='flag-5'>子系统</b>有什么功能

    Linux中内存管理子系统开发必知的3个结构概念

    Linux中内存管理子系统使用节点(node)、区域(zone)和页(page)三级结构描述物理内存。
    的头像 发表于 08-28 09:34 575次阅读
    <b class='flag-5'>Linux</b>中内存管理<b class='flag-5'>子系统</b>开发必知的3个结构概念

    WindowsLinux为什么可以彼此ping的通呢?

    为什么 VMware 会给我多创建了两个网络呢?WindowsLinux 为什么可以彼此 ping 的通呢
    的头像 发表于 07-07 09:39 983次阅读
    <b class='flag-5'>Windows</b>和<b class='flag-5'>Linux</b>为什么可以彼此ping的通呢?

    Linux LED子系统详解

    Linux LED子系统详解
    的头像 发表于 06-10 10:37 985次阅读
    <b class='flag-5'>Linux</b> LED<b class='flag-5'>子系统</b>详解

    一文搞懂Linux pinctrl/gpio子系统

    GPIO的寄存器操作。分享给刚刚接触外设bsp的小伙伴们。当然后面有时间还会分享GPIO子系统框架和pinctrl子系统框架,先知道黑盒怎么使用,然后咱再打开仔细瞅瞅。
    发表于 06-09 09:52 1519次阅读

    获取Linux办法

    子系统(WSL):WSL全称Windows Subsystem for Linux,几乎所有的Linux功能在WSL中均有包含(不过目前WSL不支持Ubuntu的桌面
    的头像 发表于 05-22 14:39 502次阅读
    获取<b class='flag-5'>Linux</b>办法