Windows Subsystem for Linux——定制WSL2-Linux-Kernel


WSL2-Linux-Kernel在Windows Subsystem for Linux 2(WSL 2)中扮演着至关重要的角色,它作为WSL 2架构的核心组成部分,为用户在Windows环境下提供了一个完整的Linux内核环境。

什么是WSL2-Linux-Kernel

通过下图我们可以看到它的核心地位。
在这里插入图片描述

作用

  1. 支持Linux二进制文件执行
    系统调用兼容性:WSL2-Linux-Kernel提供了完整的系统调用兼容性,这使得用户可以在Windows上直接运行ELF64 Linux二进制文件。这些文件能够利用Linux内核的系统调用来执行多种功能,如文件访问、内存请求和进程创建等。
    应用兼容性增强:由于WSL 2使用真实的Linux内核,许多在WSL 1中因系统调用兼容性问题而无法运行的应用程序,现在可以在WSL 2中顺利运行。例如,Linux版本的Docker等应用程序就可以在WSL 2中运行。

  2. 提升文件系统性能
    优化文件存储:在WSL 2中,用户可以将Linux应用中经常访问的文件存储在Linux根文件系统中,从而享受更快的文件系统访问能力。这种优化避免了WSL 1中文件必须存储在C盘的限制,提高了文件访问的效率和灵活性。
    Windows与Linux文件互访:WSL 2还允许Windows应用直接访问Linux根文件系统,例如通过文件资源管理器进行文件操作。这种互访能力进一步增强了Windows和Linux之间的集成度。

  3. 改进网络支持
    虚拟机内运行:WSL 2通过虚拟化技术在虚拟机中运行Linux内核,这为用户提供了更加稳定和隔离的运行环境。然而,这也导致网络支持方面需要一些特殊的配置。
    网络应用访问:在WSL 2中,用户需要使用虚拟机的IP地址从Windows访问Linux网络应用,同时需要使用Windows主机的IP地址从Linux访问Windows网络应用。微软正在努力改进这一点,以便用户能够更方便地使用localhost访问网络应用。

  4. 提供定制化和灵活性
    内核更新与自定义:用户可以根据需要更新WSL2-Linux-Kernel的版本,甚至编译自定义的内核模块。这为高级用户和开发者提供了更多的定制化和灵活性。
    命令行工具:WSL 2还提供了一系列命令行工具来帮助用户控制和查看WSL版本和相关信息,如wsl --set-versionwsl --set-default-version等。

定制

我们通过《Windows Subsystem for Linux——安装多个相同的操作系统》中介绍的方法导出一台实例。

wsl --import Ubuntu-24.04-New-WSL-Kernel .\Ubuntu-24.04-New-WSL-Kernel .\Ubuntu-24.04-Base

然后登录

wsl -d Ubuntu-24.04-New-WSL-Kernel -u fangliang	

更新系统

sudo apt update
sudo apt -y upgrade

查看当前系统,以和之后进行对比

cd ~
uname -r

在这里插入图片描述

下载代码并解压

 wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/heads/linux-msft-wsl-6.6.y.zip .
sudo apt install unzip
unzip linux-msft-wsl-6.6.y.zip

安装依赖

sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev pkg-config libncurses-dev cpio

编译

cd WSL2-Linux-Kernel-linux-msft-wsl-6.6.y/
make -j$(nproc) KCONFIG_CONFIG=Microsoft/config-wsl

安装

sudo make modules_install headers_install
cp arch/x86/boot/bzImage /mnt/c/

启用

到Windows系统中,用户目录下创建一个叫.wslconfig的文件(%USERPROFILE%.wslconfig)
填入以下内容,kernel所指向的就是上一步编译结果在Windows上的副本

[wsl2]
kernel=C:\\bzImage

然后在Powershell中关闭WSL

wsl --shutdown

验证

再次登录系统

wsl -d Ubuntu-24.04-New-WSL-Kernel -u fangliang	

使用下面命令查看kernel版本,可以看到内核已经升级上来了。
在这里插入图片描述

参考资料

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

breaksoftware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值