【Windows 11】安装 Android子系统 和 Linux子系统

本文使用电脑系统:
在这里插入图片描述

一、安卓子系统

1.1 安装 WSA

主要就是安装一个名为:适用于Android的Windows子系统(WSA)的软件。

首先在电脑的设置里面:时间和语言——语言和地区里面把地区改为美国。

然后到微软商店搜索:Amazon AppStore

在这里插入图片描述

安装亚马逊应用商店的时候,会首先提示你安装前面说的WSA。如此,我们的目的就达成了。
在这里插入图片描述
至于亚马逊应用商店,不推荐使用了,他已经停止在国区的服务了。你可以注册一个美区的账号登录,自己去看(没必要)。

1.2 使用

现在,做一些设置之后就可以安装安卓APP了。

搜索栏搜Windows功能,在启用或关闭Windows功能里面,确保“虚拟机平台”、“Hyper-V”是勾选了的。同时,为了安装Linux子系统,这里把“适用于Linux的Windows子系统”也顺便勾选了。勾选之后,保存,重启电脑。(如果有关于WSL即Linux子系统的报错或提示,不要管)
在这里插入图片描述

打开WSA,在这里共享文件夹。目的:使安卓子系统可以访问Windows用户的文件,这样就可以安装我们下载到Windows的apk安装包了。
在这里插入图片描述

关闭WSA,去下载你要安装的软件的apk安装包,自己去网上搜就行,这种网站应该很多,我用的是:https://apkpure.com/cn/app(好像需要魔法)

把安apk装包保存到电脑的下载文件夹,或者用户文件夹下面的其他目录也可以。

打开WSA,点击系统——文件,来到这个界面:就是拿你Windows的部分存储空间模拟Android系统。
在这里插入图片描述

点击Windows,进去找到你保存的apk,单击,会弹出选项,选择安装即可。可能会报错,再试一次即可。

安装完成后就可以像使用其他Windows 软件一样打开了。

在这里插入图片描述


注:

现在先不要安装太多APP,等一下安装Linux子系统后可能会感染安装子系统,具体表现就是:启动安装APP的时候显示WSA已停止工作。 (我遇到了)

这时,在设置里面重置WSA就可以了,设置和安装的软件都会被清除,再重新走一遍流程就好了。
在这里插入图片描述

二、Linux子系统

2.1 安装 WSL 以及WSL 相关概念

在上一步,我们已勾选了“适用于Linux的Windows子系统”(WSL:Windows Subsystem for Linux)和“虚拟机平台”。

WSL 是一个为Windows 10和Windows Server 2019设计的兼容层,用于在Windows上运行Linux二进制可执行文件。以下是关于WSL的一些关键信息:

  1. 兼容性:WSL使您可以在Windows上运行Linux发行版的大多数命令行工具、应用程序和实用程序,而无需启动虚拟机或使用双启动。

  2. 集成:您可以在Windows和Linux之间无缝地移动文件,甚至可以在Windows的文件资源管理器中访问Linux文件。

  3. 性能:由于WSL是一个轻量级的兼容层,而不是完整的虚拟机,所以它的性能开销非常小

  4. 开发者友好:WSL对开发者特别有用,因为它允许他们在Windows上使用Linux的开发工具,并在同一台机器上测试跨平台应用程序。

  5. 版本:WSL有两个版本,WSL 1和WSL 2。WSL 2引入了一个完整的Linux内核,提供了更好的性能和完整的系统调用兼容性。


从“Windows功能”中启用的WSL版本是WSL 1

建议使用WSL 2,去微软商店搜索WSL,即可看到(微软官方的那个),安装它。

在这里插入图片描述

1 和 2的对比:

特性/方面 WSL1 WSL2
架构 兼容性层 完整的Linux内核
性能 文件系统性能较慢 尤其在使用Linux原生文件系统时更快
系统调用 有限支持 完全的系统调用兼容性
Docker支持 有限 原生支持
网络 与主机共享IP 使用自己的IP地址
文件系统 通过DrvFs访问Windows文件 通过9P协议访问Windows文件
启动时间 更快 由于VM启动而略慢(其实很快)
内存使用 较低 由于VM而使用更多内存
发行版支持 Microsoft Store中提供的所有发行版 Microsoft Store中提供的所有发行版 + 自定义发行版
内核更新 与Windows更新绑定 可以独立更新

2.2 安装一个Linux发行版

WSL 2 包括一个完整的 Linux 内核。这是 WSL 1 和 WSL 2 之间的主要区别之一。

  • WSL 1:它使用一个兼容性层来运行 Linux 二进制文件。这意味着它不包括一个真正的 Linux 内核,而是模拟 Linux 内核的行为。这使得 WSL 1 在某些情况下的性能不如 WSL 2,特别是在涉及文件系统操作时。

  • WSL 2:它使用一个真正的 Linux 内核,并运行在一个轻量级的虚拟机中。这提供了更好的性能和完整的 Linux 系统调用兼容性。微软为 WSL 2 提供了一个专门的 Linux 内核,但用户也可以自行更新或修改这个内核。

这个内核是作为一个单独的组件与 Windows 一起分发的,这意味着它可以独立于 Windows 更新进行更新。这为用户提供了更大的灵活性,允许他们更容易地获取内核的新版本和功能。


即使WSL 2包含了一个完整的Linux内核,用户仍然需要下载一个Linux发行版,原因如下:

  1. 用户空间与内核空间:Linux操作系统可以分为两个主要部分:内核和用户空间。内核负责与硬件交互、管理资源等,而用户空间包含了所有用户级应用程序和工具。WSL 2提供了Linux内核,但用户仍然需要一个Linux发行版来提供用户空间的组件。

  2. 发行版的选择:Linux有多个发行版,如Ubuntu、Debian、Fedora等,每个发行版都有其特定的软件包、配置和工具。用户可以根据自己的需求和喜好选择合适的发行版。

  3. 软件包管理:每个Linux发行版都有自己的软件包管理器,如Ubuntu的apt、Fedora的dnf等。这些工具允许用户轻松地安装、更新和管理软件。

  4. 环境配置:不同的Linux发行版可能会有不同的默认环境配置、服务和工具。下载特定的发行版允许用户获得他们期望的工作环境。

  5. 兼容性:某些应用程序或工具可能在特定的Linux发行版上运行得更好或只在特定的发行版上可用。

安装Linux发行版有多种方式,本文介绍最基本的2中。

2.21 从Microsoft Store 安装

直接去微软商店搜索你要安装的发行版即可,比如Ubuntu,然后选择你要的版本,下载。

下载完成后,双击,就会启动安装程序:期间需要你设置一个Linux用户

在这里插入图片描述

默认都是没有安装桌面的,启动方式有如下几种:

  • 运行(win r),wsl,回车(将启动默认的WSL发行版如果只安装了一个发行版,如Ubuntu,那么它就是默认的);
  • 运行,bash,回车(早期命令,不建议,可能会与Git Bash之类的冲突);
  • 运行,wt(Windows终端),新建一个Ubuntu的标签页。
    在这里插入图片描述

很多命令和命令行工作都是能正常使用的:
在这里插入图片描述

2.22 用命令安装

现在Powershell中运行wsl--help,你就可以看到wsl的命令,中文的,很好理解,我放在文章末尾了。

这里做个示例:

(1)获取可供安装的Linux发行版:wsl --list --online

以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed

(2)安装你需要的发行版: wsl --install Ubuntu-22.04

其他的就没什么好说的了。

2.23 拓展

  1. 查看wsl版本:wsl --version
    这个命令输出的是wsl的具体软件版本,并不是我们说的WSL1和WSL2,比如
    在这里插入图片描述

  2. 如果要查看使用的是WSL1还是WSL 2,可以使用:wsl --list --verbose
    在这里插入图片描述
    或者使用:wsl --status
    在这里插入图片描述
    或者在运行的Linux里面使用:uname -a查看
    在这里插入图片描述

  3. 设置WSL的默认版本:wsl --set-default-version 2
    这个命令将设置未来安装的所有Linux发行版的默认WSL版本。已经安装的发行版的版本不会受到影响
    如果要更改已安装的特定Linux发行版的版本,例:wsl --set-version Ubuntu 2

  4. 安装了多个Linux发行版,设置默认启动某一个发行版,示例:wsl --set-default Ubuntu

三、拓展

建议安装Linux-Windows双系统或者使用服务器。建议在电脑上运行各种软件的电脑版。

这种虚拟化技术,有时候可能并不稳定,可以用来娱乐、学习。

3.1 存储位置

在WSL中,Linux发行版的文件系统被存储为一个特殊的文件,通常称为“磁盘映像”文件。对于WSL 1和WSL 2,这些文件的存储位置略有不同:

  1. WSL 1

    • WSL 1的Linux发行版文件系统被存储在Windows文件系统中的一个隐藏文件夹中。通常,这个位置是:
      C:\Users\<YourUsername>\AppData\Local\Packages\<DistroPackageName>\LocalState\rootfs\
      
      其中<YourUsername>是Windows用户名,<DistroPackageName>是Linux发行版的包名,例如CanonicalGroupLimited.UbuntuonWindows对于Ubuntu。
  2. WSL 2

    • WSL 2使用了一个真正的Linux内核和一个轻量级的虚拟机。因此,它的文件系统被存储为一个VHDX文件,通常位于:
      C:\Users\<YourUsername>\AppData\Local\Packages\<DistroPackageName>\LocalState\ext4.vhdx
      

在这里插入图片描述

一般来说,这样安装的Ubuntu位于我们的C盘,包括内核、附加组件等等。我按照后,大概占用了20G左右(应该还包括其他内容)。


前面说过,WSL中的Linux要Windows是共享存储空间的,也就是说他会把Windows的各个磁盘、分区挂载到根目录下。当然了,他会拿出一部分存储空间为Linux系统服务,比如他会使用一个轻量性的虚拟机来运行Linux内核,这部分空间的文件系统是ext4(Linux主流文件系统)。

而原本的Windows的各个分区仍然保持他们原本的文件系统类型(比如NTFS),只不过采用“9P”协议,挂载到Linux根目录下。
在这里插入图片描述

3.2 虚拟化技术

Hyper-V是Microsoft提供的一种硬件虚拟化技术,允许用户在单个物理计算机上运行多个虚拟化的操作系统。它是Windows Server 2008中引入的,并且后来也被包括在某些Windows客户端版本中,如Windows 10和Windows 11的专业版和企业版。

以下是Hyper-V的一些关键特点和功能:

  1. 硬件虚拟化:Hyper-V使用硬件辅助虚拟化技术,这要求物理计算机的CPU支持虚拟化,并且这一功能已被启用。

  2. 隔离:每个虚拟机都在其自己的隔离环境中运行,这为每个虚拟机提供了操作系统级别的隔离。

  3. 灵活的资源管理:用户可以为每个虚拟机分配特定的CPU、内存、存储和网络资源。

  4. 虚拟硬盘:Hyper-V支持多种虚拟硬盘格式,如VHD和VHDX。

  5. 虚拟网络:Hyper-V允许创建和管理虚拟网络交换机,从而实现虚拟机之间以及虚拟机与外部网络之间的通信。

  6. 集成服务:这些是运行在虚拟机内部的特殊服务,用于提高性能和使虚拟机能够与Hyper-V宿主更好地交互。

  7. 快照和检查点:允许用户捕获虚拟机的当前状态,以便在将来需要时恢复到该状态。

  8. 与WSL 2的关系:虽然WSL 2使用了一个轻量级的虚拟机来运行Linux内核,但它不直接使用Hyper-V。然而,WSL 2和Hyper-V都依赖于相同的底层虚拟化技术。

  9. 兼容性:在启用Hyper-V后,某些其他的虚拟化解决方案可能无法正常工作,因为它们可能与Hyper-V冲突。

Hyper-V主要用于企业环境中的服务器虚拟化,但它也可以在桌面环境中用于开发、测试或学习目的。


虚拟机平台”(Virtual Machine Platform)是Windows的一个可选功能,它为Windows提供了一个轻量级的虚拟化解决方案,特别是为了支持WSL 2。

以下是“虚拟机平台”的一些关键点:

  1. WSL 2支持:与WSL 1不同,WSL 2使用了一个真正的Linux内核,并在轻量级的虚拟机上运行。为了支持这种虚拟化,Windows引入了“虚拟机平台”功能。

  2. 轻量级虚拟化:“虚拟机平台”提供了一个轻量级的虚拟化解决方案,与Hyper-V相比,它更为简单和高效。它专为运行WSL 2和其他轻量级虚拟化任务而设计。

  3. 与Hyper-V的关系:虽然“虚拟机平台”和Hyper-V都使用相同的底层虚拟化技术,但它们是为不同的用途设计的。可以同时启用“虚拟机平台”和Hyper-V。

  4. 启用/禁用:要使用WSL 2,需要启用“虚拟机平台”功能。这可以通过Windows功能设置或使用命令行工具完成。

  5. 硬件要求:“虚拟机平台”要求计算机支持硬件虚拟化,并且这一功能已被启用。

3.3 Windows 虚拟内存

同Linux的交换分区(文件)类似,Windows虚拟内存是一种内存管理功能,它使计算机可以使用硬盘空间作为RAM(随机存取存储器)。当计算机的物理RAM被使用完时,Windows会将部分数据移动到硬盘上的一个名为“页面文件”(或“交换空间”)的区域,从而释放RAM空间供其他程序使用

虚拟内存(页面文件)与Hyper-V和“虚拟机平台”是两个完全不同的概念,它们之间没有直接的依赖关系。
在这里插入图片描述
一般都是系统自动设置的,也可以自定义:
在这里插入图片描述

3.3 wsl 帮助文件

用法: wsl.exe [Argument] [Options...] [CommandLine]

运行 Linux 二进制文件的参数:

    如果未提供命令行,wsl.exe 将启动默认 shell。

    --exec, -e <CommandLine>
        不使用默认 Linux shell 执行指定的命令。

    --shell-type <Type>
        使用提供的 shell 类型执行指定的命令。

        类型:
            standard
                使用默认 Linux shell 执行指定的命令。

            login
                使用默认 Linux shell 作为登录 shell 执行指定的命令。

            none
                不使用默认 Linux shell 执行指定的命令。

    --
        按原样传递命令行的剩余部分。

选项:
    --cd <Directory>
        将指定的目录设置为当前工作目录。
         如果使用 ~,则将使用 Linux 用户的主路径。如果路径以
        / 字符开头,它将解释为绝对 Linux 路径。
        否则,该值必须为绝对 Windows 路径。

    --distribution, -d <Distro>
        运行指定的分发。

    --user, -u <UserName>
        以指定的用户身份运行。

    --system
        启动 shell 进行系统分发

用于管理适用于 Linux 的 Windows 子系统的参数:

    --help
        显示用法信息。

    --debug-shell
        打开 WSL2 调试 shell 以进行诊断。

    --event-viewer
        打开 Windows 事件查看器的应用视图。

    --install [Distro] [Options...]
        安装适用于 Linux 的 Windows 子系统分发。
        若要查看有效分发列表,请使用 'wsl.exe --list --online'。

        选项:
            --no-launch, -n
                安装后不要启动分发。

            --web-download
                从 Internet 而不是 Microsoft Store 下载分发。

            --no-distribution
                仅安装所需的可选组件,不安装分发。

    --mount <Disk>
        在所有 WSL 2 分发中附加并装载物理或虚拟磁盘。

        选项:
            --vhd
                指定 <Disk> 代表虚拟硬盘。

            --bare
                将磁盘附加到 WSL2 但不装载。

            --name <Name>
                为装入点使用自定义名称装载磁盘。

            --type <Type>
                装载磁盘时使用的文件系统,如果未指定则默认为 ext4。

            --options <Options>
                其他装载选项。

            --partition <Index>
                要装载的分区索引,如果未指定则默认为整个磁盘。

    --release-notes
        打开 Web 浏览器查看 WSL 发行说明页面。

    --set-default-version <Version>
        更改新分发的默认安装版本。

    --shutdown
        立即终止所有正在运行的分发和 WSL 2
        轻型虚拟机。

    --status
        显示适用于 Linux 的 Windows 子系统的状态。

    --unmount [Disk]
        从所有 WSL2 分发中卸载并分离一个磁盘。
        如果未使用参数调用,则卸载并分离所有磁盘。

    --update
        更新适用于 Linux 的 Windows 子系统程序包。

        选项:
            --web-download
                从 Internet 而不是 Microsoft Store 下载更新。

            --pre-release
                如果可用,则下载预发布版本。表示使用 --web-download。

    --version, -v
        显示版本信息。

用于管理适用于 Linux 的 Windows 子系统中的分发的参数:

    --export <Distro> <FileName> [Options]
        将分发导出为 tar 文件。
        对于标准输出,文件名可以是 "-"。

        选项:
            --vhd
                指定应导出为 .vhdx 文件的分发。

    --import <Distro> <InstallLocation> <FileName> [Options]
        将指定的 tar 导入为新分发。
        对于标准输入,文件名可以是 "-"。

        选项:
            --version <Version>
                指定要为新分发使用的版本。

            --vhd
                指定提供的文件为 .vhdx 文件,而不是 tar 文件。
                此操作将在指定的安装位置生成一个 .vhdx 文件的副本。

    --import-in-place <Distro> <FileName>
        将指定的 .vhdx 导入为一个新分发。
        此虚拟硬盘必须使用 ext4 文件系统类型格式化。

    --list, -l [Options]
        列出分发。

        选项:
            --all
                列出所有分发,包括
                目前正在安装或卸载的分发。

            --running
                仅列出目前正在运行的分发。

            --quiet, -q
                仅显示分发名称。

            --verbose, -v
                显示所有分发的相关详细信息。

            --online, -o
                使用 'wsl.exe --install' 显示可以安装的可用分发列表。

    --set-default, -s <Distro>
        将分发设置为默认分发。

    --set-version <Distro> <Version>
        更改指定分发的版本。

    --terminate, -t <Distro>
        终止指定分发。

    --unregister <Distro>
        注销分发并删除根文件系统。


~

猜你喜欢

转载自blog.csdn.net/weixin_43764974/article/details/132268834