微软开源 2019:“讨好”开发者,当开源圈的“万人迷”

by admin on 2020年2月27日

微软今年举办的 Build
开发者大会可谓是抢足风头,大会第一天就放了不少大招:宣布新的命令行终端
Windows Terminal、Windows 10 的 Linux 子系统 WSL 2 将运行真正的
Linux 内核、
跳过 .NET 4 宣布 .NET 5 的计划、宣布 Web 版本的 VS
Code(Visual Studio Online)。

图片 1

又到了年末各种盘点出炉的时候,开源圈今年虽然没有“GitHub
被微软收购”、“Red Hat 被 IBM
收购”如此重磅且出圈的新闻,但依然不失精彩。开源圈作为开发者密度最高的圈子,微软作为开发者群体中“渗透率”最高的商业公司,微软与开源之间的故事,天生自带流量属性。

这种积极拥抱开源的态度对微软而言不是什么新鲜事,毕竟他们家的两个重量级项目
—— Visual Studio Code 和 .NET runtime
早已开源,并按照规范的开源、社区驱动的方式来运作。

如果在微博上或者知乎上关注了很多程序员,尤其是这个行业的大
V,就应该看到很多人对于微软这次的 Build 大会的开发者表示欣赏和肯定!

本文就来和大家一起回顾微软在 2019 年与开源相关的重要事件 ——
主要是引发较多关注和广泛讨论的新闻。

但微软这次在 Build 2019 上的开源举动有点不一样。

尤其是微软做了下面两件事:

为了更好地理解微软的开源
2019,下面我们将会按不同的领域而非时间线进行回顾。

图片 2

一、要干掉苹果的 Windows Terminal

编程语言

我们都知道,微软在 Windows 10 一周年更新的版本中引入了名为 Windows
Subsystem for Linux(WSL)
的 Linux 子系统,不过 WSL 只是 Linux
兼容层,而非真正的 Linux 内核,它是由微软自己开发的内核组件,提供了与
Linux 内核相同的 API,本质上是将 Linux API 翻译到 Windows NT kernel
API。

很多程序员特别喜欢用 Mac
电脑开发,对于程序员来讲不仅仅是因为苹果电脑优秀的操作体验,更重要的是苹果电脑上的命令行终端工具,尤其是
iTerm2 和 zsh 的配合使用,让程序员爽到不行。

从拥抱 Rust 到开发基于 Rust 的安全编程语言

最初,微软表示正探索将 Rust 作为 C 和 C++
的安全替代方案,并且也对外展示了使用 Rust 重写 Windows
组件的体验。根据微软的说法,Rust 是一种从根本上考虑安全性的编程语言,他们将尝试使用
Rust 重写各种产品,因为在过去的十年里,微软 70%
以上的安全补丁都提供了与内存相关的错误,而
Rust 正是解决这个问题的“良药”。

到后来,微软为解决相应内存问题所做的工作,他们决定开发基于 Rust
的新编程语言 Verona,这是是用于微软“安全基础设施编程(safe
infrastructure programming)”的一种新语言。

由于 WSL 使用的是自研的内核组件,所以它天生就有不少缺陷,例如无法使用
Linux
驱动(尤其是文件系统驱动),这使得它的文件系统性能只有真正内核的二十分之一。另外,WSL
提供的 API 集也比较陈旧,甚至部分 API 都没有实现,还有的 API
即便实现了也只是部分实现。

但是现在不用怕了,微软发布了 Windows Terminal
命令行终端工具,废话不多说,我总结了它的亮点如下:

微软推出新编程语言 Bosque

微软推出了一款全新的编程语言 Bosque,该语言参考了 TypeScript
的语法与类型,还有 ML 和 Node/JavaScript 的语义,其作者认为 Bosque
超越了主流的结构化程序设计。

Bosque
由规范化程序设计思想而来,旨在解决当前结构化程序设计中遇到的这些问题,作者把结构化程序设计的兴起认为是编程器与开发工具的第一个黄金时代,他相信此次提出的规范化编程模型将大大提高开发者的工作效率、提高软件质量,并带来编译器和开发工具的第二个黄金时代。

这里有人可能会问,反正 Linux
内核是开源的,既然微软自己做得不好,为什么不直接把现成的拿过来用呢?微软当然不傻,之所以选择自研正是为了避免使用
Linux 内核的代码,因为 Linux 内核使用的 GPLv2
许可证具有“传染性”,这可能会迫使微软开源 WSL,甚至 Windows
系统的部分代码。虽然微软爱开源,但也怕爱过了头。

提供多标签、分割窗口、快捷键、完整的 Unicode 字符支持等功能。

微软宣布加入 OpenJDK 项目

微软正式签署了《Oracle
贡献者协议》,甲骨文公司也对微软参与该项目表示了认可及欢迎。

微软及其子公司在许多方面都高度依赖 Java,并且在微软 Azure 云中向客户提供
Java 运行时服务。微软已经认识到在甲骨文成功有效管理下的 OpenJDK
项目所获得的巨大价值,它收购了
Java,得到了更广泛的软件生态系统,微软也期待做出自己的一份贡献,它表示自己的团队在初期将致力于一些小的
bug 修复和反向移植。

所以刚被公布的 2 代 WSL 才会显得有点不一样。微软表示 WSL 2
会在轻量级的虚拟机里运行真正的 Linux 内核。通过运行完整的内核,WSL 2
不仅大幅度提升了文件系统性能,也提供了完整的系统调用兼容性。

支持 PowerShell,Cmd,WSL(Windows 的 Linux 子系统)和 SSH
等命令行程序,全平台制霸,简化开发者的工作流程。

微软开源其 C++ 标准库实现 STL

微软开源了其 MSVC 的 C++ 标准库实现(也就是 STL),该库实现是 MSVC
工具集和 Visual Studio IDE 的一部分。

微软表示开源 STL
可以使开发者随时了解其发展情况,使用最新更新,并且帮助完善项目。“随着
C++
标准化的加速发展,并且每年都会有更多的重大特性被投票,我们相信从开源贡献中接受主要特性将很重要。”

更重要的是,WSL 2 这次不再“畏惧” Linux 内核所采用的 GPLv2
许可证,因为微软宣布它将根据许可证要求完全开源 WSL 2
的内核补丁和修改

可以为自己的 shell 程序通过测试加入 emoji 表情提示

微软官方上线 Python 教程

微软上线了一套 Python 教程《Develop with Python on
Windows》,文档内容包括设置 Python 开发环境、在 Windows 与 WSL
子系统中安装相应开发工具,以及集成 VS Code 与 Git 工具并进行开发等。

基于 GPL 许可证的项目构成了 Windows
系统的一部分,这意味着它骨子里已经拥有开源的“基因”,身上某处流淌的是开源的“血液”。

颜值逆天。

开发工具

除了运行真正 Linux 内核的 WSL 2,新发布的命令行终端 Windows Terminal
也是这次大会上的那个“不一样”

光说可能你们不信,请看动态图,如下:

微软开源全新终端应用 Windows Terminal

微软在 Build 2019 大会上宣布开源全新的终端 Windows
Terminal,这是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多
Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU
运算的文本渲染等。

图片 3

图片 4

图片 5

Visual Studio Online 公开上线

微软在 Build 2019 大会上宣布了 Web 版本的 VS Code – Visual Studio
Online,并在两个月后的 Ignite 2019 大会上推出 Visual Studio Online
公开预览版。

图片 6

▲Visual Studio Online

从页面上直观地看,VS Online 就是一个 Web 版的 VS
Code,但这其实只是它的一个前端界面,这个基于网页浏览器的编辑器同样支持
Git
存储库、扩展和内置的命令行接口,因此开发者可从任何设备编辑、运行和调试应用。而
VS Online 更强大的能力来自于背后 Azure
提供的云计算能力,并且这些能力可以支持到 VS Code 与 VS
中,这意味着,其实开发者不使用浏览器也可以体验到 VS Online
带来的强大云计算资源支持。

相信很多人都知道 Windows 的命令行工具(cmd.exe)依赖于一个名为 conhost.exe
的程序,它在系统中被称为“控制台窗口主机”,是命令行程序的宿主进程。

图片 7

微软开源新字体 Cascadia Code

Cascadia Code 是微软在 Build 2019
大会上宣布推出的等宽字体,微软介绍它是与新的终端 Windows Terminal
一起开发的,官方建议将其与终端应用和 VS、VS Code 等文本编辑器一起使用。

Cascadia Code
为命令行和代码编辑器提供了全新的体验,并且它还支持编程连字(Programming
Ligatures),就是在编写代码的时候,可以组合字符创建新的字形,这对于代码的可读性和呈现后的用户友好度都是一种很好的机制,同时这也增强了
Windows Terminal 的现代外观。

图片 8

conhost.exe 实现了 Windows 命令行工具的基础架构,同时提供 Windows
Console
API、输入引擎、渲染引擎和用户配置信息,在系统中是一个十分重要且核心的程序。

看完图片,是不是很过瘾,这个工具一经发布,就在 GitHub 上的 star 数就超过
13000 多了,可见大家对它有多喜欢,多喜爱!

操作系统

作为 Windows Terminal 项目的一部分,微软采用 MIT 许可证将 conhost.exe
一同开源出去。这绝对称得上是史无前例的操作,虽然微软此前也曾将 Windows
系统里面的项目进行开源,但都是一些不太重要的工具,如计算器,或是其他已不再更新的程序。

项目开源地址如下:

微软在 Windows 10 中搞了个真正的 Linux 内核

2019 年微软直接在 Windows 中安上了一颗“Linux 内脏”,这颗 Linux
内脏其实是今年 5 月份在 Windows 10 上推出的全新版本 WSL(Windows
Subsystem for Linux),新版本 WSL 2 使用了全新的架构,这是一个真正的
Linux 内核,它改变了 Linux 二进制文件与 Windows 和计算机硬件的交互方式。

图片 9

这次将 conhost.exe 开源,不但是微软首次开源核心的 Windows
系统代码,更重要的是,如果 Windows Terminal 稳定后并被集成到 Windows
系统中,那么它将是首个以开源方式进行开发的 Windows 核心组件。

微软将 exFAT 技术添加到 Linux 内核

微软宣布将其 exFAT 技术添加到 Linux 内核中。exFAT 文件系统是 FAT32
的替代者,它由微软开发,但是不仅用于 Windows 系统,目前 exFAT
在整个电子行业中都得到了广泛应用,特别是 SD 卡、USB 闪存驱动、数码相机和
MP3 播放器中使用最为充分。

如今微软开放了它的 exFAT 技术,并且把技术规范公开,这意味着,往后 Linux
内核可以直接堂堂正正地将 exFAT 支持开箱即用。微软还强调了一句:Linux
社区可以放心地使用 Linux 内核中包含的 exFAT。

上面的两个“不一样”可以让我们深刻感受到微软的转变,从它对待开源的态度,对开源的贡献,不难看出微软把开源看得十分重要 —— 不再仅仅是将一个个独立的项目开源,而是将开源融入到
Windows 系统乃至微软的方方面面,并且能够持续发展。

到这里,你可能会说:光凭一个终端工具,就想干掉苹果?我们喜欢使用苹果电脑是因为它的系统和
Linux 样,非常方便程序员,是的。

微软将新版 Edge 浏览器引入 Linux

继推出 WSL2、将 exFAT 技术添加至 Linux 内核,微软再次瞄准了 Linux。在
Ignite 2019 大会上,微软正式宣布 Edge for Linux 不久后将会发布。

微软高级编辑 Zac Bowden 称新的 Edge 是完全跨平台的,该浏览器将是支持
Windows 平台,包括服务器和客户端,以及 macOS、Android、iOS 和 Linux。

一直以来,大家都不认为、更不相信微软会开源 Windows
系统,但按现在的趋势,有生之年见证微软开源 Windows
系统也不是没可能的事,你觉得呢?

但是 Windows 电脑也能和前两者一样轻松做开发了。Win 10 下的 Linux
子系统升级版 WSL 2。最重要的是 Win 10 有了 Linux 内核。WSL 2 是基于
Linux 4.19 内核。它可以缩短 Linux
的启动时间,还能简化内存使用。微软说,这是一次
“戏剧性升级”,把文件系统繁重的操作速度提升了一倍:比如,安装节点包管理器的操作。另外,WSL
2 还支持在本地运行 Linux Docker,所以再也不需要虚拟机了。

微软开源 Bing 搜索背后的关键算法

微软开源了一项 Bing 搜索背后的关键算法——SPTAG,它使 Bing
能够快速将搜索结果返回给用户。

SPTAG (Space Partition Tree And
Graph)是分布式近似最近邻域搜索(ANN)库,为大规模矢量搜索场景提供高质量矢量索引构建、搜索和分布式在线服务工具包。利用
SPTAG 算法作为开源 Python 库的核心,Bing
能够在几毫秒内搜索数十亿条信息。

(文/开源中国)    

二、要干掉谷歌的 .NET 5

开源文化

今天,微软宣布 .NET Core 3.0 之后的下一个版本将是 .NET 5 。这将是 .NET
系列的下一个重要版本。而且将来只会有一个 .NET ,大家可以使用它来开发
Windows,Linux,macOS,iOS,Android,tvOS,watchOS 和 WebAssembly 等等。

自由软件之父 RMS 受邀到微软发表演讲

自由软件运动发起人 RMS
受邀在微软进行了演讲,其中谈到微软在开源上的贡献,他表示微软未来活动的主要动力,无论如何都必定是基于利润的,微软的开源贡献其实对于“自由世界”毫无贡献。

RMS 还给了微软十条建议,代表性的包括开源 Windows、收回“毒瘤”言论以及指导
GitHub 正确许可证。

图片 10

微软将主办首场 Linux 会议 WSLConf

微软公布了明年 3 月在 Microsoft HQ 举办 WSLConf 的消息,WSLConf
是由微软主办的首个与 Linux 相关的会议,主要围绕 WSL
进行讨论,内容涉及该平台的最新发展动态,也会介绍 WSL 与一些 IDE 如
Visual Studio 和 JetBrains 的集成。

Canonical 宣布它将成为 WSLConf 的“特别赞助商”,毕竟 Ubuntu
是最早与微软合作的 Linux 发行版,它也是 WSL 中最受欢迎的版本。

(文/开源中国)    

微软将在 .NET 5 中引入新的 .NET API、运行时功能和语言功能。微软将会在
2020 年 11 月发布 .NET 5,并在 2020 年上半年推出第一个预览版。

NET 5 是 .NET Core 的下一步。该项目旨在通过以下几个关键方式改进 .NET:

制造一个可在任何地方使用的 .NET
运行时和框架,并具有统一的运行时行为和开发人员体验。

通过充分利用 .NET Core、.NET Framework、Xamarin 和 Mono 来扩展 .NET
的功能。

从单个代码库构建该产品,开发人员( Microsoft
和社区)可以一起工作并一起扩展,从而改进所有方案。

而 .NET Core 的所有内容将继续存在:

在 GitHub 上开源和面向社区。

跨平台实现。

支持利用特定于平台的功能,例如 Windows 上的 Windows form 和 WPF 以及来自
Xamarin 的每个原生平台的原生绑定。

高性能。

并排安装。

小型项目文件。

兼容命令行界面。

Visual Studio,Visual Studio for Mac 和 Visual Studio Code 集成。

说白了, .NET 5 计划,支持跨平台、移动开发,这是要对彪 Google 的 Flutter
的节奏啊!微软野心真的是越来越大了。

总结

当 GitHub 被微软收购的时候,一大群人都不看好,可是呢?现在 GitHub
活的好好的,而且越活越好了。我之前在文章《拥抱开源,微软是认真的,一个你不了解的微软正在到来》中说过:一个既熟悉又陌生的微软,正在用实际行动告诉你:拥抱开源,微软是认真的。

尤其是:2014 年 10 月 20 日,出任微软公司首席执行官不久的萨提亚 ∙
纳德拉第一次公开宣示了微软对 Linux
和开源世界的新感情。事实证明,微软的确是付出了真爱。过去两年,从微软智能云
Azure 到 Windows 10,从开发工具到数据库平台,“把 Linux
放在重中之重”,已经成为微软内部人人皆知的准则。(来自于:微软中国 MSDN )

通过这次大会推出的 Windows Terminal,Win 10 下的 Linux 子系统升级版 WSL
2,以及跨平台的 .Net ,微软都在用行动表明:把 Linux
放在重中之重,而且开源我们是认真的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图