OS X的终结

2020-06-24 02:07:08

2002年5月6日,史蒂夫·乔布斯(Steve Jobs)为WWDC揭幕,为Classic Mac OS举行葬礼:

18年后的昨天,OS X终于走到了自己的终点:下一版MacOS不是10.16,而是11.0。

OSX拥有技术上最迷人的家谱之一;要理解它的意义,需要了解它的每一个前辈。

Unix:Unix指的是起源于美国电话电报公司(AT&;T;)贝尔实验室(其版权归Novell所有)的一种特定操作系统,但由于与美国政府达成和解(因对这家电信巨头宽松而广受批评),Unix被特别广泛地授权给了大学。由此产生的最流行的变体之一是由加州大学伯克利分校开发的伯克利软件分发(BSD)。

Unix的所有变体都有一个共同点,那就是Unix哲学;贝尔系统技术杂志在1978年解释说:

一些格言在Unix系统的构建者和用户中流行起来,用来解释和宣传其独特的风格:

让每个程序做好一件事。要做一项新的工作,要重新构建,而不是通过添加新的“功能”来使旧程序复杂化。

期望每个程序的输出成为另一个未知程序的输入。不要用无关的信息把输出搞得乱七八糟。严格避免列式或二进制输入格式。不要坚持交互式输入。

设计和构建软件,甚至操作系统,尽早试用,最好是在几周内。毫不犹豫地扔掉笨拙的部分,重建它们。

优先使用工具而不是不熟练的帮助来减轻编程任务,即使您不得不绕道构建工具,并期望在使用完工具后扔掉其中的一些工具。

Unix操作系统、C编程语言以及在此环境中开发的许多工具和技术在贝尔系统以及大学、政府实验室和其他商业安装中得到广泛使用。这种环境所鼓励的计算风格正在影响新一代程序员和系统设计人员。这可能是Unix故事中最令人兴奋的部分,因为友好的环境和高质量的工具所促进的生产力的提高对于满足日益增长的软件需求是必不可少的。

今天,您仍然可以在MacOS上运行几乎任何Unix程序,但尤其是在Catalina中所做的一些安全更改中,您很容易遇到权限问题,特别是在将程序无缝链接在一起时。

Mach:Mach是卡内基梅隆大学(Carnegie Mellon University)开发的微内核;微内核的概念是以最高特权模式运行操作系统核心功能所需的最少量软件,并将所有其他功能置于较低特权模式。OS X没有真正的微内核-出于性能原因,BSD子系统在相同的特权模式下运行-但微内核型设计的模块化结构使移植到不同处理器体系结构或删除不同类型设备不需要的操作系统功能变得更容易(当然,在移植现代操作系统时还有许多其他工作;这是一个戏剧性的简化)。

更广泛地说,微内核-在不同组件之间传递消息的一小块集中式软件-的精神在于现代计算机,特别是移动设备的架构:多个专门的芯片在组织它们的操作系统的指导下执行离散的任务。

施乐(Xerox):史蒂夫·乔布斯(Steve Jobs)访问施乐的故事是错误的,也是众所周知的;施乐Alto及其开创性的鼠标驱动的图形用户界面在硅谷广为人知,这要归功于帕洛阿尔托研究中心(Parc)所做的数千个演示和发表的论文。帕洛阿尔托研究中心的问题是,施乐更关心的是从复印机赚钱,而不是想办法将Alto推向市场。

这并没有改变Alto对乔布斯有多大的启发作用:在那次访问之后,他推动Lisa电脑拥有图形用户界面,这也是他接管Macintosh项目的原因,他决心制造一款比之前任何电脑都更容易使用的廉价电脑。

苹果:Macintosh并不是第一台苹果电脑:那是Apple I,然后是标志性的Apple II。Apple II的独特之处在于它明确地面向消费者,而不是企业;有趣的是,Apple II取得成功的是VisiCalc,这是第一款电子表格应用程序,也就是说,Apple II主要面向企业销售。尽管如此,事实是苹果从一开始就是一家消费者公司。

这就是为什么Mac最好被认为是苹果和施乐的孩子:苹果了解消费者,并希望向他们销售产品,而施乐提供了这些产品应该是什么样子的灵感。

与此同时,NeXTSTEP是Unix和Mach的产物:这是一种极其模块化的设计,从它自己的体系结构到它对面向对象编程的关注,以及它包含了不同的“工具包”,这些“工具包”很容易组装在一起创建新的程序。

所以我们来到了OSX,经典的Macintosh OS和NeXTSTEP的子代。思考OSX的最好方式是,它把Macintosh的消费者焦点和界面范例放在NeXTSTEP的技术之上。换句话说,该系列的Unix端是OSX的定义特性。

2005年,保罗·格雷厄姆写了一篇题为“Mac的回归”的文章,解释了为什么开发者自20世纪80年代以来首次重返苹果:

我认识的所有最好的黑客都在逐渐转向Mac。我的朋友罗伯特说,他在麻省理工学院的整个研究小组最近给自己买了Powerbook。这些人不是在20世纪90年代中期苹果公司低谷时购买Mac电脑的平面设计师和老奶奶。他们是你能找到的最铁杆的操作系统黑客。

原因当然是OSX。Powerbook设计精美,运行FreeBSD。你还需要知道什么?

格雷厄姆辩称,黑客是一个领先指标,这就是为什么他建议他的父亲购买苹果股票:

如果你想知道十年后普通人会用电脑做什么,就去一所好大学的CS系走走吧。不管他们在做什么,你都会去做。

在“平台”方面,这一趋势更加明显,因为新奇的软件源自伟大的黑客,他们倾向于先为他们个人使用的任何计算机编写软件。软件销售硬件。苹果II最初的销量,即使不是大部分,也有很多来自购买了一台来运行VisiCalc的人。为什么Bricklin和Frankston要为Apple II编写VisiCalc?因为他们个人很喜欢。他们可以选择任何一台机器来制造一颗恒星。

如果你想吸引黑客编写软件来销售你的硬件,你必须让它成为他们自己使用的东西。仅仅让它“开放”是不够的。它必须是开放的,而且是好的。最终,开放和良好的Mac又是什么了。

有趣的是,格雷厄姆的股票电话会议非常有先见之明:苹果股价在2005年3月31日收于5.15美元,昨天收于358.87美元;不过,苹果股价上涨的主要推动力不是苹果电脑,而是苹果手机。

如果要把iOS添加到我上面说明的家谱中,大多数人会把它放在Mac OS X下;不过,我认为,最好的理解是,iOS是Classic Mac和NeXT的另一个孩子,但这一次的相似之处在于家族中的苹果一边。或者换一种说法,虽然Mac是“黑客”的完美机器,用格雷厄姆的话说,iPhone是苹果专注于消费者的最纯粹的表达之一。

正如史蒂夫·乔布斯(Steve Jobs)在2007年发布时宣称的那样,iPhone运行的是OS X,但它肯定不是Mac OS X:它运行的是相同的XNU内核,大部分子系统都是相同的(增加了一些新功能,以支持蜂窝功能等),但它有一个全新的界面。值得注意的是,该接口不包括终端;您不能运行任意的Unix程序。不过,这个新界面对普通用户来说要容易得多。

更值得注意的是,iPhone也放弃了Unix哲学的一部分:应用程序都运行在单独的沙盒中,这意味着它们无法访问其他应用程序或操作系统的数据。这对安全性非常有利,也是iOS没有遭受恶意软件和应用程序将整个系统拖入泥潭的主要原因,但人们肯定不能“指望每个程序的输出都成为另一个程序的输入”;在iOS8中添加共享扩展之前,程序之间根本不能共享数据,即使是现在也受到了严格的监管。

同时,App Store把原则一--“让每个程序做好一件事”--变成了普通消费者可以接触到的东西。不管你能为随身携带的计算机想出什么可能的用例,好吧,“有一款应用程序可以做到”:

消费者并不关心这些应用程序不能相互交谈:他们只是对自己的存在感到高兴,他们可以想下载多少就下载多少,而不用担心自己的手机-或者他们自己-发生了不好的事情。虽然沙盒保护了操作系统,但事实上每款应用都经过了苹果的审查,淘汰了不起作用的应用,或者更糟糕的是,试图欺骗最终用户。

这最终对开发者来说是件好事,至少从商业角度来看是这样:当然,iPhone被限制的程度让许多人感到恼火,但苹果的做法创造了数百万Mac从未有过的新客户;事实上,苹果关闭了,而且对每个人都有好处。

MacOS11.0最引人注目的地方在于,它给人的感觉更像是iOS的儿子,而不是Mac OS X的兄弟:

MacOS11.0在ARM上运行,就像iOS一样;事实上,苹果向开发者提供的开发者过渡工具包(Developer Transition Kit)与iPad Pro使用相同的A12Z芯片。

MacOS11.0对用户界面进行了彻底改造,不仅看起来受到了iOS的极大启发,而且似乎也是为触控而设计的。

MacOS11.0试图获得开发人员,主要不是通过开放和优秀,而是通过简单和足够好。

最后这一点的种子是去年在Catalyst上种下的,这使得把iPad应用移植到Mac上变得更容易;有了MacOS11.0,至少是可以在ARM上运行的版本,苹果甚至不需要重新编译:iOS应用只需要在MacOS11.0上运行,默认情况下它们将在Mac应用商店中(开发者可以选择退出)。

通过这种方式,苹果正在利用他们最强大的杠杆点--所有iPhone消费者,尽管苹果的规定迫使开发者为iPhone开发应用程序--来解决该公司认为的一个弱点:Mac App Store中应用程序的匮乏。

然而,缺少Mac App Store应用程序真的是一个弱点吗?当我考虑到我经常在Mac上使用的应用程序时,Mac App Store中没有大量的应用程序,这不是因为开发者抗议苹果从销售额中抽成30%,而只是因为考虑到苹果对Mac应用程序商店中的应用程序的限制,这些应用程序不起作用。

值得注意的是,主要的限制是使iOS变得如此值得信任的沙箱技术;这种信任总是有代价的,也就是用Unix哲学的话来说,就是构建能够“减轻任务”的工具,即使这样做的方法会打开通向更邪恶目的的大门。

幸运的是,MacOS11.0保留了它的NeXTSTEP传统:非Mac App Store应用程序仍然被允许,无论是更好的(新的用例只受想象力和权限对话框的限制)还是更差的(访问其他应用程序和您的文件)。值得注意的是,这甚至是一个令人担忧的问题:苹果最近在iOS上的举措,特别是要求SaaS应用程序在应用内购买的举措,感觉像是在偏向施乐(Xerox),这家公司如此痴迷于赚钱,以至于忽视了它正在向竞争对手展示未来;有人想知道,这种痴迷是否会渗透到Mac上。

就目前而言,答案是否定的,这是一个值得乐观的理由:在iPhone推动的巨大硬件创新之上建立一个开放平台,听起来令人惊叹。此外,人们可以争辩(希望?)。与从iPhone创造的绿地榨取每一分钱相比,这是一个更可靠的未来增长动力。至少,让全新事物的可能性敞开大门,比起在iOS上更加严格地牵线,留下了更多的未来选择。目前,OSX的遗产还在继续。