本文使用电脑系统:
文章目录
- 一、安卓子系统
- 1.1 安装 WSA
- 1.2 使用
- 二、Linux子系统
- 2.1 安装 WSL 以及WSL 相关概念
- 2.2 安装一个Linux发行版
- 2.21 从Microsoft Store 安装
- 2.22 用命令安装
- 2.23 拓展
- 三、拓展
- 3.1 存储位置
- 3.2 虚拟化技术
- 3.3 Windows 虚拟内存
- 3.3 wsl 帮助文件
一、安卓子系统
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的一些关键信息:
-
兼容性:WSL使您可以在Windows上运行Linux发行版的大多数命令行工具、应用程序和实用程序,而无需启动虚拟机或使用双启动。
-
集成:您可以在Windows和Linux之间无缝地移动文件,甚至可以在Windows的文件资源管理器中访问Linux文件。
-
性能:由于WSL是一个轻量级的兼容层,而不是完整的虚拟机,所以它的性能开销非常小。
-
开发者友好:WSL对开发者特别有用,因为它允许他们在Windows上使用Linux的开发工具,并在同一台机器上测试跨平台应用程序。
-
版本: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发行版,原因如下:
-
用户空间与内核空间:Linux操作系统可以分为两个主要部分:内核和用户空间。内核负责与硬件交互、管理资源等,而用户空间包含了所有用户级应用程序和工具。WSL 2提供了Linux内核,但用户仍然需要一个Linux发行版来提供用户空间的组件。
-
发行版的选择:Linux有多个发行版,如Ubuntu、Debian、Fedora等,每个发行版都有其特定的软件包、配置和工具。用户可以根据自己的需求和喜好选择合适的发行版。
-
软件包管理:每个Linux发行版都有自己的软件包管理器,如Ubuntu的
apt
、Fedora的dnf
等。这些工具允许用户轻松地安装、更新和管理软件。 -
环境配置:不同的Linux发行版可能会有不同的默认环境配置、服务和工具。下载特定的发行版允许用户获得他们期望的工作环境。
-
兼容性:某些应用程序或工具可能在特定的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 拓展
-
查看wsl版本:
wsl --version
这个命令输出的是wsl的具体软件版本,并不是我们说的WSL1和WSL2,比如
-
如果要查看使用的是WSL1还是WSL 2,可以使用:
wsl --list --verbose
或者使用:wsl --status
或者在运行的Linux里面使用:uname -a
查看
-
设置WSL的默认版本:
wsl --set-default-version 2
这个命令将设置未来安装的所有Linux发行版的默认WSL版本。已经安装的发行版的版本不会受到影响
如果要更改已安装的特定Linux发行版的版本,例:wsl --set-version Ubuntu 2
-
安装了多个Linux发行版,设置默认启动某一个发行版,示例:
wsl --set-default Ubuntu
三、拓展
建议安装Linux-Windows双系统或者使用服务器。建议在电脑上运行各种软件的电脑版。
这种虚拟化技术,有时候可能并不稳定,可以用来娱乐、学习。
3.1 存储位置
在WSL中,Linux发行版的文件系统被存储为一个特殊的文件,通常称为“磁盘映像”文件。对于WSL 1和WSL 2,这些文件的存储位置略有不同:
-
WSL 1:
- WSL 1的Linux发行版文件系统被存储在Windows文件系统中的一个隐藏文件夹中。通常,这个位置是:
其中C:\Users\<YourUsername>\AppData\Local\Packages\<DistroPackageName>\LocalState\rootfs\
<YourUsername>
是Windows用户名,<DistroPackageName>
是Linux发行版的包名,例如CanonicalGroupLimited.UbuntuonWindows
对于Ubuntu。
- WSL 1的Linux发行版文件系统被存储在Windows文件系统中的一个隐藏文件夹中。通常,这个位置是:
-
WSL 2:
- WSL 2使用了一个真正的Linux内核和一个轻量级的虚拟机。因此,它的文件系统被存储为一个VHDX文件,通常位于:
C:\Users\<YourUsername>\AppData\Local\Packages\<DistroPackageName>\LocalState\ext4.vhdx
- WSL 2使用了一个真正的Linux内核和一个轻量级的虚拟机。因此,它的文件系统被存储为一个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的一些关键特点和功能:
-
硬件虚拟化:Hyper-V使用硬件辅助虚拟化技术,这要求物理计算机的CPU支持虚拟化,并且这一功能已被启用。
-
隔离:每个虚拟机都在其自己的隔离环境中运行,这为每个虚拟机提供了操作系统级别的隔离。
-
灵活的资源管理:用户可以为每个虚拟机分配特定的CPU、内存、存储和网络资源。
-
虚拟硬盘:Hyper-V支持多种虚拟硬盘格式,如VHD和VHDX。
-
虚拟网络:Hyper-V允许创建和管理虚拟网络交换机,从而实现虚拟机之间以及虚拟机与外部网络之间的通信。
-
集成服务:这些是运行在虚拟机内部的特殊服务,用于提高性能和使虚拟机能够与Hyper-V宿主更好地交互。
-
快照和检查点:允许用户捕获虚拟机的当前状态,以便在将来需要时恢复到该状态。
-
与WSL 2的关系:虽然WSL 2使用了一个轻量级的虚拟机来运行Linux内核,但它不直接使用Hyper-V。然而,WSL 2和Hyper-V都依赖于相同的底层虚拟化技术。
-
兼容性:在启用Hyper-V后,某些其他的虚拟化解决方案可能无法正常工作,因为它们可能与Hyper-V冲突。
Hyper-V主要用于企业环境中的服务器虚拟化,但它也可以在桌面环境中用于开发、测试或学习目的。
“虚拟机平台”(Virtual Machine Platform)是Windows的一个可选功能,它为Windows提供了一个轻量级的虚拟化解决方案,特别是为了支持WSL 2。
以下是“虚拟机平台”的一些关键点:
-
WSL 2支持:与WSL 1不同,WSL 2使用了一个真正的Linux内核,并在轻量级的虚拟机上运行。为了支持这种虚拟化,Windows引入了“虚拟机平台”功能。
-
轻量级虚拟化:“虚拟机平台”提供了一个轻量级的虚拟化解决方案,与Hyper-V相比,它更为简单和高效。它专为运行WSL 2和其他轻量级虚拟化任务而设计。
-
与Hyper-V的关系:虽然“虚拟机平台”和Hyper-V都使用相同的底层虚拟化技术,但它们是为不同的用途设计的。可以同时启用“虚拟机平台”和Hyper-V。
-
启用/禁用:要使用WSL 2,需要启用“虚拟机平台”功能。这可以通过Windows功能设置或使用命令行工具完成。
-
硬件要求:“虚拟机平台”要求计算机支持硬件虚拟化,并且这一功能已被启用。
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>
注销分发并删除根文件系统。
把 永 远 爱 你 写 进 诗 的 结 尾 ~