标签 ESR 下的文章

近日,著名开源领袖、写出《大教堂与集市》的 ESR(Eric S. Raymond)撰文指出,微软的 Windows 可能最后会切换到 Linux 内核,成为一个保留 Windows 界面的 Linux。微软目前的主要收入来源于其云服务,而操作系统业务对微软来说,所能贡献的利润比例会越来越少。Windows 将来可能是运行于 Linux 内核之上的一个桌面环境和一个越来越薄的 Windows 兼容层 —— 以兼容原有的 Windows 二进制程序。

对于 ESR 的这个观点,老王是赞同的:

这些年来,随着云技术的发展,越来越多的操作系统厂商将业务重点从单机操作系统转向云基础设施。在这一点上,从著名的 Linux 发行版 Ubuntu 的发行商 Canonical 身上也可见一斑。

而另一方面,不说谷歌的 Chromebook 上运行的 Chrome OS,主流的操作系统 macOS 也早已针对 Apple 公司的硬件免费提供。在这种情况下,操作系统已经不是早些年的现金奶牛了。

从微软这几年发布的 Windows 的更新中屡屡出现严重问题所反映出的其内部质控环境的劣化,可见微软已经逐步减少了对操作系统部门的投入。因此,ESR 的这个预测可谓有一定的道理。

看来,我们终将能看到 Linux 打败 Windows 的一天,真正地、彻底地解决 “Ubuntu 第一号 bug”。或许,这不能称之为打败,相对于 Linux 在服务器领域、移动领域、高性能计算领域的高歌猛进,Linux 一直在桌面领域方面进展乏力,这应该说是 Linux 和 Windows 的融合更加合适。

以下是 ESR 的原文译文:

桌面战争的最后阶段?

在微软 Windows 操作系统最近的发展中,最令人感兴趣的两个发展是 Windows System for Linux(WSL)和他们将微软 Edge 浏览器移植到 Ubuntu。

对于那些没有注意到的人来说,WSL 允许未经修改的 Linux 二进制文件在 Windows 10 下运行。没有仿真层,没有中间层,它们只需加载就能运行。

微软开发人员现在正在 Linux 内核中提供功能来改进 WSL。而这指向了一个迷人的技术方向。为了理解其中的原因,我们需要注意到自 2010 年推出云服务以来,微软的收入来源是如何变化的。

在十年后,Azure 为微软提供了大部分的创收。Windows 的垄断地位已经成为一个旁观者,传统台式电脑(这是它唯一占据主导地位的市场)的销量在下降。相应地,花在 Windows 开发上的投资回报率也在下降。随着 PC 的销量持续下滑,它不可避免地将不再是利润中心,而变成业务的拖累。

从冷血的利润最大化的角度来看,这意味着继续开发 Windows 是微软宁愿不做的事情。相反,他们最好把更多的资本投入到 Azure 上 —— 据说现在 Azure 运行的 Linux 实例比 Windows 还多。

我们的第三个理由是 Proton。Proton 是一个仿真层,它允许在 Linux 上运行 Steam 上发布的 Windows 游戏。它还不够完美,但已经很接近完美了。我自己就用它在这个巨兽上玩《战舰世界》。

对于游戏而言,它们是对 Windows 仿真层最苛刻的压力测试,比商业软件更苛刻。我们可能已经到了类似 Proton 的技术完全可以在 Linux 上运行 Windows 商业软件的地步。如果还没有,那我们很快就会实现。

那么,如果你是微软公司的战略专家,考虑到所有这些因素,利润最大化的前进道路是什么?

它会是这样:微软 Windows 成为 Linux 内核上的 Proton 一样的模拟层。随着时间的推移,这个层会越来越薄,因为更多的支持会落在主线内核源代码上。而经济上的动机是,由于需要在公司内部完成的开发成本越来越少,因此微软可以减去越来越多的开发成本。

如果你认为这是天方夜谭,那你可以再思考一下。证明这已经是(微软的)计划的最好证据是,微软已经将 Edge 移植到 Linux 下运行。这只有这种方式是有意义的:那就是作为一个试运行,让 Windows 实用程序套件的其他部分摆脱对任何仿真层的依赖。

所以,这一切指向的最终状态是。新的 Windows 将主要是一个 Linux 内核,在它上面有一个旧的 Windows 仿真层,但 Edge 和其余的 Windows 用户空间实用程序并不使用仿真。仿真层是为了游戏和其他传统的第三方软件而存在的。

经济上的压力会让微软取消仿真层。部分原因是它完全是一个成本中心。部分原因是因为他们想降低运行 Azure 的复杂性成本。 Windows/Linux 每一点融合都有助于实现这一点 —— 可以减少管理和预期的支持费用。

最终,微软将会宣布结束对 Windows 的仿真。操作系统本身,以及它的用户空间工具,一段时间后,会在一个精心保存的旧 Windows 用户界面下成为 Linux。第三方软件供应商会停止发布 Windows 二进制文件,转而采用原生 Linux API 的 ELF 二进制文件……。

……而 Linux 终将赢得桌面战争,不是通过取代 Windows,而是通过合作。也许这一直是它必须要做的事情。

作为开源爱好者,你一定读过 ESR(Eric S. Raymond)的里程碑著作《大教堂与集市》,甚至在各种开源集会中多次见过他的身影。

上个月,ESR 在 www.patreon.com 上发起来一份捐赠众筹,请求大家帮助他,让他能继续为互联网世界奉献。以下是他的众筹全文:

Every time you use a Web browser, locate yourself on Google Maps, draw money from an ATM, or play on a game console, you rely on computer code I wrote and gave away.

每当你使用浏览器、在 Google 地图上定位、从 ATM 里面取钱、或者玩主机游戏时,你都用到了我编写和贡献的那些计算机代码。

The Internet was built by people like me. We're still out there, patiently building things and fixing bugs and putting in our time to make sure your world keeps working. We're mostly volunteers, because there is no way to wrap a business model around the most essential services. We do what we do for love, and because software is our art - and because, in the Internet-dependent 21st century, we know civilization would be lost without us just as surely as if the roads and sewers and power grid stopped working.

互联网是由像我这样的人构建的。我们仍然在工作,耐心的建设、修复问题、花费我们的时间来让你的世界继续工作。我们大多是志愿者,因为没有办法将这些基础服务包装到一个商业模式上。我们为爱而工作,因为软件就是我们的艺术,也因为我们知道,在离不了互联网的21世纪,如果没有我们,文明就将不再,就像没有了道路、下水道和电网一样。

It's hard to notice us, because we're not the people who write the programs you can easily see. Ours is the software behind the software - the programs and service libraries that paint pixels on your display, move bits along the wires, allow hardware to talk to other hardware. (For those of you more technically inclined, I'm talking about systems code rather than applications.)

你很难注意到我们,因为我们并非编写你常见程序的人。我们编写的是软件背后的软件——这些程序和服务库在你显示器上渲染像素、沿着电路移动字节、让硬件互相通讯。(说的更技术些,我这里说的是系统代码而不是应用。)

Though I'm a techie, I'm in a situation similar to a fine artist because the market has not figured out how to value and reward the work I feel called to do. Unlike most artists, it wouldn't be difficult for me to get a well-paid job - but then I'd have to work on what an employer wants, rather than what the world actually needs.

虽然我是一个技术人员,但我现在的这种处境更像一位优秀的艺术家,因为市场上没有办法评估我的价值和奖励我做的事情。不像大多数艺术家,我要找一份收入不菲的工作并不困难——但是这样我就得为这份薪水而工作了,而不是真正在世界所需要的地方奉献自己。

Pledge to me so I can keep delivering what the world actually needs.

请为我捐款吧,让我能继续为世界而奉献。

你可能会吃惊,ESR 这样伟大的人,怎么会面临生活困窘?

那是因为,奥巴马医改法案让他的妻子丢掉了全职工作及医保,另外,这个医改法案让个人健康保险费用涨到了“天上”。所以,他现在每个月要支出超过了按揭的费用。他每个月去看医生的费用就需要 $973,而这笔钱没有了着落。

如果你也愿意为我们的 ESR 捐赠一点——哪怕是 $1,那么请点此:https://www.patreon.com/esr?ty=h

截止到本文发稿时,ESR 已经达成了第一个里程碑 $500(购买测试装备来改进 NTP 互联网时间服务)。目前正在准备完成第二个里程碑 $973(每月医保支出) ,现在已经有110为捐赠者,每月达到了 $615 的捐赠。

在得到捐赠一个月之后,ESR 写了一篇博文,讲述了他是如何支配这些钱的:

在8月2号我去度假之前,我建立了一个捐赠众筹页。这件事的背景是我现在为 NTPsec 工作并获得了一些稳定的收入,但并不多。我的书的版税持续减少,而且我的妻子 Cathy 自从奥巴马医改法案使她失去她的全职的法律工作后,接手了所有她能接到的法律合同工作,但也收入甚微。另外,我们那辆开了八年的车也出了问题,修它的费用比它自身价值都贵得多,而房子也需要一个新的屋顶了,它看起来已经破得不行了。

(没错,我们的确有一些储蓄跟股票。但是,不,我不想碰这些资金,因为我还不想到我真的老的时候得去领救助金过活,或者因为挨冻受饿而死。况且,即便这样子做不会跟我的价值观相冲突,但是指望2035年的美国政府能够让我有足够的钱来购买食物和住所的这种想法再愚蠢不过了。)

稍微使我惊讶的是,在一个月的捐献中,这个页面吸引了67个赞助者,总共捐赠409.17美元,我当初想不到能得到这么多捐赠,毕竟这个网站看起来完全是面向那些头戴贝雷帽、鼻子穿环的艺术家人群的。但它确实管用,一定程度上。

所有这些也是为什么现在我新发布的公告出现在 Patreon 上(基本上所有的),而不是博客上。这是我最接近艺术内容的东西了,而它也确实也增加了捐赠金额。

第一个月份的 Patreon 捐款只够让我给 Great Beast 装额外 32GB 内存,这是为了进行 GCC 的 Subversion-to-Git 转换的工作需要的。它解决不了多少(例如说)医疗保险问题,感谢那位专权的混蛋,不断地插手干涉把医疗费用搅得齐天高。(还因此牵连了我妻子的工作--这事件在心理上对她伤害不少)

如果你喜欢这个博客,请慷慨地捐赠吧。无论你以“娱乐”之名,还是以“支持 GNOME 的基础建设,让文明延续下去”之名,每个人的一点点帮忙能使我们走得更远。

近来我一直在与某资深开源开发团队中的多个成员缠斗,尽管密切关注我的人们会在读完本文后猜到是哪个组织,但我不会在这里说出这个组织的名字。

怎么让某些人进入 21 世纪就这么难呢?真是的...

我快 56 岁了,也就是大部分年轻人会以为的我将时不时朝他们发出诸如“滚出我的草坪”之类歇斯底里咆哮的年龄。但事实并非如此 —— 我发现,尤其是在技术背景之下,我变得与我的年龄非常不相称。

在我这个年龄的大部分人确实变成了爱发牢骚、墨守成规的老顽固。并且,尴尬的是,偶尔我会成为那个打断谈话的人,我会指出他们某个在 1995 年(或者在某些特殊情况下,1985 年)时很适合的方法... 几十年后的今天就不再是好方法了。

为什么是我?因为年轻人在我的同龄人中很难有什么说服力。如果有人想让那帮老头改变主意,首先他得是自己同龄人中具有较高思想觉悟的佼佼者。即便如此,在与习惯做斗争的过程中,我也比看起来花费了更多的时间。

年轻人犯下无知的错误是可以被原谅的。他们还年轻。年轻意味着缺乏经验,缺乏经验通常会导致片面的判断。我很难原谅那些经历了足够多本该有经验的人,却被长期的固化思维蒙蔽,无法发觉近在咫尺的东西。

(补充一下:我真的不是保守党拥护者。那些和我争论政治的,无论保守党还是非保守党都没有注意到这点,我觉得这颇有点嘲讽的意味。)

那么,现在我们来讨论下 GNU 更新日志文件(ChangeLog)这件事。在 1985 年的时候,这是一个不错的主意,甚至可以说是必须的。当时的想法是用单独的更新日志条目来记录多个相关文件的变更情况。用这种方式来对那些存在版本缺失或者非常原始的版本进行版本控制确实不错。当时我也在场,所以我知道这些。

不过即使到了 1995 年,甚至 21 世纪早期,许多版本控制系统仍然没有太大改进。也就是说,这些版本控制系统并非对批量文件的变化进行分组再保存到一条记录上,而是对每个变化的文件分别进行记录并保存到不同的地方。CVS,当时被广泛使用的版本控制系统,仅仅是模拟日志变更 —— 并且在这方面表现得很糟糕,导致大多数人不再依赖这个功能。即便如此,更新日志文件的出现依然是必要的。

但随后,版本控制系统 Subversion 于 2003 年发布 beta 版,并于 2004 年发布 1.0 正式版,Subversion 真正实现了更新日志记录功能,得到了人们的广泛认可。它与一年后兴起的分布式版本控制系统(Distributed Version Control System,DVCS)共同引发了主流世界的激烈争论。因为如果你在项目上同时使用了分布式版本控制与更新日志文件记录的功能,它们将会因为争夺相同元数据的控制权而产生不可预料的冲突。

有几种不同的方法可以折衷解决这个问题。一种是继续将更新日志作为代码变更的授权记录。这样一来,你基本上只能得到简陋的、形式上的提交评论数据。

另一种方法是对提交的评论日志进行授权。如果你这样做了,不久后你就会开始思忖为什么自己仍然对所有的日志更新条目进行记录。提交元数据与变化的代码具有更好的相容性,毕竟这才是当初设计它的目的。

(现在,试想有这样一个项目,同样本着把项目做得最好的想法,但两拨人却做出了完全不同的选择。因此你必须同时阅读更新日志和评论日志以了解到底发生了什么。最好在矛盾激化前把问题解决....)

第三种办法是尝试同时使用以上两种方法 —— 在更新日志条目中,以稍微变化后的的格式复制一份评论数据,将其作为评论提交的一部分。这会导致各种你意想不到的问题,最具代表性的就是它不符合“真理的单点性(single point of truth)”原理;只要其中有拷贝文件损坏,或者日志文件条目被修改,这就不再是同步时数据匹配的问题,它将导致在其后参与进来的人试图搞清人们是怎么想的时候变得非常困惑。(LCTT 译注:《程序员修炼之道》(The Pragmatic Programmer):任何一个知识点在系统内都应当有一个唯一、明确、权威的表述。根据Brian Kernighan的建议,把这个原则称为“真理的单点性(Single Point of Truth)”或者SPOT原则。)

或者,正如这个我就不说出具体名字的特定项目所做的,它的高层开发人员在电子邮件中最近声明说,提交可以包含多个更新日志条目,并且提交的元数据与更新日志是无关的。这导致我们直到现在还得不断进行记录。

当时我读到邮件的时候都要吐了。什么样的傻瓜才会意识不到这是自找麻烦 —— 事实上,在 DVCS 中针对可靠的提交日志有很好的浏览工具,围绕更新日志文件的整个定制措施只会成为负担和拖累。

唉,这是比较特殊的笨蛋:变老的并且思维僵化了的黑客。所有的合理化改革他都会极力反对。他所遵循的行事方法在几十年前是有效的,但现在只能适得其反。如果你试图向他解释这些不仅仅和 git 的摘要信息有关,同时还为了正确适应当前的工具集,以便实现更新日志的去条目化... 呵呵,那你就准备好迎接无法忍受、无法想象的疯狂对话吧。

的确,它成功激怒了我。这样那样的胡言乱语使这个项目变成了很难完成的工作。而且,同样的糟糕还体现在他们吸引年轻开发者的过程中,我认为这是真正的问题。相关 Google+ 社区的人员数量已经达到了 4 位数,他们大部分都是孩子,还没有成长起来。显然外界已经接受了这样的信息:这个项目的开发者都是部落中地位根深蒂固的崇高首领,最好的崇拜方式就是远远的景仰着他们。

这件事给我的最大触动就是每当我要和这些部落首领较量时,我都会想:有一天我也会这样吗?或者更糟的是,我看到的只是如同镜子一般对我自己的真实写照,而我自己却浑然不觉?我的意思是,我所得到的印象来自于他的网站,这个特殊的笨蛋要比我年轻。年轻至少 15 岁呢。

我总是认为自己的思路很清晰。当我和那些比我聪明的人打交道时我不会受挫,我只会因为那些思路跟不上我、看不清事实的人而沮丧。但这种自信也许只是邓宁·克鲁格效应(Dunning-Krueger effect)在我身上的消极影响,我并不确定这意味着什么。很少有什么事情会让我感到害怕;而这件事在让我害怕的事情名单上是名列前茅的。

另一件让人不安的事是当我逐渐变老的时候,这样的矛盾发生得越来越频繁。不知怎的,我希望我的黑客同行们能以更加优雅的姿态老去,即使身体老去也应该保持一颗年轻的心灵。有些人确实是这样;但可惜绝大多数人都不是。真令人悲哀。

我不确定我的职业生涯会不会完美收场。假如我最后成功避免了思维僵化(注意我说的是假如),我想我一定知道其中的部分原因,但我不确定这种模式是否可以被复制 —— 为了达成目的也许得在你的头脑中发生一些复杂的化学反应。尽管如此,无论对错,请听听我给年轻黑客以及其他有志青年的建议。

你们——对的,也包括你——一定无法在你中年老年的时候保持不错的心灵,除非你能很好的控制这点。你必须不断地去磨练你的内心、在你还年轻的时候完成自己的种种心愿,你必须把这些行为养成一种习惯直到你老去。

有种说法是中年人锻炼身体的最佳时机是 30 岁以前。我以为同样的方法,坚持我以上所说的习惯能让你在 56 岁,甚至 65 岁的时候仍然保持灵活的头脑。挑战你的极限,使不断地挑战自己成为一种习惯。立刻离开安乐窝,由此当你以后真正需要它的时候你可以建立起自己的安乐窝。

你必须要清楚的了解这点;还有一个可选择的挑战是你选择一个可以实现的目标并且为了这个目标不断努力。这个月我要学习 Go 语言。不是指围棋,我早就玩儿过了(虽然玩儿的不是太好)。并不是因为工作需要,而是因为我觉得是时候来扩展下我自己了。(LCTT 译注:围棋的英文也是“Go”)

保持这个习惯。永远不要放弃。


via: http://esr.ibiblio.org/?p=6485

作者:Eric Raymond 译者:Stevearzh 校对:Mr小眼儿

本文由 LCTT 原创翻译,Linux中国 荣誉推出