• 【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的对比:

    特性/方面WSL1WSL2
    架构兼容性层完整的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 ' 安装。
    
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    (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\\AppData\Local\Packages\\LocalState\rootfs\
        
        • 1
        其中是Windows用户名,是Linux发行版的包名,例如CanonicalGroupLimited.UbuntuonWindows对于Ubuntu。
    2. WSL 2

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

    在这里插入图片描述

    一般来说,这样安装的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>
            注销分发并删除根文件系统。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175


    ~

  • 相关阅读:
    deeplearning4j使用vgg19图片向量比对springboot+es环境
    linux 网络 cat /proc/net/dev 查看测试网络丢包情况
    STM32的HAL库SPI操作(master 模式)-根据时序图配置SPI
    数学知识—不同数据范围求组合数,例题、思路、代码实现
    uni-app之android项目云打包
    CSS布局的三种方式
    CTFHub | Cookie注入,UA注入,Refer注入,过滤空格(利用hackbar插件)
    H3C 交换机恢复出厂方法
    【SpringBoot整合NoSql】-----ElasticSearch的安装与操作篇
    企业微信公众号怎么建立和运营?
  • 原文地址:https://blog.csdn.net/weixin_43764974/article/details/132268834