被苹果“先捧后杀”的操作系统
在计算机的发展过程中出现过许多不同的操作系统,比如DOS、Mac OS、Windows、Linux、Free BSD、Unix/Xenix、OS/2等等,其中90年代的很多操作系统至令仍风头强劲。但是同时期苹果公司力捧的Copland却折戟沉沙,悄然泯灭。其背后究竟为何?本文一探究竟。
90年代的那些操作系统们
90年代左右的操作系统市场是极为热闹的。
彼时的OS/2 1.x是一个全新的,和传统操作系统有很大不同的操作系统,它只保留了对DOS系统的有限的向下兼容性。
OS/2 2.x和后续版本则使用了多个DOS虚拟机来处理DOS仿真难题,因为它们通过80386的虚拟86模式,运行在带有硬件辅助的DOS虚拟机的芯片上。
NeXTstep是个UNIX操作系统,它早于FreeBSD,但它们是基于同一“BSD Unix”代码库的。NeXTstep“仅仅”引进了一个新的显示层,这个显示层本身是基于已有的Adobe PostScript代码,这在当时还是相对新的面向对象的开发技术。它是个了不起的进步,因为它是建立在已有代码的基础上,并不需要考虑向下兼容性。
BeOS则是一个从新打造的全新操作系统,它完全不需要考虑和其他任何操作系统的向下或横向兼容性。
NT是基于OS/2 3.x开发的,这个计划中的兼容不同CPU的便携式操作系统版本,集成了DEC公司的VMS操作系统的许多设计思想,因为由于它的首席架构师Dave Cutler同时也是VMS的首席架构师。另外,NT操作系统的核心不兼容任何其他系统,这很难被理解。NT也没有一个Win32兼容的内核。并且NT操作系统与其他任何系统都不兼容(包括VMS),它就是一个新事物。但是NT支持个性化,就像在内核之上运行了一个仿真层。当NT交付时,它包括了3种版本:OS/2版,POSIX版和Win32版——OS/2版现在已被废弃了; POSIX版已经发展成Linux子系统;Win32版仍然存在,只不过现在支持64位。
关键是,以上这些操作系统都不是任何其它操作系统的增强版本,也没有受限于对已有的驱动、扩展、应用程序或其他任何方面的兼容性。
当然的苹果公司想要走得更远,因此试图开发另外一个新的操作系统(Copland)来替换它那基于68000处理器的单用户单任务操作系统(后来变成了协作式多任务,也不是很好,68000处理器不像68030或者68040那样有存储器硬件保护机制)。
新的苹果操作系统将引入这些新特性:抢占式多任务、虚拟内存、存储器保护、基于标准的网络集成,等等。所有这些改变都将支持已有的应用程序,没有计划去重新设计或重写这些应该已有的应用程序。
不支持已有应用程序,就等于新操作系统没有市场,也意味着失败。
苹果的Copland最终失败了
与任何其他公司相比,苹果走的是一条更难的有争议性的路,没有什么经验可以借鉴,甚至当时连支持虚拟机的基础硬件都没有。
很遗憾这个操作系统(Copland)失败了。其实苹果公司已接近成功,它确实做出了一个可工作的原型。
苹果的Copland
人们常说,不是苹果公司接管NeXT公司,也不是苹果收购了NeXT公司。从很多重要方面来看,是NeXT公司接管了苹果公司。大多数苹果操作系统的开发人员和项目经理都离开了,NeXT公司的开发团队取而代之。
NeXT管理层抛弃了Copland,基本上除了QuickTime之外的大多数苹果自有的技术,如OpenDoc、OpenTransport、GameSprockets,都被抛弃。这是非常勇敢、彻底的行动。苹果已有的MacOS经典的API被采用了,这些API并不是一开始就计划和设计好的,在经过了近15年的演化,并且去除了那些不适合在一个整洁的、现代化的、具备内存管理能力的多任务操作系统上工作的所有部分,由此简化而来的清洁版API被命名为“Carbon”。这些API提供给开发人员使用,如果他们希望他们的应用程序在新的苹果操作系统上能运行,那就必须使用这些API。
或者,他们可以使用已有的、更干净的、和更丰富的NeXT API,现在它被命名为“Cocoa”。
NeXT开发团队没有真正尝试与经典MacOS系统兼容。相反,他们只是计划在虚拟机中运行所有经典的MacOS。在新的操作系统发布后,计算机的硬件性能将足够支持在基于Unix的NeXTstep系统(现在被重新命名为“MacOS X”)之上的窗口中运行一个完整的经典MacOS环境。如果你想让你的应用程序运行在虚拟机之外,你必须在”Carbon”上重建你的应用程序。基于”Carbon”的应用程序既可以运行在经典Mac OS的后续版本上,也可以运行在OS X的后期版本上。
这与NT所做的类似:它在基于NT的“个性化”中提供了一个Win32 API的安全子集,也给基于Win16的应用提供了DOS虚拟机。
这是一次勇敢的行动,令人印象深刻的是它工作得很好。这是为了拯救苹果公司和苹果操作系统平台的孤注一掷,当人被逼到墙角别无选择时,更容易做出重大的、勇敢的决定……尤其是那些让你陷入绝境的错误是别人造成的。
一大批老的Apple开发人员都厌恶地离开了,多年来他们所有的时间都放在Apple子系统和API的开发上,结果却被丢进了垃圾堆。一些第三方开发人员也不太高兴,但是至少现在有一个很好的前进方向。
苹果公司还有其他选择
事后看来,很明显苹果公司确实有其他选择。它有一个好的、相对现代的操作系统,以它为基础是可以向前推进的,这就是A/UX,它是苹果公司开发的基于680x0的Unix系统,基本上是作为满足美国军事采购的一个备选方案业余项目完成的。A/UX给人印象深刻的是它的推出时间——它在1988年推出,比Windows 3.0还早。它可以同时运行Unix应用程序和经典的MacOS应用程序,并在Unix上提供了一个友好的界面,而在80年代末和90年代初,Unix的界面非常丑陋。
然而A/UX从没有被移植到新的PowerPC苹果电脑上。
从另一方面来看,对NeXT公司的收购让史蒂夫·乔布斯回到了苹果。而NeXTstep操作系统也有着世界一流的开发工具,但是A/UX操作系统没有,而吉尔·阿梅里奥时代苹果公司的另一个外部可选项BeOS操作系统也不具备这一优势。
年轻的乔布斯
没有乔布斯,就没有下一代开发工具,也没有今天的苹果。
原文:https://liam-on-linux.livejournal.com/60604.html#/60604.html
作者:Liam Proven
译者:苏本如,责编:郭芮
推荐阅读:
点击“阅读原文”,打开 APP 阅读更顺畅