21CTO导读:微软于2016年成为Linux基金会的成员,同时宣布加入OSI,以增加其在宣传开源软件的使用、贡献和发布方面的作用,包括其客户和整个生态系统。
微软还是Linux基金会的“高级赞助商”,它将提供资金支持致力于促进和保护开源软件及开发它的社区的计划。由于微软每年的收入超过2.5亿美元,因此至少向该计划捐赠20,000美元。
昨天微软宣布将从2019年夏天开始在Windows 10中发布一个完整的Linux内核,这让Linux开发人员感到很意外。虽然微软去年也发布了一个Linux内核,并发布了Azure Sphere,但这是Windows首次作为一个组件包含在系统之中。
“我们从Windows Insiders开始构建,今年夏天将包含一个内部定制的Linux内核,以支持最新版本的Linux子系统(WSL)”,微软的Linux系统组项目经理Jack Hammons 在博客中这样写道。
“内核本身最初将基于4.19版本,这是Linux的最新长期稳定版。内核将在指定新的长期稳定版本时进行重定位,以确保WSL内核始终具有最新的Linux系统特性。 “
“ 微软♥Linux ”,微软爱Linux,这已经是其宣传的定位
微软本周在其开发者大会Build 2019展示了一系列新产品和新功能。在昨天的公告中还包括发布WSL 2和一个名叫Windows Terminal的新命令行应用程序。正如Hammons所说的那样,Windows Linux内核将在新版本中提供,以便支持WSL 2。
“对于开发人员,该内核能大大提高微软Linux子系统在Windows10中的性能,”The Verge 预测。
“微软也承诺通过Windows Update不断更新这个内核,它将是完全开源的,开发人员可以创建自己的WSL内核并可提供自由更改。”
包含一个完整的Linux内核的决定,这标志着一个合乎逻辑的,但令人惊讶的结论。微软理念确实在做出重大转变 – 这让许多Linux开发人员都很欣赏。微软前首席执行官史蒂夫鲍尔默(Steve Ballmer)在2001年曾说过“Linux可能是一种癌症”。
近几年来,微软对开源的公众态度发生了显着变化, 例如,2016年加入Linux基金会,去年收购了GitHub。Azure收入增长的一个重要部分也是由于其客户的虚拟机是在Linux上运行的。
命令提示符是 Windows 系统的一大特色,后来微软陆续推出了Powershell、cmd之类的命令行工具,来提供一些更加高级的功能。
如今的微软更进一步,放出一大招,正式发布了新款命令行界面——Windows Terminal,有了它,Windows 也能和 Linux 和 Mac 一样轻松做开发,Wow,这让开发者是不是很开心?
就像上面的图,这是不少抱着Macbook参加微软Build大会的开发者,看到命令行工具Windows Terminal后的第一反应。
随即,就有人在Twitter上表示:我现在有点想买台PC机了。
直击开发者G点。
长期以来,Linux和Mac下的命令行工具自成一派,Windows却是另一套命令系统。
这也是很多开发者不选择Windows系统的原因。今后还买什么Mac,还装什么Linux系统?
Windows电脑也能和前两者一样轻松做开发了。
此外,收购了GitHub的微软,还用100星以上的项目来训练AI造福程序员,这个功能,能够基于当前代码的上下文预测后面应该如何写。
伴随着Windows Terminal的推出,整合了此前的Powershell、cmd命令行工具,再加上升级版的WSL、AI辅助写代码,还有什么理由不投入微软的怀抱?
什么是Windows Terminal
Windows Terminal是微软推出的新的命令行应用程序,提供多标签、分割窗口、快捷键、完整的Unicode字符支持等功能。
最重要的是,它支持PowerShell,Cmd,WSL(Windows的Linux子系统)和SSH等命令行程序,可以说是全平台制霸,简化开发者的工作流程。
什么Cygwin、MinGW、PuTTY,统统可以丢掉!
而且,颜值即正义!微软还给Windows Terminal加入很多细节功能,让它更美观。
Windows Terminal使用的是基于DirectWrite/DirectX的GPU加速文本渲染引擎。
这个新的引擎支持显示PC中存在的文本字符,意味着终端里的汉字、日文不再乱码,而且还能玩emoji表情。
在微软展示的Demo中,你可以为自己的shell程序通过测试加入emoji表情提示。
此外,微软还为它增加了一种新的等宽字,以增强现代外观和感觉。这种字体不仅包括编程连字,而且它也是开源的,并有自己的repo。微软表示,将来会开放公开下载。
Windows控制台的主要目标是保持与现有命令行工具,脚本等的向后兼容性。
在Windows 10中,微软一直致力于改善命令行体验,让自己更像Unix命令行环境。3年前,也是在Build开发者大会上,微软开源了跨平台Powershell工具。
但是Windows上cmd和Powershell并存的混乱局面也一直存在。今年6月,Windows Terminal将同时向下兼容这两种产品。
现在就能上手
如果你已经迫不及待地想要试试Terminal,可以通过下面的GitHub链接,下载、构建和运行这一命令行工具。
https://github.com/microsoft/Terminal
Windows Terminal 一经发布,短短时间便在 GitHub 上获得了 12159 个Star,并且还登上 GitHub 趋势榜第一的位置。
需要注意的是,这个项目使用git子模块处理一些依赖项,想要确保子模块更新,请在构建器使用如下命令检查:
git submodule update –init –recursive
其中,OpenConsole.sln可在Visual Studio中构建,或者使用MSBuild通过命令行来构建:
nuget restore OpenConsole.sln
msbuild OpenConsole.sln
在/tools文件中,还有一组脚本,能够用于自动化构建和运行测试的过程。
截止到现在, 这一项目已经在GitHub上斩获了4500+标星。微软正式宣布之后,6小时就冲上了GitHub趋势榜第二的位置。
Fork也已经有了240多次,关于项目开放的Issues也有180多个,内容基本上都是在反馈问题合提出建议。
比如设置无法打开、无法通过触摸屏使用新标签按钮等等,建议支持像素图形、要求突出显示选项卡和按钮等等。
很显然,这一工具仍旧处于不断完善和优化的阶段,如果你想要参与其中,也可以通过GitHub平台贡献一份力量。
微软表示,6月中旬将在Windows商店中发布Terminal的预览版,供早期用户使用反馈。稳定版的Terminal 1.0版本,将会在今年冬天发布。
大肆向开发者示爱
当然,微软对开发者的一片真心,远远不止体现在命令行工具上。
还是让你详细了解下它的主要功能吧,Windows Terminal 主要有以下特性:
多标签
无数的开发者都向微软反馈过【提供多标签】这个问题,如今终于在 Windows Terminal 上实现了,你可以打开任意数量的选项卡,每个选项卡都可以连接到多个环境或服务器,例如 PowerShell、WSL 上的 Ubuntu、SSH 上的 Raspberry Pi 等等。
文本渲染
Windows Terminal 使用 DirectWrite/ directxbased 的 GPU 加速文本渲染引擎。这个新的文本渲染引擎支持显示 PC 上的文本字符,字体和符号,其中包括中日韩统一表意文字(CJK)、编程连接,甚至还支持 Emoji 表情等。而且这个文本渲染引擎的速度比之前的 GDI 引擎快多了!
你还可以选择使用微软提供的另一种新字体,这种字体不仅包括编程连字,而且还是开源的,拥有自己独立的存储库,后续会开放下载哦~
自定义设置
Windows Terminal 已经与许多终端和命令行应用程序建立了连接,并提供了许多自定义选项,你可以将 shell/app/工具创建多个“配置文件”,无论是 PowerShell、命令提示符、Ubuntu,还是 Azure 或物联网设备的 SSH,都可以设置自己的字体样式和大小、颜色主题、背景模糊/透明度级别等。
Win10的Linux内核
值得一提的是,虽然 Windows Terminal 优点很多,但毕竟它还处于一个测试的阶段,目前还是存在一些问题的,从提交的 Issues 和 Fork 可以看出目前存在的问题如设置无法打开、标签无法重新排列、文件丢失等。
你以为微软做的只有这些么?当然不是!今天一同发布的,还有Win 10下的Linux子系统升级版WSL 2。
WSL 1 虽然已经于 2016 年就已经推出,但是社区一直要求提高文件系统性能,并具有更好的系统调用兼容性,使更多应用程序可以在 WSL 内部工作。
新推出的 WSL 2 使用一个全新的体系结构,使用的是真正的 Linux 内核,可以在 Windows 上运行 ELF64 Linux 二进制文件,新的架构改变了这些 Linux 二进制文件与 Windows 和计算机硬件的交互方式,但仍提供与 WSL 1 相同的用户体验。
WSL 2 包含自己的 Linux 内核,它具有完整的系统调用兼容性。值得一提的例子是 Linux 版本的 Docker 可以在 WSL 2 中运行,当然了,还有前面提到的全新终端 Windows Terminal。而且毋庸置疑,WSL 2 的速度也明显比 1 代快!
WSL 2是基于Linux 4.19内核。它可以缩短Linux的启动时间,还能简化内存使用。
微软说,这是一次“戏剧性升级”,把文件系统繁重的操作速度提升了一倍:比如,安装节点包管理器的操作。
另外,WSL 2还支持在本地运行Linux Docker,所以再也不需要虚拟机了。
运行各种Linux应用,也不会像虚拟机那么慢,至少会像WSL 1一样快,甚至更快。
和Terminal一样,WSL 2也会在6月中旬正式推向开发者。那时,就可以从Terminal直接访问WSL 2了。
“对于开发人员[内核]应该大大提高微软Linux子系统在Windows中的性能,”The Verge 预测。“微软也承诺通过Windows Update更新这个内核,它将是完全开源的,开发人员可以创建自己的WSL内核并提供更改。”
包含一个完整的Linux内核的决定标志着一个合乎逻辑的,如果令人惊讶的结论,微软公司理念的重大转变 – 许多Linux开发人员似乎都很欣赏。微软前首席执行官史蒂夫鲍尔默(Steve Ballmer)在2001年曾说过“Linux可能是一种癌症”。然而,近年来,微软对开源的公众态度发生了显着变化, 例如,2016年加入Linux基金会,去年收购了GitHub。Azure收入增长的一个重要部分也是由于其客户的虚拟机在Linux上运行。
AI帮你写代码
IntelliCode,是微软一个AI辅助程序猿写代码的工具。
团队兴奋地宣布,现在它已经全面支持Python、C#、C++、JavaScript、XAML等各种语言了。
和前辈IntelliSense不同的是,这只AI是微软用数以千计的GitHub开源项目 (百星以上) 喂养长大的。
学习过这些数据之后,AI可以给出补全代码的智能建议 (如上图,左下角) 。还懂得联系上下文。
另外,团队说还有个查找重复编辑 (Repeated Edits) 的功能。
比如,你想引入一个辅助函数 (Helper Function) 的时候,就要重构代码。常规搜索的话,工程量会很大,手动修改繁琐又容易出错。
如果有一个算法可以追踪你的编辑,只要用几个示例就能发现你在重复编辑,就好了。如上图,发现错误一枚。
团队说,Intellicode的这个功能正在开发中,未来更新时会加入。
One More Thing
如果你真的不是开发者,不妨了解一下微软今天发布的隔空办公大法Teams。
只要两个人都打开这个软件,创建一个AR房间。再带上AR眼镜,就可以“共处一室”,隔空互动了。
不止能无障碍交流,挥洒创作灵感也完全不受限制。
如果,同事的外观还能随意改变,换成自己的女神,就完美了。
Linux社区的反应
对于Linux社区,开源开发人员Steve Klabnik发布了关于昨天的内核声明以及关于Linux社区反应中的推文:
Linux的创建者Linus Torvalds 也发表了观点 。Thomas Zander回复了Klabnik的推文:
Thomas Zander的推文
这里希望 Tux Linux Linux企鹅享受Windows构建的新观点(双关语)。
可见,不同方都各有各的看法。那么,对于微软放出的这两大利器,作为开发者的你是否满意?
来源:综合自微软官网、量子位等媒体
相关文章:
Bosque:微软开源更简单的编程语言
亚马逊、谷歌和微软寸土必争的新战场
微软工程师认为 Mozilla 也应该拥抱 Chromium
为了边缘计算,亚马逊、谷歌、微软已正面交锋!
微软取代苹果成全球市值最高公司
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/257952.html