神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。
编者按:在苹果最近举行的WWDC上,他们发布了新的MacOS操作系统,macOS 11.0。从10.15跳到11不是一次简单的升级,而是意味着跟过去的告别。知名科技博主Ben Thompson分析了OS X的演变历史。原文标题是:The End of OS X
划重点
OS X是经典Mac OS与NEXTSTEP的结晶;
Mac OS是Apple II+施乐的结晶;
NEXTSTEP是Unix+Mach的结晶;
Unix这个分支是OSX家族的决定性功能
macOS 11.0的惊人之处在于,在某种程度上它更像是iOS 的儿子,而不是Mac OS X的兄弟
但是这会不会意味着macOS背弃Unix,走向封闭?
2002年5月6日,史蒂夫·乔布斯用一场经典Mac OS的葬礼宣告了WWDC的开幕。
在18年后的昨天,OS X终于走到了尽头:macOS 的下一个版本不是10.16,而是11.0。
macOS 11.0操作系统
不过并没有葬礼。
OS X拥有技术圈最迷人的家族树之一。要了解它的重要性,你得了解它的每一个前辈。
OS X家族树
Unix:Unix的确是指起源自AT&T的贝尔实验室的那个操作系统(版权归Novell所有),但是由于跟美国政府(大家普遍批评它对这家电信巨头太温柔了)达成的和解, 大学普遍都拿到了Unix的许可。加州大学伯克利分校开发的伯克利软件发行版(BSD)是Unix最受欢迎的变种之一。
Unix的所有变体都有一个共同点,那就是Unix哲学。《贝尔系统技术杂志》曾在1978年对此进行过解释:
在Unix 系统的开发者和用户当中,有很多准则可以用来对它的独特风格进行解释和推广:
让每个程序把一件事情做好。开展新工作时,重写新代码而不是由于添加新特性而使老的程序变得复杂。
每一个程序的输出预期都会成为(还不知道的)另一个程序的输入。不要让无关的信息令输出显得杂乱无章。避免严格的分栏或者二进制输入形式。不要坚持采用交互式输入。
设计和编译软件,即便是操作系统,也要及早进行测试,理想状态下在几周内实现。对于笨拙的实现要直接丢弃。
优先使用工具而不是不熟悉的帮助,以此来减轻程序员的工作量,哪怕你在结束使用后必须避开这些工具或者直接废弃不用。
Unix操作系统,C语言,以及众多在此环境下开发出来的工具和技术都可以在贝尔系统、大学、政府实验室以及其他商业设施里面找到广泛的使用。这种环境下所鼓励的计算风格影响了新一代的程序员和系统设计人员。也许这就是Unix的故事里面最令人兴奋的地方,因为友好的环境可以提高生产力,而高质量的工具对满足对软件不断增长的需求至关重要。
现如今,你依然可以在macOS 上运行几乎任何的Unix 程序,但是在(特别是在Catalina)进行了一些安全方面的变更之后,你很容易会遇到权限的问题,尤其是在将程序无缝连接到一起时。
Mach:Mach是卡内基梅隆大学开发的一个微内核;微内核的概念是指在最高特权模式下运行操作系统核心功能所需的那些软件,然后把所有其他功能置于较低特权模式下。OS X并没有真正的微内核(出于性能方面的原因,这个BSD子系统用相同的特权模式运行),但是微内核型设计的模块化结构,可以让移植到不同的处理器体系结构或删除不同类型设备不需要的操作系统功能变得更加容易。(当然,移植现代操作系统还需要进行很多的其他工作;这里进行了极大的简化)。
一般而言,开发现代计算机(尤其是移动设备)靠的就是微内核(一种在不同组件之间传递消息的小型的集中化软件)的精神:多个专用芯片在操作系统的指导下完成所有任务。
施乐:史蒂夫·乔布斯拜访施乐的故事众所周知,但是错得离谱;Xerox Alto及其突破性的鼠标驱动的图形用户界面在硅谷非常出名,这要归功于Palo Alto研究中心(PARC)做过的数千次演示,以及他们发表的论文。但PARC的问题在于,施乐更关心靠复印机赚钱,而不是想方设法将Alto推向市场。
但这并不会改变Alto给乔布斯带来了多大的灵感:在参观了PARC之后,他推动Lisa计算机实现图形用户界面,也正是因为此他才接管了Macintosh项目,并决心制造出比过去任何东西都要易用的计算机,而且还要便宜。
Apple:Macintosh不是第一台Apple计算机:第一台是Apple I,然后是标志性的Apple II。Apple II之所以与众不同,是因为它明确把关注重点放在了消费者身上,而不是企业。有趣的是,让Apple II取得成功的是第一个电子表格应用VisiCalc,也就是说Apple II主要是卖给了给企业。尽管如此,事实上,苹果从一开始就一直是一家消费者公司。
所以最好把Mac看作是苹果和施乐的结晶:苹果了解消费者,希望卖产品给他们,而施乐则为这些产品应该长什么样提供了灵感。
与此同时,NeXTSTEP则是Unix 和Mach 的后代:那是一种极端模块化的设计,从自身的体系架构,到对面向对象编程的关注,乃至于所包含的易于集成的不同“工具包”,都体现了这一点。
如此,接下来就有了OS X,它是经典Macintosh OS和NeXTSTEP 的后代。思考OS X的最好办法是这样,它接受了Macintosh以消费者为中心以及界面的范式,而底层则采用了NeXTSTEP的技术。换句话说,Unix这个分支是OSX家族的决定性功能。
2005年,Paul Graham曾写过一篇题为《Mac的回归》的文章。文章里面解释了为什么开发者自1980年代以来会首次重返到苹果这里:
据我所知,所有最好的黑客都在慢慢转向Mac。我的朋友Robert说,他在麻省理工学院的整个研究小组最近都买了Powerbooks。这些家伙不是图形设计师,也不是1990年代中期的时候苹果低谷的时候买Mac的祖母。他们都是OS黑客,硬核到不能再硬核的黑客。
原因当然是OS X。Powerbooks设计精美,还可以运行FreeBSD。你还需要知道什么?
Graham认为,黑客是一个领先指标,所以他才建议自己父亲去买苹果股票:
如果你想知道十年后普通人会用计算机来做什么,只需到一所优秀大学的计算机科学系到处走走即可。无论他们当时在做什么,你今后都会去做。
在“平台”方面,这种趋势更加明显,因为新颖软件都是起源于伟大的黑客,他们往往会先为自己用的计算机编写该软件。硬件靠软件来卖。初期的时候卖出的Apple II很多(如果不是大多数)都是来自那些买来跑VisiCalc的人。为什么Bricklin 和Frankston要为Apple II写VisiCalc?因为他们个人喜欢Apple II。任何一台机器被他们选中都可以成为明星。
如果你想吸引黑客编写可以替你卖硬件的软件,首先得让他们喜欢用你的机器。光有“开放”是不够的。得既要开放又要好。而Mac终于具备了这两点。
有趣的是,Graham让他老爸买苹果股票可谓没人比他更具先见之明:2005年3月31日苹果股票的收盘价是5.15美元,而昨天苹果的收盘价为358.87美元; 不过苹果股价涨幅的主要推动力不是Mac,而是iPhone。
如果要把iOS 放进我上面介绍的家族树里面,大多数人会将其放到Mac OS X之下。但我认为,虽然最好是把iOS 理解为经典 Mac和NeXT的又一个后代,但是这次感觉它的血缘跟家族里面的Apple更亲近一些。换句话说,虽然Mac是“黑客”的理想机器,但用Graham的话来说,iPhone是苹果专注于消费者最纯粹的表达之一。
就像史蒂夫·乔布斯在2007年的发布会上所宣布的那样,iPhone跑的是OS X,但肯定不是Mac OS X:虽然它跑的XNU内核和大多数子系统(增加了一些新功能,用来支持移动电话等)跟Mac OS X一样,但界面却是全新的。值得注意的是,那个界面并未包括terminal。你跑不了Unix 程序。但是,这个新界面对于常规用户来说却要好用得多。
更值得注意的是,iPhone还放弃了部分Unix哲学:应用均跑在独立的沙箱之内,这意味着它们无法访问其他应用或操作系统的数据。这对安全性来说非常重要,这是iOS 不受恶意软件和应用入侵的主要原因——要知道,那些恶意软件和应用会把整个系统都拖入泥潭,但是同时你显然不能“指望每个程序的输出都成为另一个程序的输入”; 后来直到iOS 8添加了共享扩展之后,程序之间才可以共享数据,但哪怕是现在这也受到严格的监管。
与此同时,苹果应用商店也让“让每个程序做好一件事”这一原则对普通消费者开放。你能想到的计算机可以为你效劳的任何用例,,都会有一个“能做那件事的app”。
消费者不在乎这些app之间能不能交谈:光是它们的存在就够他们高兴了,而且他们还可以想下载多少就下载多少app,而不必担心自己手机会发生什么坏事。虽说有沙盒保护操作系统,但每个app均经过了苹果的审查,这一点就已经把没法正常工作或更糟的那些试图欺骗最终用户的app给排除掉了。
至少从商业角度来看,这最终对开发者是有好处的:当然,iPhone被锁定的程度惹毛了很多人,但是苹果的做法却创造了数百万Mac所没有的新客户。它封闭而且很好,这一点对每个人都有利。
macOS 11.0的惊人之处在于,在某种程度上它更像是iOS 的儿子,而不是Mac OS X的兄弟:
macOS 11.0跑着ARM上,就像iOS 一样;实际上,苹果为开发者提供的Developer Transition Kit跟iPad Pro一样都有A12Z芯片。
macOS 11.0的用户界面进行了大改,这不仅极大地受到了iOS的启发,而且似乎也是为触摸订做的。
macOS 11.0尝试打动开发者的主要途径不是靠开放和好,而是靠够容易、够好。
最后这点的种子去年就种下了,靠Catalyst。Catalyst让iPad app移植到Mac上面变得更加容易。有了macOS 11.0,至少跑着ARM上的那个版本,苹果甚至都不需要重新编译:iOS app直接就可以在macOS 11.0 上面运行,而且默认情况下会列在Mac App Store里面(开发者可以选择退出) 。
通过这种方式,苹果利用的是自己最强大的杠杆——所有的iPhone用户。iPhone用户迫使开发者要为iPhone开发app(尽管要按照苹果的规则)。而现在这一点可以用来解决苹果所认为的一个弱点:Mac App Store上面缺乏应用。
但是, Mac App Store缺少应用真的算是弱点吗?我在想有哪些自己在Mac上经常使用的应用时,其中很多都没有出现在Mac App Store里面,这不是因为开发者对苹果要抽走30%的钱表示抗议,而是因为如果遵守苹果的Mac App Store上架限制的话,他们的应用根本就跑不了。
最主要的限制恰恰是让iOS 如此受信赖的沙箱技术。那种信任总是要付出代价的。那种代价就是开发出可以“减轻任务”(用Unix哲学的话来说)的工具的能力,哪怕其实现手段会为更邪恶的目的打开大门。
幸运的是,macOS 11.0还保留了祖先NeXTSTEP的传统:非Mac App Store里面的应用还可以用。当然,那些应用会良莠不齐((好的用例只会受到想象力以及权限对话框的限制,坏的可能会访问其他应用和你的文件)。值得注意的是,这甚至会成为一个令人担心的问题:苹果最近在iOS 上的举动,特别是围绕要求SaaS app必须在应用内购买的举动,给人感觉就像是朝着施乐走近了一步,这家公司对钱太着迷了,以至于忽略了自己(像当年的施乐一样)正在给竞争对手做关于未来的演示;有人怀疑这种迷恋会不会一路渗透到Mac这里。
就目前来看,答案是否定的,我的乐观有一个原因:在由iPhone驱动的巨大硬件创新的基础之上搭建一个开放平台似乎令人赞叹。此外,大家还可以争辩(希望?)说,相对榨干iPhone创造出来的那座矿山的每一块矿石,这是未来增长的一个更加可靠的驱动力。至少,跟越绷越紧的iOS相比,这为具备更多未来选项的全新事物保留了可能性。目前为止,OS X的遗产还在。
译者:boxi。