Windows Subsystem for Linux(WSL)是微软推出的一种兼容层,用于在 Windows 10 及更高版本上运行 Linux 二进制可执行文件(ELF 格式)。WSL 提供了一个运行完整 Linux 用户空间的环境,而无需启动虚拟机或双启动系统。下面是 WSL 的详细介绍及其优缺点。
WSL 简介
WSL 允许用户在 Windows 上运行 GNU/Linux 环境,包括大多数命令行工具、实用程序和应用程序。WSL 包括两种版本:WSL 1 和 WSL 2。
WSL 1:这是 WSL 的初始版本,使用适配的 Linux 兼容内核接口实现。WSL 2:这是一个较新的版本,使用真正的 Linux 内核在轻量级虚拟机中运行,提供更高的性能和完全的系统调用兼容性。WSL 1 vs WSL 2
特性 | WSL 1 | WSL 2 |
---|---|---|
内核实现 | 适配的 Linux 兼容内核接口 | 真正的 Linux 内核 |
文件系统性能 | Windows 和 WSL 文件系统共享性能 | 更快的文件系统性能 |
系统调用兼容性 | 部分 Linux 系统调用兼容 | 完全的 Linux 系统调用兼容 |
启动时间 | 更快 | 略慢于 WSL 1 |
内存占用 | 更少 | 由于轻量级虚拟机,略多 |
Docker 支持 | 需要额外配置 | 原生支持 |
WSL 的优点
开发环境一致性:开发人员可以在同一台计算机上同时运行 Windows 和 Linux 应用程序,无需重启或虚拟化软件。轻量级:相比传统的虚拟机,WSL 更轻量级,占用的系统资源更少。快速启动:WSL 实例启动速度极快,几乎瞬间响应。文件系统集成:Windows 文件系统和 WSL 文件系统无缝集成,允许在两个环境之间轻松共享文件。工具和包管理:可以使用 Linux 发行版的包管理工具(如 apt、yum 等)来安装和管理软件包。广泛支持:支持多种 Linux 发行版,包括 Ubuntu、Debian、Fedora 等,用户可以通过 Microsoft Store 安装这些发行版。Docker 支持(WSL 2):WSL 2 提供了对 Docker 的原生支持,使在 Windows 上运行容器变得更加简单。WSL 的缺点
图形界面支持有限:尽管可以通过一些配置在 WSL 上运行 Linux 图形应用程序,但支持和性能都不如原生 Linux 环境。硬件访问限制:WSL 对硬件访问有限,例如 USB 设备、GPU 等,尽管 WSL 2 提供了一些改进(如 GPU 加速支持),但仍不如原生 Linux 直接访问硬件。网络性能:由于 WSL 2 使用虚拟化技术,网络性能可能不如原生 Linux,特别是在高负载情况下。不完全替代虚拟机:尽管 WSL 可以处理大多数开发任务,但对于需要完全隔离的环境或复杂的虚拟网络配置,传统虚拟机可能更合适。文件系统性能(WSL 1):在 WSL 1 中,访问 Windows 文件系统的性能较差,特别是对于大量小文件的操作。安装
在 Windows Subsystem for Linux (WSL)上安装和配置 Linux 系统可以帮助你在 Windows 环境中使用 Linux 工具和开发环境。默认是安装在了 C 盘。以下是详细的步骤,包括如何将 WSL 安装在 D 盘并安装 Ubuntu 等系统:
1. 安装 WSL
1.1 启用 WSL 功能
打开 PowerShell(以管理员身份运行):
右键点击开始菜单中的 PowerShell 图标,选择“以管理员身份运行”。启用 WSL:
wsl --install
这个命令会自动启用 WSL 及相关功能,并下载并安装最新的 Linux 内核。如果你使用的是 Windows 10,可能需要手动启用 WSL 功能。
如果你需要手动启用 WSL 功能(仅 Windows 10):
在 PowerShell 中执行以下命令:
dism.exe /online /enable-feature /featurename: Microsoft-Windows-Subsystem-Linux /all /norestart
启用虚拟机平台功能(WSL 2 需要):
dism.exe /online /enable-feature /featurename: VirtualMachinePlatform /all /norestart
重启计算机:
执行完以上命令后,重新启动计算机以完成功能启用。1.2 安装 WSL 2(推荐)
下载并安装最新的 WSL 2 Linux 内核更新包:
前往 Microsoft 官方网站下载并安装最新的更新包。设置 WSL 2 为默认版本:
打开 PowerShell(以管理员身份运行),输入以下命令:
wsl --set-default-version 2
2. 安装 Linux 发行版
2.1 从 Microsoft Store 安装
打开 Microsoft Store: 在开始菜单中搜索并打开“Microsoft Store”。 搜索并安装 Linux 发行版: 在搜索栏中输入“Ubuntu”或你选择的其他发行版名称(例如 Debian, Kali Linux 等)。选择发行版并点击“安装”。2.2 从命令行安装
列出可用的发行版:
wsl --list --online
安装选择的发行版:
假设你选择安装 Ubuntu:
wsl --install -d Ubuntu
3. 配置 WSL 存储位置(安装在 D 盘)
3.1 移动 WSL 发行版到 D 盘
导出现有发行版:
假设你已经安装了 Ubuntu,可以使用以下命令导出发行版:
wsl --export Ubuntu D:\WSL\Ubuntu.tar
卸载现有发行版:
wsl --unregister Ubuntu
创建新的发行版目录:
在 D 盘上创建一个目录来存储 WSL 的文件: 使用文件资源管理器或命令行创建目录,例如D:\WSL\Ubuntu
。 导入发行版到 D 盘:
wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\Ubuntu.tar
4. 配置和使用 Linux 发行版
启动 Linux 发行版:
在开始菜单中找到你安装的 Linux 发行版(如 Ubuntu),点击启动。进行初始设置:
初次启动时,会提示你创建一个用户帐户和密码。按照提示完成设置。更新和升级系统:
在 Linux 终端中,运行以下命令更新系统:
sudo apt updatesudo apt upgrade
5. 高级设置(可选)
5.1 设置默认用户
设置默认用户:
可以设置一个默认用户,以便每次启动 WSL 时不需要重新登录:
wsl --set-default-user <username>
5.2 自定义 WSL 配置
修改 .wslconfig
文件:
可以创建或编辑位于用户主目录下的
.wslconfig
文件来调整 WSL 的配置,如内存限制、处理器数量等:
文件路径:C:\Users\<YourUsername>\.wslconfig
示例内容:
[wsl2]memory=4GBprocessors=2
总结
以上步骤涵盖了从安装 WSL 到将其配置在 D 盘的整个过程。确保按照步骤执行,特别是在移动发行版时,要先导出和卸载再重新导入,以避免数据丢失。
项目
使用 WSL 之后提高了 qps 的项目,纯 c 语言写的 kv 存储引擎,可以点击该文字跳转到 github 上:kv存储引擎项目链接
项目开源,介绍详细,记得给颗星星 star 哦~
项目导入WSL
在本地电脑安装了WSL(Windows Subsystem for Linux)之后,可以通过多种方法将项目代码导入到WSL环境中。以下是几种常用的方法:
方法 1:使用Windows文件系统
WSL可以直接访问Windows文件系统,您可以将项目代码保存在Windows文件系统中的任意位置,然后从WSL中访问。
将项目代码放在Windows文件系统中: 将项目代码放在Windows系统的任意文件夹中,例如C:\Projects\MyProject
。
从WSL访问该文件夹: 在WSL中,使用/mnt/c
来访问C盘。例如,打开WSL终端并导航到项目文件夹:
cd /mnt/c/Projects/MyProject
方法 2:使用VS Code远程开发扩展
VS Code提供了一个名为Remote - WSL的扩展,可以在WSL环境中轻松编辑和管理项目代码。
安装VS Code和Remote - WSL扩展: 从VS Code官网下载并安装VS Code,然后在VS Code中安装Remote - WSL扩展。
在WSL中打开项目:
打开WSL终端并导航到项目文件夹:
cd /path/to/your/project
在项目文件夹中运行以下命令以启动VS Code并打开该项目:
code .
方法 3:使用Git进行代码管理
如果您的项目托管在Git仓库中,可以使用Git将项目克隆到WSL环境中。
在WSL中安装Git(如果尚未安装):
sudo apt-get updatesudo apt-get install git
克隆Git仓库: 在WSL终端中导航到目标目录并克隆项目代码:
cd /path/to/your/directorygit clone https://github.com/yourusername/yourproject.git
方法 4:使用SCP或SFTP传输文件
如果您的项目代码在远程服务器上,可以使用SCP或SFTP将文件传输到WSL环境中。
在WSL中使用SCP传输文件:
scp username@remotehost:/path/to/remote/project /path/to/local/directory
在WSL中使用SFTP传输文件:
sftp username@remotehostsftp> get /path/to/remote/project /path/to/local/directory
方法 5:使用WSL共享文件夹
WSL和Windows之间可以使用共享文件夹来传输文件。
在Windows中创建一个共享文件夹: 将项目代码放在一个文件夹中,例如C:\Projects\MyProject
。
在WSL中创建一个符号链接: 在WSL终端中创建一个指向Windows文件夹的符号链接:
ln -s /mnt/c/Projects/MyProject /path/to/your/symlink
通过上述方法,您可以将项目代码轻松导入到WSL环境中,从而在Linux环境中进行开发和测试。