wsl 能与新的原生 ubuntu 内核兼容吗?

wsl 能与新的原生 ubuntu 内核兼容吗?

目前我在 21.10 发行版中的 wsl2 下,内核是5.10.60.1-microsoft-standard-WSL2

如果我继续安装其中一个主流 ubuntu 内核那里?

答案1

在最好的情况下,你会得到一个极度未优化的 WSL 系统。在最坏的情况下,它根本无法启动。

我确实半心半意地尝试过5.15WSL 下的内核:

  • 下载并安装.deb
  • 将其复制vmlinuz-5.15.0-051500-generic到我的 Windows 用户配置文件中的一个目录中
  • 编辑我的%userprofile%\.wslconfig添加适当的内核指针
  • wsl --shutdown

尝试启动我的任何 WSL 实例(任何发行版)失败。没有错误,只是锁定了命令,wsl直到我wsl --shutdown在另一个 PowerShell 会话中发出另一个命令。

我说“半心半意”,是因为我可以更进一步。看看现有的 WSL 内核,它们似乎没有压缩。所以我可以尝试解压 Ubuntu 内核

但无论如何,我对它能否带来回报(或是否非常有用)并不抱太大希望。

请注意,微软确实维护自己的WSL2 内核存储库需要进行修改以针对 WSL2 进行优化。至少,.config与 Ubuntu 原版内核配置非常不同。出于好奇,我花了一些时间扫描了其中的一个vimdiff,但我绝不是内核配置方面的专家。

诸如虚拟化之类的功能已在原版 Ubuntu 内核中启用,因此这不是问题。但有一件事确实引起了我的注意,那就是原版 Ubuntu 内核当然需要支持电源管理的物理或虚拟“硬件”。WSL 则不支持。没有“开机”、“挂起”等功能。如果电源管理子系统 (ACPI) 在 WSL 下使系统进入睡眠状态,则无法“唤醒”系统。

两者之间还有大量其他差异。我确信其中许多是 WSL 端的优化(甚至是要求)。

顺便说一句,似乎微软提供的内核的一个稍新的版本。上周发布了linux-msft-wsl-5.10.74.3。它应该很快就能用了wsl --update(或通过 Windows 自动更新)。或者您可以从提供的源下载并自行编译。

相关内容