Fuchsia 和服务器:我为什么选择 Linux
对于那些还没听说过 Fuchsia 的人来说,它是谷歌推出的一款全新操作系统,至少从 2016 年就开始开发了,未来可能会取代 Android(尽管这只是猜测)。说真的,未来它可能会被用来做 Web 服务器,但这似乎并非谷歌对 Fuchsia 的初衷。尽管 Fuchsia 仍在开发中,而且它的主要目标似乎是移动或物联网设备,但它还是让一些人对 Linux 在服务器领域的长期成功感到担忧。
尽管 Fuchsia 潜力巨大,但我更看好 Linux。Linux 已在众多竞争对手中脱颖而出,成为事实上的 Web 服务器操作系统。那么,为什么有些 Linux 用户对 Fuchsia 感到不安呢?原因既有哲学层面的,也有技术层面的,根植于自由软件的精神和微内核架构的技术潜力。让我们简要回顾一下 80 年代,更好地理解这些问题,然后探讨 Linux 在后 Fuchsia 时代的地位。
自由软件、GNU 和 Linux
1983年,理查德·斯托曼(Richard Stallman)怀揣着一个大胆的愿景:建立一个由企业实体决定用户运行什么软件、如何使用软件的世界。他信奉自由软件,即无论免费还是付费,只要你获得软件,就应该拥有使用、修改和重新分发的自由。为了追寻这一梦想,他开始编写一个名为GNU的自由开源操作系统。
到 1990 年,Stallman 和其他贡献者已经实现了 GNU 的大部分核心功能。唯一需要编写代码的是内核,它是操作系统中与计算机硬件交互的最底层部分。1992 年,Linus Torvalds 将 Linux 内核作为自由软件发布,并将其集成到 GNU 中,实现了 Stallman 的自由操作系统愿景。这个操作系统被称为 GNU/Linux,但大多数人只称这个操作系统及其衍生产品为“Linux”。
快进近 30 年,基于 Linux 的操作系统支撑着互联网的大部分领域,投资 Linux 的企业也从其提供的自由中获得了令人难以置信的回报。没有任何一家企业实体能够控制 Linux,但无数组织从中受益。Linux 内核支撑着谷歌的 Android 操作系统、亚马逊网络服务的大部分功能,并且已被微软完全采用,无论是在其 Azure 云中还是在 Windows 的 Linux 子系统中。那么,Fuchsia OS 提供了哪些 Linux 所不具备的功能呢?
Fuchsia 和微内核
人们对 Fuchsia 的期待很大程度上都围绕着它的微内核架构。为了理解微内核的特殊之处,将其与 Linux 等单内核架构进行比较会有所帮助。
在 Linux 中,内核是一个大型的单进程。你可以将内核想象成一堆相互依赖的服务,用于管理文件系统、进程间通信、驱动程序等等。这些服务紧密耦合,如果任何一个服务发生故障,整个内核就会崩溃,系统崩溃。应用程序作为独立的进程运行在内核之上,位于一个称为“用户空间”的区域内。
将其与微内核进行比较。在微内核中,除了进程间通信和调度之外,几乎所有操作都是存在于用户空间的进程。这些进程彼此独立且松散耦合,这意味着如果其中一个进程崩溃,系统可以继续运行,甚至可能在不重启整个系统的情况下重启崩溃的系统。这种机制带来的稳定性优势——尤其是在服务器环境中——难以言喻。文件系统可以实时交换,而无需重启服务器。这种稳定性在服务器上是极其理想的。
不难理解为什么 Linux 用户——尤其是负责维护 Linux 服务器的系统管理员——可能会对其操作系统的长期相关性感到不安。Fuchsia 是由谷歌资助和开发的,而斯托曼试图阻止谷歌决定我们的数字设备上运行什么软件以及我们可以使用什么软件,这加剧了这种不安。尽管 Fuchsia 是免费软件,但谷歌对该项目的控制仍然让 Linux 社区的一些人感到不安。
内核恐慌的时候到了?还没到。
谷歌不太可能将 Fuchsia 用作服务器技术:它更有可能被用来替代 Android 和 Chrome OS。但如果谷歌真的决定在服务器上使用 Fuchsia 呢?
尽管 Fuchsia 拥有现代微内核架构,并且 Google 拥有巨大的开发资源,但我并不担心 Linux 在服务器上的长期可持续性。为什么?
软件架构不会获胜:商业价值才会获胜。
尽管我们很容易想象企业渴望拥抱新技术,但大企业却很少这样做。
以 WordPress 为例。这个 21 世纪初诞生的博客平台如今已为互联网上 35% 的网站提供支持,并且其市场份额还在随着企业和博主的青睐而持续增长。尽管 WordPress 积累了 15 年的技术债务,使用过程式架构,并由笨重的 PHP 语言驱动,但这一切依然取得了成功。现代开发拒绝全局状态和副作用,而 WordPress 自诞生之日起就一直秉承着这些理念。
事实上,WordPress 的成功可能正是这些因素的结果。
企业重视稳定性。WordPress 的成功很大程度上得益于其庞大的社区,以及在各个版本之间引入少量重大变更,即使这意味着要接受不够完美的架构。这使得它成为企业和博主们年复一年信赖的安全之选,因为他们知道在未来几年内不太可能需要承担重新构建整个架构的成本。
一直以来,WordPress 所基于的 PHP 语言,由于其相对较慢的性能和不一致的 API,成为无数开发者的笑柄。然而,尽管 2019 年有更多优雅的 Web 工具可供选择(Ruby on Rails、Django、.NET、Node.js 和 Elixir),PHP 仍然凭借其普及性、良好的支持和悠久的历史,支撑着互联网上近 80% 的网站。企业将继续使用 PHP,因为它是一个安全的选择。
如果您需要进一步的证据来证明性能和架构本身并不是选择技术时的决定性因素,请考虑 W3Techs 报告称,尽管Nginx 性能更佳,但 Apache 仍为 42% 的 Web 服务器提供支持,而 Nginx 仅支持 31%。
就 WordPress、PHP 和 Apache 而言:十多年来,每个技术都有更强大、性能更高的替代方案,但由于它们各自提供的商业价值,这些替代方案未能超越这些技术在市场上的主导地位。
Linux 拥有近 30 年的历史,拥有蓬勃发展的社区,是一个稳妥的商业选择。尽管 Fuchsia 的微内核架构可能带来一些改进,但它仍将受益于 WordPress、PHP 和 Apache 蓬勃发展的相同特性。
Linux 支持旧硬件。Fuchsia 可能不支持。
随着容器和云托管的炒作不断升温,人们很容易想象,任何一家真正有能力的公司都会将软件从物理服务器迁移到云端,并将应用程序容器化。然而,事实并非如此。许多企业在传统硬件上投入了大量资金,并且不愿在近期或远期升级到现代服务器或基于云的替代方案。
Fuchsia 是一款完全现代化的操作系统。因此,它不太可能支持旧版硬件。Linux 的一大卖点就是它对旧版硬件的出色支持,有时甚至在制造商认定产品寿命已尽之后依然如此。
科技巨头和大企业都投资了 Linux。
亚马逊、微软、IBM 以及无数其他公司已在 Linux 上投入了数十亿美元,而使用其 Linux 服务的公司通常也投入了数百万美元。这些投资可能需要数年的规划和执行,而各大公司都会努力从这些昂贵的投资中获取尽可能多的价值。即使这些公司将 Fuchsia OS 引入其较新的基础设施,它们也可能会继续同时运行 Linux 和 Fuchsia。
单片内核通常比微内核性能更高。
单片内核的性能非常出色。虽然这会牺牲一些稳定性,但在 Web 上,性能至关重要。虽然 Google 可能会找到方法让 Fuchsia 的性能保持与其他单片内核相同的水平,但它很可能会像其他微内核一样存在一些性能缺陷。
虽然我认为软件架构很少是选择技术时的决定性因素,但性能下降肯定足以阻止组织将其基础设施迁移到新平台。
紫红色不是一个安全的选择。
科技界众所周知,谷歌经常会终止自己的项目,即使已经为这些项目投入了大量的时间、金钱和人才。
不相信?那就去看看killedbygoogle.com吧。你会看到谷歌多年来(有时甚至长达十多年)支持的项目的“墓地”,这些项目最终都被这家科技巨头叫停或放弃了。
Linux 操作系统自诞生之日起就得到了社区的支持。即使是开源项目,谷歌的产品也严重依赖于其内部工程师,一旦谷歌停止支持,这些产品就可能很快被淘汰。
了解了所有这些,一位首席技术官怎么会放心地建议公司投入巨资,将核心基础设施迁移到一个可能几年后就会停用的平台上呢?这样做的好处值得冒这个险吗?
大型公司可能需要五年以上的时间才能放心迁移到 Fuchsia OS 服务器,而且由于前面列出的原因,对于许多公司来说,这仍然不值得。
押注Linux
我相信,如果谷歌选择投资 Fuchsia OS,无论对消费者还是自由软件倡导者来说都是一件好事。自 Linux 诞生以来的近 30 年里,我们学到了很多,创新的循环应该持续下去。随着谷歌将 Flutter 推广为 Fuchsia、Android、Linux 等平台的跨平台开发解决方案,我希望我们能看到 Linux 桌面软件带来的下游效益,而这些效益原本是无法实现的。Linux 几乎肯定会与 Fuchsia 一起蓬勃发展。
Linux 凭借其可靠的商业价值在服务器领域赢得了一席之地,而一款新的基于微内核的操作系统不太可能影响大多数企业业务,因为许多企业仍在 Apache 和老旧硬件上运行着久经考验的单片 PHP 应用程序。Linux 是一个不错的商业选择。
无论 Fuchsia 发生什么,Stallman 的愿景都是建立一个企业实体无法决定用户运行什么软件以及他们可以用软件做什么的世界,而 GNU/Linux 操作系统可以确保这一愿景的安全。
文章来源:https://dev.to/tylerlwsmith/fuchsia-and-the-server-why-im-betting-on-linux-20ah