很长一段时间以来,双系统是我惟一的解决方案。
我仍然在用的是一台苹果电脑,它几乎可以做任何事:开发、写议案、创作音乐等。但它也不是十全十美的,我很担心供应商被锁定,也害怕自己过分依赖苹果的奇思妙想如何安装双系统linux,为此我也在寻求新的解决方案。
笔者着手搭建了一个机器学习工作站;出众的CPU、大量的RAM和性能绝佳的GPU等等。不仅要用MicrosoftOffice写议案,我选择用的操作系统几乎都是Ubuntu。
Officeonline还没有面市,而LibreOffice很糟糕。为此,我的解决方案是安装Ubuntu和Windows10双系统。从苹果系统切换到Ubuntu十分自由,并且选择建立个人PC几乎没有界限。
在无数次系统切换以后,WSL出现了。笔者开始将工作流程的一部份移到Windows,但还是有好多功能缺位。但是,WSL2虽然改变了游戏规则。本文将为你展示这种奇妙的改变。
哪些是WSL2
WSL2是WSL中体系结构的新版本小型linux系统,它修改了Linux与Windows进行交互的形式。
该版本增强了文件系统性能,降低了完全的系统调用兼容性。其实,Linux分发版可以作为WSL1或WSL2运行,你可以自行选择,而且可以随时在它们之间进行切换。
WSL2是对基础体系结构的一次重大改建,它使用虚拟化技术和Linux内核来实现其新功能。谷歌处理了繁杂的细节,这样你就可以专注于重要的事情了。
安装
谷歌承诺将在不久的将来会为WSL2提供流畅的安装体验,而且还能通过Windows更新来更新Linux内核。但目前的安装过程有点复杂,但也毋须太过担忧。
示例少将在Windows10上安装Ubuntu20.04,但显然对于谷歌商店中的任何分发版来说,安装过程都是一样的。首先,启用“适用于Linux的Windows子系统”可选功能。以管理员身分打开PowerShell并运行:
dism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux/all/norestart
接出来,将系统更新到WSL2,必须满足以下条件:Windows10已更新到版本2004;在BIOS设置中启用Intel的“虚拟机平台”。之后,以管理员身分启动PowerShell并运行:
dism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all/norestart
接着重新启动计算机深度linux,以完成WSL安装并更新到WSL2。之后,在安装新发行版时,将WSL2设置为默认版本。以管理员身分打开PowerShell并运行以下命令,以将WSL2设置为默认版本:
wsl--set-default-version2
运行该命令后可能会看见以下命令:
WSL2requiresanupdatetoitskernelcomponent.Forinformationpleasevisit
根据链接从该页安装,在计算机上安装一个Linux内核,供WSL2使用。安装内核后,再度运行该命令,该命令成功完成。
最后,安装所选Linux分发版。打开谷歌商店,搜索Ubuntu20.04LTS。安装完成后,在开始菜单上找到一个新的Ubuntu应用,启动并根据说明完成安装。
检测所选Linux分发版是否设置为WSL2,请运行wsl--list–verbose。若所选Linux分发版受WSL1支持,请运行wsl--set-version《distributionname》《versionNumber》。
完成啦!这样就可以有一个完整的Ubuntu分发版在Windows10中运行了。
开发人员工作站
Ubuntu早已打算好,如今你可以安装任何所需程序了。假如你是数据科学家,可以安装最新的Anaconda发行版;假如你是后端工程师,则可以安装angular和npm等。
有两个工具笔者想重点讲一下:VisualStudioCode和Docker+Kubernetes。
VisualStudioCode
VisualStudioCode是许多开发人员选择的集成开发环境(IDE),如今已启用WSL2,VSCode的远程开发扩充包(RemoteDevelopment)绝对必不可少。
此插件支持WSL2、容器映像甚至通过SSH的远程VM上的源代码进行远程开发。为此,如今可以在受WSL2支持的Linux分发版中创建项目文件夹,并使用安装在Windows10上的VisualStudioCode编辑器作为IDE。
它的功能包括:全语言支持IntelliSense,git集成,VisualStudioCode扩充,调试器和终端。
Docker+Kubernetes
DockerforWindows很出众,但它缺乏一样笔者最想要的东西,因而每每须要为代码重构docker映像时,我就得在Windows和Ubuntu之间切换。但WSL2完全支持docker,这甚至比纯粹的Linux体验更好。
若要启动,请点击DockerDesktop设置,勾选启用基于WSL2的引擎复选框UsetheWSL2basedengine。
据悉,可以通过点击设置中的Kubernetes按键,勾选RestartKubernetesCluster复选框,来运行本地Kubernetes集群。
如今,可以切换回WSL2中的Ubuntu,运行dockerversion或kubectlversion,并确认这两个版本早已启动并运行。
福利:ThenewWindowsTerminal
应用商店将新的WindowsTerminal定义为一个现代化、快速、高效、强大、高产的终端工具,供命令行工具和shell(如命令提示符,PowerShell和WSL)的用户使用如何安装双系统linux,主要功能包括多Tab支持、窗格、Unicode和UTF-8字符支持、基于GPU运算的文本渲染引擎,以及自定义主题、样式和配置。
据悉,它特别美观,可以通过它的可访问设置(仅仅是一个JSON文件)随心所欲地设置款式。
产品路线图
尽管如今依旧缺乏一些功能,但WSL2运行早已畅通无阻了。在接出来的几个月里,我们还可以用一个命令安装WSL。打开一个WindowsTerminal并输入wsl.exe--install。据悉,在首次进行安装时,WSL2将成为默认版本。
开发者最期盼的功能有两个:GPU支持和GUI应用支持。自从WSL1发布以来,向WSL添加CUDA和/或GPUCompute支持仍然抢占很高的呼声。过去几年中,WSL、Virtualization、DirectX、WindowsDriver团队,以及她们的芯片合作伙伴仍然在旨在于提供此功能。
据悉,Linux还将支持GUI应用程序。比如,可以在已安装的Linux环境中运行首选的LinuxGUI文本编辑器或IDE,甚至可以在Windows机器上开发LinuxGUI应用程序!
WSL2完全有能力将WindowsPC弄成运行Linux分发版的开发人员工作站,它速率在线,功能在线,未来还有更多值得探求的东西。双系统的日子就要结束了,更极至的体验已经到来。