40岁的Unix还能走多远?

日期: 2009-06-21 作者:乐天 来源:TechTarget中国 英文

  今年是Unix问世的第40个年头。在这40年中,Unix曾有一段令人骄傲的历史,而近几年,随着Linux和Windows Server的兴起,Unix遇到了前所未有的挑战。Unix能应对Linux和Windows Server的挑战吗?它还能走多远?

  1969年8月,当忙碌了整整一个月的Ken Thompson走出实验室的时候,他绝对没有想到,他在这一个月所做的事将给整个IT产业带来如此深远的影响。在这一个月里,他把自己所有关于操作系统的想法付诸实践,开发出了至今仍是大型关键核心业务系统最可信赖的运行平台Unix的第一个版本。这项工作后来帮他和他的同事Dennis Ritchie获得了1983年的计算机领域的最高奖项图灵奖,而他当时所采用的众多设计概念影响了一代又一代程序员,至今仍被奉为圭臬。

  Unix问世

  Ken Thompson是AT&T下属的贝尔实验室的程序员,在此之前,他和他的同事Dennis Ritchie在开发一个名为Multics分时系统,由于项目进展非常不顺,贝尔实验室取消了这一项目。闲下来的Thompson和Dennis Ritchie对当时流行的批处理操作系统不感兴趣,决定开发一种新的操作系统。经过一段时间的探讨,Ken Thompson用汇编语言为DEC的PDP-7小型机开发出了后来命名为Unix操作系统的第一个版本,包括一个外壳程序(Shell)、一个编辑器和一个汇编程序(assembler),每一个用了差不多一个星期的时间。随后的几年里Ken Thompson和Dennis Ritchie这对搭档在他们的同事Doug McIlroy、 Joe Ossanna、Rudd Canaday的帮助下对这个操作系统进行了不断修改和完善。

  新操作系统借鉴了Multics的一些设计思路,不过,最为重要的是它坚持“少就是好”的理念。5年后,Ritchie和Thompson在计算机协会(ACM)的杂志CACM上介绍了当时的设计思路:“需要用户与之交互的操作系统不仅应该对计算机本身要求不高,而且也要让人用起来很容易。我们希望Unix的用户发现它最大的特点就是简便、易用而且美妙。”

  很显然,Unix做到了。Unix后来成为IT产业的基石,被广泛地部署在大学、政府部门和企业的各种服务器和工作站中,而且其影响还表现在,Unix所采用的设计模式让当时的软件设计人员重新思考如何编程。

  当然,Unix的成功不是一下子发生的。1971年的时候,这个操作系统被迁移到比PDP-7功能强大得多的PDP-11小型机,为了让贝尔实验室专利部门的打字员可以用来处理一些文档,新增了文本编辑器和文本排版工具,这是该操作系统第一个走出研发团队。1972年,Ritchie在Thompson早期发明的B语言的基础上发明了高级编程语言C语言,随后Thompson用C重新改写了程序,这使得Unix的可移植性大大增强了。这时这个操作系统也有了自己的名字“Unics”,后来逐渐变成了今天的Unix。

  不过,直到这时Unix仍没有走出贝尔实验室,而真正把Unix带向世界的则是Ritchie和 Thompson1974年7月发表在CACA杂志上的文章《Unix分时系统》,它让整个IT业界为之轰动。

  黑客的乐园

  当时,人们用“黑客”来形容那些具有非凡的创造力和顽强的毅力、能解决一些常人无法解决的问题的软件工程师。按照这一定义,Thompson和Ritchie是真正的黑客,他们所采用的方法、编写的代码让那时的大学生为之着迷,随后一些资金不多的初创公司也学习和借鉴这些方法和代码。

  “几乎从一开始,Unix就是能够自我维护的,” Thompson和Ritchie在他们发表在CACM上的论文中写到,“因为所有的源代码都是可以拿到的,可以很容易地修改,因此,如果我们想到了一个非常好的想法或者听到一些非常好的建议,我们非常乐意修改或者重写这个系统。”

  当时在贝尔实验室做程序员、今天仍然在AT&T工作的David Korn回忆说:“Unix最大的一个特点是其中的工具可以很容易地被修改,或者用一个更好的工具替代。”Korn不久开发出了一个很有影响力的Korn shell(今天已经成为一个开源软件),从本质上说,这就是一个能指挥Unix运行的编程语言。

  毋庸置疑,Unix给当时的程序员带来了深远的影响。Unix首创的很多概念至今仍在沿用。比如,为了把一个程序的输入引入另一个程序中,Unix在1973年采用了“管道(Pipeline)”这个概念,在今天的很多操作系统中仍然可以看到,包括所有Unix的变种以及Linux、DOS、Windows等。Unix的另一个特点是它并不需要一个非常昂贵的大型机来运行。实际上,Unix最初就是为计算能力很弱的小型机DEC PDP-7开发的,因为当时Thompson和Ritchie手头只有这样的计算机。

  正是由于Unix简单、容易修改、对资源要求不高,而且源代码基本上免费的,因此很多大学的研究人员开始使用Unix,当时新成立的一些公司(如Sun)和很多今天已经不在、从事科学计算的公司也采用Unix。

  Unix开枝散叶

  最开始Unix是一种免费的操作系统。因为1956年美国联邦政府通过一项法案禁止AT&T提供电话以外的业务,所以,AT&T是不允许参与计算机有关的业务的。在Unix刚刚开发出来的时候,AT&T也没有太看重它,但到20世纪70年代末,AT&T意识到了它的商业价值。而AT&T的律师也对1956年通过的那个法案做出了新的有利于自己的解释。于是,1979年年初在Unix v7发布之后,AT&T修改了软件授权协议,禁止大学使用Unix源代码教学。不过,这对大学并不是问题,因为可以继续用Unix v6。

  此后Unix出现了一个很重要的分支。20世纪70年代在加州大学伯克利分校读研究生的Bill Joy从贝尔实验室拿到了一份Unix的拷贝,他认为这个操作系统非常适合作为他的Pascal编译器和文本编辑器的运行平台。因此,他和伯克利分校其他一些人一起对Unix进行了修改和扩展,由此诞生了Unix的重要分支:BSD (Berkeley Software Distribution) Unix。1978年,BSD推出,每份拷贝50美元。

  这样,到1980年有了两个主要的Unix版本,一个来自伯克利,另一个来自AT&T,随后不久更多的Unix开始涌现,并演变为“Unix战争”:1982年,Bill Joy与麦克尼利等联合创建Sun,推出了一种运行在工作站上的BSD版本,命名为SunOS(Solaris是大约10年以后的事情)。随后,AT&T发布了非常具有影响力的Unix System V,在它的基础上后来诞生了IBM AIX和惠普的HP-UX。不过,事情总是有好有坏:“Unix战争”好的方面是,软件人员很容易拿到Unix,对它按照自己的要求进行修改; 不好的是,Unix出现了很多分支影响了可移植性。

  值得一提的是,1987年荷兰阿姆斯特丹市Vrije大学计算机系教授Andrew Tanenbaum开发出一个与Unix非常接近的操作系统Minix。这个运行于Intel 80286微处理器上的操作系统是一个开源软件,到1991年Linus Torvalds正是基于Minix开发出了今天广泛使用的Linux。

  Unix战争

  在20世纪80年代中期,包括联邦政府部门在内的用户开始抱怨,尽管从理论上说,Unix是一个可以自由迁移的操作系统,而实际上,供应商们通过定制Unix的功能和API想方设法把用户锁定在自己的Unix版本上。

  于是,1987年贝尔实验室下属的Unix System实验室开始与Sun联手整合两个主要的Unix版本,两年后发布了Unix System V Release 4.0,其中综合了System V Release 3、BSD、SunOS以及Microsoft的Xenix等操作系统中的诸多功能。

  而另一些Unix供应商由于惧怕AT&T与Sun的联合,成立很多联盟与之竞争,包括X/Open、开发软件基金(Open Software Foundation)等,纷纷号称自己的是标准,一时间唇枪舌战非常热闹,史称“Unix wars(Unix战争)”。

  很显然,Unix阵营没有消除各自的分歧、真正制定出一个Unix系统的规范。直到1993年,随着微软推出企业级的32位微处理器操作系统Windows NT从而把微软的触角伸向原本属于Unix的领地,整个Unix阵营才真正意识到威胁,所有主要的Unix供应商联合起来共同发起了通用开放软件环境(Common Open Software Environment)行动,随后的一年里,随着AT&T和Sun支持的Unix国际集团(Unix International Group)与开放软件基金(Open Software Foundation)合并为The Open Group,由它负责认证Unix系统,相互之间的争论才逐渐平息下来。

  然而,此时的联合已经有些晚了。除了微软以外,从Tanenbaum博士的Minix演化而来的开源操作系统Linux也已经逐渐成长壮大,成为Unix不可小视的对手。

  Unix的未来

  由于长期多种Unix版本相互竞争影响了Unix的可移植性,同时,Linux因为成本上的优势以及Windows在X86平台上的天然优势,使得人们开始逐渐远离Unix。2009年1月,Gartner公布的一个调查结果显示,Linux继续受到用户的欢迎,Windows的装机量也在逐步增加,而Unix的用户将逐步减少。

  “Unix有悠久的历史,然而,现在尽管我们不能说它在退出历史,但Unix所受到的冲击肯定会越来越大。”Gartner分析师George Weiss说:“Linux的势头就很猛。虽然Linux没有像Unix那么长的开发、优化和测试历史,但正在接近甚至达到与Unix相似的性能、稳定性和可扩展性。”

  同样,Windows也不可小视。Weiss说,由于硬件成本的优势,向通用的X86平台迁移的用户越来越多。“可扩展的架构、集群、云计算以及X86平台上的虚拟化,如果把所有这些技术趋势综合到一起就会发现,操作系统的选择都是围绕Windows和Linux的。”

  “例如,最近思科发布了它的统一计算架构,把网络、存储、计算机和内存统一到一起,其中就没有Unix的位置,但是可以在X86平台上运行Linux和Windows。因此,Intel代表Linux阵营正在取得Linux与Unix之间的这场战争的胜利。”

  然而,代表Unix阵营行使Unix认证的The Open Group却丝毫不愿意对Linux让步,声称Unix是那些追求高性能、高扩展性和高稳定性的关键应用程序的最好选择,而Linux则只适合一些小型、非关键应用。

  AT&T的Korn是少数仍拥护Unix的人,他认为,多年来Unix一直具有的优势是,它可以非常容易地分成小的软件发布,这一优势将保证Unix仍然向前发展。他说:“Unix中的‘管道’哲学在云计算环境中仍然有用,在这样的环境中,你可以构建一些很小的可重用的应用,而不再是那种很庞大的不可分割的程序。”

  链接一:Unix大事记

  ● 1969 Ken Thompson用汇编为DEC PDP-7小型机编写出Unix的第一个版本。

  ● 1970 操作系统被命名为Unics,后来演变成了今天的Unix。

  ● 1971 Unix被移植到PDP-11小型机,Unix程序员手册第一版出版。

  ● 1972 Dennis Ritchie发明C语言。

  ● 1973 Unix引入管道的概念,Unix被用C语言重新改写。
  
  ● 1974 《Unix分时系统》在ACM的杂志上发表,Unix开始受到广泛关注。

  ● 1978  Bill Joy发布BSD Unix。

  ● 1983  AT&T发布Unix System V,基于此,IBM推出了AIX,HP推出HP-UX。

  ● 1987  AT&T和Sun宣布共同开发一个Unix。Andrew Tanenbaum开发出Minix。

  ● 1988 Unix战争爆发,DEC、HP、IBM等成立Open Software Foundation (OSF),AT&T等成立Unix International。

  ● 1989  System V Release 4 (SVR4)发布, System V、BSD、SunOS和Xenix得以统一。

  ● 1991 Sun基于SVR4发布Solaris,Linux Torvalds以Minix 为基础开发出Linux。

  ● 1993  AT&T把 Unix System实验室和Unix的版权出售给Novell,不久Novell把Unix商标转售给 X/Open Group。同年,Microsoft发布Windows NT。

  ● 1996 X/Open与Open Software Foundation合并为The Open Group。

  链接:向Unix的开发者致敬
  
  今天的Unix已经显得有些老迈,40年,具有如此长历史的软件绝对不多。与Unix相比,在它身后成长起来的Linux和Windows都正值青春年少,活力四射,让我们不由得为Unix的命运有些担心。

  不过,如果Unix真的有一天没落,我们也仍然要铭记开发出Unix的那些伟大的程序员们,如Ken Thompson和Dennis Ritchie等。在40年的发展过程中,Unix能够一直长盛不衰,他们的杰出工作经过了历史的检验,他们值得我们尊敬。无论Unix最终命运如何,这个40年前诞生在贝尔实验室里的操作系统注定要在历史上留下浓墨重彩的一笔。只要看看Unix的这些子孙就足以自豪: IBM版Unix、HP版Unix、Sun版Unix以及Apple’s Mac OS X,还有今天如日中天的Linux,无不是基于Unix发展而来,甚至看起来与Unix毫无关系的Windows和DOS也都深受Unix的影响。

  ACM在1983年为Thompson 和Ritchie颁发图灵奖的时候,曾有一句话来评价Unix的独特之处: Unix系统的天才设计之处在于它的软件架构,它使得程序员可以站在前人的肩膀上继续自己的工作。事实上,正如文章中所提到,Unix对整个软件设计带来了深远的影响,它所采用的设计理念和方法不少至今仍在沿用。

  在笔者看来,Unix的这些设计理念才是Unix留给我们的最好财富。从这个角度上说,Unix作为一款操作系统是否还能继续存在,似乎不是那么重要。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

乐天
乐天

相关推荐