在这篇文章中,由于有交流经验,作者希望比较第一版和第二版的WSL,以“大声思考”的风格。
WSL 1 vs WSL 2,这让我很高兴
MSDN 源码
1.使用真正的Linux内核
包含真实的Linux内核增加了文件系统IO和系统调用。
一个特别优化的Linux内核使得WSL 2似乎比WSL 1.更快
在一些任务,根据微软测量使用时,如拆包档案,WSL 2比1 WSL快20倍,和快约5倍Git克隆和npm安装。
您可以花时间在这里和这里查看基准。
2.本机docker支持。
原则上,这样的机会仅出现在WSL 2上
。欢乐就此结束。
WSL 1 vs WSL 2,这并不令人满意
让我们从Microsoft的最新拐杖开始,以及让我个人不高兴的那种创新开始。
WSL的第一个版本没有使用真正的Linux内核,也没有使用虚拟化。WSL有点像Wine,但并不完全一样。
那里使用了一些特殊的层来将Linux程序的调用转换为该Shell。
当然,这减慢了一切,但是它也有优势。
例如,在任务管理器中可以看到在WSL 1上运行的所有程序,可以对这些任务进行优先级排序,并为其指定特定的内核以供执行。
同样,防病毒软件可以看到WSL第一版的所有进程,可以允许或拒绝它们对文件夹的访问,就像Windows的常规程序一样。
随着WSL 2的问世,该虚拟机中的特定进程不再可见,并且向文件夹写保护的功能也消失了。WSL 2具有绕过Windows Defender的文件系统访问权限。未来将带来哪些特定漏洞-我们将看到。但是WSL 2很有可能成为加密整个磁盘的攻击手段。
WSL 2中的网络连接也略有变化。第一个版本的WSL具有非常奇怪的网络堆栈实现,它挂在Windows本身使用的网络上,此外,可以在Netstat中检查WSL侦听端口,并使用常规Windows防火墙将其关闭。
现在,在WSL 2中,有一个专门用于WSL的单独的开关,因为现在它是一个单独的虚拟机,无聊。
基准测试
WSL使直接在Windows中使用来自WSL的命令成为可能。包括在PowerShell中。
作者使用神圣的Powershell对他最喜欢使用的WSL程序进行了测量。
所有基准测试均针对WSL1和WSL2使用Ubuntu 18.04 LTS。
杰基尔
网站生成。一通:
WSL1
WSL2
如您所见,当使用Jekyll构建站点时,WSL2远不及WSL1。1.5秒和9.6。结果有利于WSL1。有趣的是,WSL1始终需要Sudo来进行写访问,并且不想在没有root的情况下生成。
通话速度
在这里,我们测试了调用Shell和执行一个简单命令的速度。
Measure-Command {
[int]$i
do {
$i++
wsl.exe -e 'uname'
} until ($i -eq 20)
}
WSL1
WSL2
WSl2加载速度稍慢。这是完全不可察觉的,因为要进行20次发射的结果。
Git init和Mkdir
现在,让我们击败Git init和Mkdir。使用Mkdir创建一个文件夹,并使用WSL在该文件夹内进行Git初始化。
代码:
Measure-Command {
[int]$i
do {
Set-Location "C:\Users\user\Desktop\TestFolder"
$i++
$Foldername = Get-Random
wsl.exe ''mkdir $Foldername''
Set-Location $Foldername
wsl.exe ''git init''
} until ($i -eq 20)
}
WSL1
WSL2
结果是相同的。
WSL vs. 其他拐杖
那么为什么选择WSL?
WSL 2仍然保留了直接从Windows使用Linux命令的功能。直接从资源管理器字符串中调用Bash很方便。
当然,WSL使用您提供的默认操作系统环境,如果您习惯使用人工编辑器,则不必使用Mingw讨厌的Vim。
为什么绕过WSL更好?
如上所述,WSL1和/ proc / sys / fs中的Libnotify完全不在WSL1中,如上所述,第一个版本不使用相同的Linux内核,因此WSL 2必须解决此问题。
所有这些库都出现在WSL 2中,现在它们都可以在虚拟机管理程序上运行,但是问题也不少。创建新文件时有时甚至即使更改了旧文件也无法自动生成。
NPM的拥护者以及其他方面,仅此而已,就可以绕过WSL,使用针对Windows开发的解决方案。
WSL的Cool Lay Hack(Hack°͜ʖ͡°)
现在,让我们讨论安装WSL- Vlmcsd的唯一原因。
您是否仅出于科学实验的目的而以稍微不同的方式激活Windows的许可副本,但又不想使用从Internet下载的奇怪的KMS激活器?
感谢Microsoft,您可以使用WSL,这是一个快速指南。
链接到Github项目,链接到发行版。
在Ubuntu上捕捉
安装快照:
sudo apt更新
sudo apt install snapd
安装vlmcsd:
sudo snap install vlmcsd
使用ip addr,我们检查WSL挂起的IP地址并将其用作KMS服务器。这是snapstore上项目页面的链接。
WLM上的vlmcsd和Docket
可以通过Docker本身或WSL和Docker进行相同的操作。这是项目的链接,我无法更好地解释它。
从Windows方面:
这就是通过KMS激活Windows 10 PRO的样子。
-ipk-W269N slmgr.vbs WFGWX-YVC9B-4J6C9-T83GX
slmgr.vbs -skms 192.168.88.166
slmgr.vbs -ato
此安装方法仅适用于笑话,因为WSL实例在关闭窗口后始终会关闭,如在顺便说一下,目前,所有WSL都只适合开玩笑和Git。
作者希望您不要太无聊。