
很长一段时间以来,双系统是我唯一的解决方案。 我一直在用的是一台苹果笔记本,它几乎可以做任何事:开发、写提案、创作音乐等。但它也不是十全十美的,我很害怕供应商被锁定,也担心自己过于依赖苹果的奇思妙想,因此我也在寻求新的解决方案。 笔者着手搭建了一个机器学习工作站;出色的CPU、大量的RAM和性能极佳的GPU等等。除了要用Microsoft Office写提案,我选择用的操作系统几乎都是Ubuntu。& z4 g6 a: U, R5 A Office online还没有面市,而LibreOffice很糟糕。因此,我的解决方案是安装Ubuntu和Windows 10双系统。从苹果系统切换到Ubuntu非常自由,而且选择构建个人PC几乎没有界限。, E1 t3 B+ T$ d5 O 在无数次系统切换之后,WSL出现了。笔者开始将工作流程的一部分移到Windows,但还是有很多功能缺失。然而,WSL 2似乎改变了游戏规则。本文将为你展示这些奇妙的改变。 ! t8 U" ]* q* ?7 ` 什么是WSL 2 WSL2是WSL中体系结构的新版本,它更改了 Linux 与 Windows 进行交互的方式。. l' ^+ k: S8 Y0 K( M" U ![]() 该版本提高了文件系统性能,并增加了完全的系统调用兼容性。当然,Linux 分发版可以作为 WSL 1 或 WSL 2 运行,你可以自行选择,并且可以随时在它们之间进行切换。" ~. x" z9 w$ h7 s, h. V WSL 2 是对基础体系结构的一次重大改造,它使用虚拟化技术和 Linux 内核来实现其新功能。微软处理了琐碎的细节,这样你就可以专注于重要的事情了。 ' ]9 L) u1 A0 ?7 m, C5 o 安装 微软承诺将在不久的将来会为WSL 2提供流畅的安装体验,并且能够通过Windows更新来更新Linux内核。但目前的安装过程有点复杂,但也不必忧虑。 示例中将在Windows 10上安装Ubuntu20.04,但对于微软商店中的任何分发版来说,安装过程都是一样的。首先,启用“适用于 Linux 的 Windows 子系统”可选功能。以管理员身份打开PowerShell并运行:
![]() 最后,安装所选Linux分发版。打开微软商店,搜索Ubuntu 20.04LTS。安装完成后,在开始菜单上找到一个新的Ubuntu应用,启动并按照说明完成安装。8 d+ T+ _% q0 B& v( l' Y, h/ H, s' F 检查所选Linux分发版是否设置为WSL 2,请运行wsl --list –verbose。若所选Linux分发版受WSL 1支持,请运行wsl --set-version<distribution name> <versionNumber>。2 l* {5 S# ^; H# x 完成啦!这样就可以有一个完整的Ubuntu分发版在Windows 10中运行。; t( C4 n4 E c8 n) u+ ~4 h2 J% N1 k 开发人员工作站 Ubuntu已经准备好,现在可以安装任何所需程序了。如果你是数据科学家,则可以安装最新的Anaconda发行版;如果你是前端工程师,则可以安装angular和npm等。6 K) R) |2 ?3 u) [) C n ![]() 有两个工具笔者想重点讲一下:Visual Studio Code和Docker + Kubernetes。' _8 ^" w, I" U% ?5 j7 `! h 7 O1 S. r2 X( y- J7 p/ O ! B# m6 t/ M% Y7 m# W( y' | VisualStudio Code0 ^% j7 J/ o1 J3 H: [3 P Visual Studio Code是许多开发人员选择的集成开发环境(IDE),现在已启用WSL 2,VS Code的远程开发扩展包(Remote Development)绝对必不可少。 此插件支持WSL 2、容器映像甚至通过SSH的远程VM上的源代码进行远程开发。因此,现在可以在受WSL 2支持的Linux分发版中创建项目文件夹,并使用安装在Windows 10上的Visual Studio Code编辑器作为IDE。 它的功能包括:全语言支持IntelliSense,git集成, Visual Studio Code扩展,调试器和终端。 Docker +Kubernetes Docker for Windows很出色,但它缺少一样笔者最想要的东西,因此每当需要为代码构建docker映像时,我就得在Windows和Ubuntu之间切换。但WSL 2完全支持docker,这甚至比纯粹的Linux体验更好。 若要启动,请点击Docker Desktop设置,勾选启用基于WSL 2的引擎复选框 Use the WSL 2 basedengine 。 ![]() 启动Dockerfor WSL 2 4 B+ B" x% }. P 此外,可以通过点击设置中的Kubernetes按钮,勾选Restart Kubernetes Cluster复选框,来运行本地Kubernetes集群。1 ^3 l3 |) Q! f/ t1 X3 j ![]() 现在,可以在切换回WSL 2中的Ubuntu,运行docker version或kubectl version ,并确认这两个版本已经启动并运行。 ![]() 福利:The new Windows Terminal 应用商店将新的Windows Terminal定义为一个现代化、快速、高效、强大、高产的终端工具,供命令行工具和shell(如命令提示符,PowerShell和WSL)的用户使用,主要功能包括多Tab支持、窗格、Unicode和UTF-8字符支持、基于 GPU 运算的文本渲染引擎,以及自定义主题、样式和配置。 此外,它非常美观,可以通过它的可访问设置(仅仅是一个JSON文件)随心所欲地设置样式。 * g; `0 @7 S5 H0 `+ k) d2 r 产品路线图 ![]() % e" J; v: t! W# N! q& [) C 现在仍然缺少一些功能,但WSL 2运行已经畅通无阻了。在接下来的几个月里,我们还可以用一个命令安装WSL。打开一个Windows Terminal并输入 wsl.exe --install。此外,在首次进行安装时,WSL 2 将成为默认版本。 开发者最期待的功能有两个:GPU支持和GUI应用支持。自从WSL 1发布以来,向 WSL 添加 CUDA 和/或 GPU Compute 支持一直占据很高的呼声。过去几年中,WSL、Virtualization、DirectX、Windows Driver 团队,以及他们的芯片合作伙伴一直在致力于提供此功能。, z$ [. P( U, }! P6 c ![]() 此外,Linux还将支持GUI应用程序。例如,可以在已安装的Linux环境中运行首选的Linux GUI文本编辑器或IDE,甚至可以在Windows机器上开发Linux GUI应用程序!7 H" Y( A6 n+ e1 z' O3 y ![]() WSL 2完全有能力将Windows PC变成运行Linux分发版的开发人员工作站,它速度在线,功能在线,未来还有更多值得探索的东西。双系统的日子就要结束了,更极致的体验依然到来。 |