0x1 Wsl总述
WSL是微软在win系统下实现的linux子系统,目标是在windows下运行linux系统(重点是系统),目前有两个实现方式:
- WSL1
- windows内核集成了针对linux二进制文件elf文件格式的解析功能
- 此外windows系统将linux内核api转换成对应的windows版本
- WSL2
- 在windows内核中完整的虚拟出linux内核
- 子系统中的api直接转给虚拟出的内核来操作
共同点/优点:
- 在不涉及硬件的情况下 wsl1/2 都可以完美运行/兼容任何linux程序
- 得益于windows的电源管理以及内核优化,性能比肩物理机
- windows的cmd指令中可以直接调用wsl中的linux系统指令
- 得益于优良的设计,wsl实际上是一个框架,根据本人之前撰写的半虚拟化大纲可以实现自定义任意linux系统
- windows系统和wsl系统都可以无缝访问对方的文件系统
不同点/缺点:
- 当某些linux指令涉及到驱动层面时需要借用wsl2才能完整实现
- wsl1的文件系统直接以文件夹的形式保存在windows系统中,可以随意修改
- wsl2的文件系统存在于vhdx虚拟磁盘中
总结:
- 一般情况下推荐使用wsl1,它各方面都由于wsl2
- 如果需要驱动层的支持,推荐直接使用虚拟机
- wsl2是给那些资深开发者使用的
0x2 安装Wsl
- 首先打卡控制面板,在里面打开 linux子系统的功能
- 接着打开windows商店,在里面搜索关键字
linux
- 根据需要安装需要的linux系统即可,安装完成后开始菜单中就会出现操作系统的终端
- 在这个系统中可以执行所有linux指令
0x3 奇技淫巧
- 到这里为止,wsl1就安装完成了,接下来介绍一些奇淫技巧
- wsl之所以碾压虚拟机就因为wsl和win实际上是一个系统
- 学完这两个技巧,你会爱上wsl
0x3.1 win下运行wsl指令
在win的任意路径下打开cmd窗口,可以利用bash
直接运行linux下的指令
bash -c "uname -a"
bash -c "ls"
0x3.2 wsl下运行win指令
cmd.exe /c dir
0x4 奇怪的姿势
- 看到这里你会产生一个奇怪的想法
win10是最好的linux发行版
没有之一 - wsl实际上是可以安装出图形界面,感兴趣的可以自己琢磨下,也就是一句话的事情
商店里安装的linux系统都是wsl1.wsl2需要用下面的指令手动转换(真没必要用wsl2)
wsl --set-version ubuntu 2
有的时候希望直接以root身份登录系统,直接用下面这个命令即可
ubuntu config --default-user root
kali config --default-user root
- 这里的
ubuntu
就是你安装的wsl系统