干掉Windows?微软曾花7年研发新系统:连管理层都亲自写代码,最终却惨遭夭折

科技   2024-08-29 12:18   福建  

本文经授权转自公众号CSDN(ID:CSDNnews)

整理 | 屠敏 

“别把鸡蛋放在同一个篮子里”是不少公司降低风险常见的一种手段。以操作系统为例,Android 在智能手机市场占据主导地位,但 Google 并未止步,而是推出了 Fuchsia OS,试图打破传统的 Android 和 ChromeOS 之间的界限,提供一个统一、安全且可扩展的平台,只不过最终结局不尽人意。

回顾历史,Google 并非是唯一想要留有后手的公司,曾靠 Windows 起家的微软,在 2008 年时同样走在放弃 Windows 系统开发的边缘。据外媒披露,当时微软集结一支顶尖工程师之力、包括管理层都要贡献代码,暗中开发一款和 Windows 内核完全不同的新操作系统——Midori。

只是遗憾的是,这个项目历经 7 年的开发,尚未正式露面,便被“砍掉”。近日,来自 X 用户 WalkingCat 公开分享了“2013 年微软机密会议的视频”,其中来自 Midori 团队成员 Joe Duffy(后来离职,现任 Pulumi 首席执行官)在内部带来一场深度分享,为现在的我们揭露了早已“夭折”的 Midori 项目的许多此前不为人知的细节,引发不少人回忆。

也令人唏嘘不已,谁能想到,现如今成为全球第一大桌面操作系统的 Windows,也差点会走上完全不同的道路?

1、Midori:曾是 Windows 的继任者?

Midori 团队成员 Joe Duffy(现任 Pulumi 首席执行官)谈到了该项目的启动过程、目标以及实现目标的主要方式。

也许有人好奇,微软、Google 为什么要在有了可以称霸一方的操作系统之后,还要大费周章地去研发新的系统,甚至屡屡传出要取代前者的言论?

事实上,结合当时的互联网发展背景来看:

  • 一方面,很多人吐槽称,微软的 Windows  已经变得庞大且笨重,甚至来自圣何塞州立大学教授兰德尔·斯特罗斯直接在《时代》杂志上发表了一篇文章《Windows 需要一股清新的空气》来批评 Windows 的臃肿。显然,当时的微软也意识到了这一点,开始致力于减少 Windows 中的依赖关系,也有消息称其内部在构建精简版 Windows 核心 MinWin。

  • 另一方面,那时互联网的快速发展,给不少软件开发商带来了巨大冲击。Joe Duffy 在视频中也谈到了这一点,其表示,“过去五年多来,多核、异构处理器的崛起,以及从支持 Intel 转向支持 ARM 和移动设备的趋势,显然带来了很多颠覆性的变化。”对于微软而言,虽然 Windows 平台是一个可靠的标准平台,但很多颠覆性技术已经出现,因此,它想要一个能够充分利用这个计算黄金时代的操作系统。

这就是他们开展 Midori 项目的初始原因。

2、百人参与开发、没有一个不写代码的 Midori 团队

Midori 在当时是一个非常雄心勃勃的项目,据外媒 ZDnet 报道,在巅峰时期,微软有多达 100 名开发人员参与了 Midori 的开发。

这个项目是由时任微软高管 Eric Rudder 领导,一位微软内部人士曾透露,“他手下的每个人(Midori 的 Rudder 手下的每个人)都是多年的老手,头衔非常高,他们正在回归本源,像以前一样编写代码。”

Joe Duffy 在视频中也表示:

最有趣的是,团队中的每个人都是开发者,即使是经理或负责人,他们也积极编写代码。即使有人头衔是架构师,他们也在写大量的代码。事实上,我们团队的第一条规则是每个人都要写代码,而且每个人都热爱写代码。在这方面我们不做例外,这也形成了非常有趣的团队文化。我在微软的多个产品团队和孵化团队工作过,我觉得这是团队在文化上最大的进步。每个人都对自己的代码和组件充满热情,他们从头到尾对自己负责的部分全权负责,包括编写测试用例和进行性能调优。

3、Midori 的部分技术细节

起初,微软对这一项目保持非常低调的态度,但是随着时间的推移,越来越多的信息曝光出来。

Midori 以互联网为中心,希望通过成为微软首款基于云的操作系统,将软件与硬件分开。该项目的任务是不依赖于过往的“Windows 意大利面条式架构”,同时仍保持功能和与 Windows 软件的兼容性。

这意味着,Midori 研发团队不仅是从头开始构建操作系统,还要构建完整的软件堆栈,包括浏览器、服务、编译器、核心应用程序等相关工具。

在视频中,Joe Duffy 分享了 Midori OS 架构图。该图显示,Midori OS 确实运行在虚拟化环境中,比如 Hyper-V 或者裸机环境中,支持多种架构如 x86、x64 和 ARM、Tiger 3 SoC。其中,Tiger 3 SoC 系统的基础部分,运行在其称之为“无策略微内核”的环境中,这是整个系统中为数不多的几个用原生代码 C++ 编写的部分之一。

“尽管我们最初使用的是 C# 和 .NET,但为了保证安全性、可靠性和性能,我们被迫彻底放弃这些技术”,Joe Duffy 表示,该项目促使一种名为 M#(“M sharp”)的新语言的诞生,作为 C# 和 Sing# 的扩展,以提高性能和安全性。

Joe Duffy 称, Midori OS 项目的三个主要重点是云、并发性和安全性,以及与 Windows 的互操作性。云将提供最佳性能和可扩展性,并发性将提高效率和产出,而强大的安全措施将确保操作系统能够隔离问题并防止崩溃。

针对安全性,在视频中,Joe Duffy 讨论的一个功能——设备驱动程序模型,也让我们联想到了最近业界发生的一件事。

Duffy 谈到了一种系统,在这种系统中,第三方代码不运行在内核中,而是作为进程运行。这种方法允许操作系统隔离故障并忽略导致问题的代码,因此系统总能成功启动。而目前 Windows 并未采用这种方式,它允许第三方软件在内核模式下运行,从而可以完全访问系统。

不幸的是,这意味着第三方代码中的一个错误可能导致整个系统崩溃,这正是 7 月 CrowdStrike IT 瘫痪事件中发生的情况。换句话说,如果当时世界运行的是 Midori 而不是 Windows,这次宕机事件根本就不会发生。

4、历经七年,项目被砍

对于当时的微软来说,这些技术都非常前沿,倘若成功,也许会带来一个意想不到的惊喜。在 2013 年,Midori 从一个研究概念转移到微软的统一操作系统小组进行进一步开发。

不过,由于其可预测性和在推动其操作系统发展方面似乎缺乏雄心,微软有时被贴上“行动缓慢的恐龙”的标签。

然而,Midori 未得到进一步实现,最终于 2015 年停止开发,微软当时声称将在未来的项目中融入 Midori 开发过程中学到的许多东西。

Duffy 后来在个人博客上写道,“我最大的遗憾是,我们一开始没有将其开源,让互联网的精英们能够适当地评判它的各个部分。和所有大公司一样,关于 Midori 核心技术命运的决定并不完全是由技术驱动的,遗憾的是,也不完全是由商业驱动的。但这其中也包含了一些重要的教训。”

5、引发回忆的 Midori

对于这 7 年的付出打了水漂,很多人为此感到惋惜,也有曾经参与此项目的微软前员工回忆道:

我在 Midori 项目存在时就在 Windows 部门工作。这又是一个微软研究院的死胡同项目。它不是基于云的,而是要开发“可证明正确”的代码。所以我们玩了一下新语言、新操作系统概念之类的东西,很酷,我们还写了一些学术论文。这个项目花了很多钱来支付员工工资。如果你想把微软研究院的研究成果“产品化”,这样它就不仅仅是个烧钱项目了。

我们就不说 Midori 是一个测试新操作系统概念和语言的实验平台了,而是说它是“微软操作系统的未来”。它可以与 Windows 向后兼容,也有几十个人来做一个“可证明正确”的新浏览器。只不过,值得一提的是,当时 Windows 部门有 5000 人。2008 年没有人要废除 Windows 操作系统,那时 Windows 部门正在开发 Windows 7,而 Windows 7 于 2009 年 7 月 22 日发布。Midori 项目搞了一段时间的演示之类的东西,然后就消失了。它从未超越概念验证和学术论文阶段。

也有人将其归咎为管理层问题:

据我所知,Midori 从来就不是打算做成一个基于云的操作系统。它的设计理念几乎完全是以可管理性和可验证性为核心的。某个时候,他们确实在 Midori 上运行了云端语音识别引擎和 SQL Server,作为概念验证的一部分。考虑到这个操作系统可能会对现有生态系统带来极其严重的破坏(尽管现有的 Windows 可以在其中虚拟化),我仍然认为管理层因为胆怯而将其永远搁置了。我认为这又是一个巨大的错误。

此外,还有媒体评价道,微软之所以对 Midori 持以如此低调的态度,是因为微软可能不想让全世界相信 Windows 真的存在替代品。毕竟,Windows 至今仍然是微软几乎所有产品的基石,是公司的核心组成部分,尽管它存在种种弱点和缺点。

那么,你是否听过 Midori 这个项目?

参考链接:

https://x.com/_h0x0d_/status/1819724702555988282

https://www.laptopmag.com/software/did-you-know-about-microsofts-secret-post-windows-operating-system

本文转自公众号“CSDN”,ID:CSDNnews

---END---

Linux学习
专注分享Linux/Unix相关内容,包括Linux命令、Linux内核、Linux系统开发、Linux运维、网络编程、开发工具等Linux相关知识和技术
 最新文章