Unix传奇(上篇)

本文讲述了Unix的起源与发展,以及Linux如何在其基础上崛起。从最初的MULTICS项目到Unix的诞生,再到开源运动的兴起与Linux的出现,这段历史不仅记录了技术的进步,也反映了计算机文化的演变。
了 解过去,我们才能知其然,更知所以然。总结过去,我们才会知道我们明天该如何去规划,该如何去走。在时间的滚轮中,许许多的东西就像流星一样一闪而逝,而 有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道,流传至今。要知道明天怎么去选择,怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技 术,而应该是去 —— 认认真真地了解和回顾历史。
 
Unix 是目前还在存活的操作系统的元老了,走过了近乎40 年的历程。在技术更新如此迅速的计算机世界的今天,Unix 始终保持它那神圣的光环,它那曲折和令人叹息的历史,以及由它引发的思想变革,对当今计算机文化造成的深远影响,近40 年所产生的人和事,让它成为了一个传奇,不能不让人为之惊叹。
 
这是一段所有从事计算机行业人员尤其是软件开发人员需要了解的历史。Unix 的传奇历史是整个计算机世界文化最具代表性的,它对整个计算机世界文化的影响也是最巨大,最深远的。他给人带来的不单单的对过去的回味,更为我们带来了计算机世界的新思潮。
 
了解这段的历史的人,才能体会计算机世界变迁过程中的是是非非,才能了解计算机世界中的文化,从而才能参与到整个计算机革命的大潮中。希望这段历史,这篇文章能让你感受到计算机世界那强力的脉搏,从而让你踏上这条令人充满激情的道路。
 
下面是本文的大纲:
 
上篇
Unix起源
Unix分裂
Unix的法律纠纷
GNU开源组织
Linux横空出世
Linux今天的领袖
 
Unix与黑客文化
Unix的历史教训
Unix 家族谱
Unix的特点
Unix的影响和哲学
Unix痛恨者手册
 
Unix 起源
 
回顾Unix 历史,我们就要说一下一个叫MULTICS Multiplexed Information and Computing Service )的项目。上世纪六十年代时,大部份计算机都是采用批处理(Batch Processing )的方式(也就是说,当作业积累一定数量的时候,计算机才会进行处理)。那时,我们熟知的美国电话及电报公司(American Telephone and Telegraph Inc. AT&T )、通用电器公司(General Electrics G.E. )及麻省理工学院(Massachusetts Institute of Technology MIT )计划合作开发一个多用途(General-Purpose )、分时(Time-Sharing )及多用户(Multi-User )的操作系统,也就是这个MULTICS ,其被设计运行在GE-645 大型主机上。不过,这个项目由于太过复杂,整个目标过于庞大,糅合了太多的特性,进展太慢,几年下来都没有任何成果,而且性能都很低。于是到了1969 2 月,贝尔实验室(Bell Labs )决定退出这个项目。
 
熟悉这段历史的人都知道,贝尔实验室中的有个叫Ken Thompson 的人,他为MULTICS 这个操作系统写游戏了个叫“Space Travel ”的游戏,在MULTICS 上经过实际运行后,他发现游戏速度很慢而且耗费昂贵 —— 每次运行会花费75 美元。退出这个项目以后。他为了让这个游戏能玩,所以他找来Dennis Ritchie 为这个游戏开发一个极其简单的操作系统。这就是后来的Unix 。(值得一提的是,当时他们本想在DEC-10 上写,后来没有申请到,只好在实验室的墙角边找了一台被人遗弃的Digital PDP-7 的迷你计算机进行他们的计划,这台计算机上连个操作系统都没有,于是他们用汇编语言仅一个月的时间就开发了一个操作系统的原型)他们的同事Brian Kernighan 非常不喜欢这个系统,嘲笑Ken Thompson 说:“你写的系统好真差劲,干脆叫Unics 算了。”Unics 的名字就是相对于MULTICS 的一种戏称,后业改成了Unix 。于是,Unix 就在这样被游戏和玩笑创造了,当时是1969 8 月。也就是这一年,Linux 之父Linus Torvalds 在芬兰出生了。
 
1971 年,Ken Thompson 写了充分长篇的申请报告,申请到了一台PDP-11/24 的机器。于是Unix 第一版出来了。在一台PDP-11/24 的机器上完成。这台电脑只有24KB 的物理内存和500K 磁盘空间。Unix 占用了12KB 的内存,剩下的一半内存可以支持两用户进行Space Travel 的游戏。而著名的fork() 系统调用也就是在这时出现的。
 
到了1973 年的时候,Ken Thompson Dennis Ritchie 感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程序的年代,他们的想法算是相当的疯狂。一开始他们想尝试用Fortran ,可是失败了。后来他们用一个叫BCPL Basic Combined Programming Language )的语言开发,他们整合了BCPL 形成B 语言,后来Dennis Ritchie 觉得B 语言还是不能满足要求,就是就改良了B 语言,这就是今天的大名鼎鼎的C 语言。于是,Ken Thompson Dennis Ritchie 成功地用C 语言重写了Unix 的第三版内核。至此,Unix 这个操作系统修改、移植相当便利,为Unix 日后的普及打下了坚实的基础。而Unix C 完美地结合成为一个统一体,C Unix 很快成为世界的主导。
 
Unix 的第一篇文章 The UNIX Time Sharing System ”由Ken Thompson Dennis
Ritchie 1974 7 月的 the Communications of the ACM 发表。这是UNIX 与外界的首次接触。结果引起了学术界的广泛兴趣并对其源码索取,所以,Unix 第五版就以“仅用于教育目的”的协议,提供给各大学作为教学之用,成为当时操作系统课程中的范例教材。各大学公司开始通过Unix 源码对Unix 进行了各种各样的改进和扩展。于是,Unix 开始广泛流行。
 
Ken Thompson & Dennis Ritchie,
Unix分裂
 
1978 年,对 Unix 而言是革命性的一年;因为学术界的老大柏克利大学 UC Berkeley ),推出了一份以第六版为基础,加上一些改进和新功能而成的 Unix 。这就是著名的“1 BSD 1st Berkeley Software Distribution )”,开创了Unix 的另一个分支:BSD 系列。 同时期,AT&T 成立USG Unix Support Group ),将 Unix 变成商业化的产品。从此,BSD Unix 便和AT&T Unix 分庭抗礼,Unix 就分为System IV 4.x BSD 这两大主流,各自蓬勃发展。
 
1979 年发布的Unix 第七版被称为是“最后一个真正的Unix ”,这个版本的Unix 内核只有40K bytes 。后来这个版本被移植到VAX 机上(我在大学时学习 C 语言时用过这个 VAX 机,我还记得那时上 VAX 机最大的爱好就是使用 talk 命令和别人聊天,呵呵 )。20 世纪80 年代相继发布的8 9 10 版本只授权给了少数大学。
 
1982 年,AT&T 基于版本7 开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX 版本情况,AT&T 综合了其他大学和公司开发的各种UNIX ,开发了UNIX System V Release 1 。这个新的UNIX 商业发布版本不再包含源代码,所以加州大学Berkeley 分校继续开发BSD UNIX ,作为UNIX System III V 的替代选择。BSD UNIX 最重要的贡献之一是TCP/IP BSD 8 个主要的发行版中包含了TCP/IP 4.1c 4.2 4.3 4.3-Tahoe 4.3-Reno Net2 4.4 以及 4.4-lite 。这些发布版中的TCP/IP 代码几乎是现在所有系统中TCP/IP 实现的前辈,包括AT&T System V UNIX Microsoft Windows 中的TCP/IP 都参照了BSD 的源码。
 
同时,其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX 系统,有些选择System V 作为基础版本,有些则选择了BSD BSD 的一名主要开发者,Bill Joy ,在BSD 基础上开发了SunOS ,并最终创办了Sun Microsystems

Bill Joy
 
1991 年,一群BSD 开发者(Donn Seeley Mike Karels Bill Jolitz Trent Hein )离开了加州大学,创办了Berkeley Software Design, Inc (BSDI) BSDI 是第一家在便宜常见的Intel 平台上提供全功能商业BSD UNIX 的厂商。后来Bill Jolitz 离开了BSDI ,开始了386BSD 的工作。386BSD 被认为是FreeBSD OpenBSD NetBSD DragonFlyBSD 的先辈。
 
这是一个AT&T 妄图私有化的Unix 的时代。为了私有化Unix 1986 IEEE 指定了一个委员会制定了一个一个开放作业系统的标准, 称为 POSIX (Portable Operating Systems Interface) 。最后加上个X ,不知道是为了好听,还是因为这本质上是UNIX 的标准。当然,AT&T Unix 取得了这个标准制订战争的胜利,还取得了Unix 这个注册商标。此时BSD 的拥护者自喻为冷酷无情的公司帝国的反抗军。就销售量来说,AT&T UNIX 始终赶不上BSD/Sun 。到1990 年,AT&T BSD 版本已难明显区分,因为彼此都有采用对方的新发明。
 
       这段时期,从实验室出来的被全世界所分享的Unix ,正处于被私有化的关键时期。
 
Unix的法律纠纷
 
Berkeley Software Design, Inc BSDI )很快就与AT&T UNIX Systems Laboratories USL )附属公司产生了法律纠纷,USL AT&T 注册的公司。AT&T 为了拥有System V 版权,以及Unix 商标,为了垄断Unix 1992 年,USL 正式对BSDI 提起诉讼,说BSD 剽窃他的源码。而最终了结了好评如潮的BSD 系统。
 
由于最后判决悬而未决,这桩法律诉讼将BSD 后裔的开发,特别是自由软件,延迟了两年,这导致没有法律问题的Linux 内核获得了极大的支持。Linux 386BSD 的开发几乎同时起步,Linus 说,当时如果有自由的基于386 Unix-like 操作系统,他就可能不会创造Linux 。尽管无法预料这给以后的软件业究竟造成了什么样的影响(如果没有这个法律纠纷,很有可能没有今天的革命性的Linux ),但有一点可以肯定,Linux 更加丰富了这块土壤。
 
这场官司一直打到 AT&T 将自己的Unix 系统实验室卖掉,新接手的Novell 公司采取了一种比较开明的做法,允许BSDI 自由发布自己的BSD ,但是前提是必须将来自于AT&T 的代码完全删除,于是诞生了4.4 BSD Lite 版,由于这个版本不存在法律问题,4.4BSD Lite 成为了现代BSD 系统的基础版本。
 
这桩诉讼最终在1994 1 月了结,更多地满足了BSDI 的利益。伯克利套件的18,000 个文件中,只有3 个文件要求删除,另有70 个文件要求修改,并显示USL 的版权说明。这项调解另外要求,USL 不得对4.4BSD 提起诉讼,不管是用户还是BSDI 代码的分发者。于是,BSD Unix 走上了复兴的道路。BSD 的开发也走向了几个不同的方向,并最终导致了FreeBSD OpenBSD NetBSD 的出现。
 
AT&T 意识到了Unix 的商业价值,不再将Unix 源码授权给学术机构以来,到以后的几十年,Unix 仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。Unix 的版权曾经为AT&T 所有,之后Novell 拥有了Unix ,再之后Novell 又将版权出售给了SCO (这一事实双方尚存在争议)。有很多大公司在取得了Unix 的授权之后,开发了自己的Unix 产品。(几年前,据传闻微软为了限制Linux ,微软让SCO 到法院告Linux 剽窃其源码)
 
由于Unix 是由C 语言写的,所以修改和移植都很容易,因此,很多商业公司及学术机构均加入这个操作系统的研发,各个不同版本的Unix 也开始蓬勃发展。这才产生了今天这么多的各式各样的Unix 衍生产品。如AIX Solaris HP-UX IRIX OSF Ultrix 等等。(这些商业化的Unix 基本上都是源于AT&T 授权的Unix System V
 
 
Unix开源组织
 
AT&T 的这种商业态度,让当时许许多的Unix 的爱好者和软件开发者们感到相当的痛心和忧虑,他们认为商业化的种种限制并不利于产生的发展,相反还能导制产品出现诸多的问题。随着商业化Unix 的版本的种种限制和诸多问题,引起了大众的不满和反对。于是,大家开始有组织地结成“反叛联盟”以此对抗欺行罢市的AT&T 等商业化行为。
 
另一方面,关于“大教堂”(集权、封闭、受控、保密)和“集市”(分权、公开、精细的同僚复审)两种开发模式的对比成为了新思潮的中心思想。这个新思潮对IT 业产生了非常深远影响。为整个计算机世界带来了革命性的价值观。
 

此时,一个名叫Richard Stallman 的领袖出现了,他认为Unix 是一个相当好的操作系统,如果大家都能够将自己所学贡献出来,那么这个系统将会更加的优异!他倡导的Open Source 的概念,就是针对Unix 这一事实反对实验室里的产品商业化私有化。尽管Stallman 既不是、也从来没有成为一个Unix 程序员,但在后1980 的大环境下,实现一个仿Unix 操作系统成了他追求的明确战略目标。Richard Stallman 早期的捐助者大都是新踏入Unix 土地的老牌ARPANET 黑客,他们对代码共享的使命感甚至比那些有更多Unix 背景的人强烈。
 
为了这个理想,Richard Stallman 1984 年创业了GNU ,计划开发一套与Unix 相互兼容的的软件。1985 Richard Stallman 又创立了自由软件基金会(Free Software Foundation )来为 GNU 计划提供技术、法律以及财政支持。尽管 GNU 计划大部分时候是由个人自愿无偿贡献,但 FSF 有时还是会聘请程序员帮助编写。当 GNU 计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被 Red Hat 兼并的 Cygnus Solutions
 
GNU 组织的建立,延续了当年Unix 刚出现时的情形,并为这种情形建立了可靠的法律和财务保障。GNU 工程十几年以来, 已经成为一个对软件开发主要的影响力量, 创造了无数的重要的工具。例如:强健的编译器,有力的文本编辑器,甚至一个全功能的操作系统。从那时开始,许多程序员聚集起来开始开发一个自由的、高质量、易理解的软件,让这使得Unix 社区生机勃勃,一派繁荣景象。
 
90 年代发起这个计划以来,GNU 开始大量的产生或收集各种系统所必备的组件,像是——函数库(libraries )、编译器(compilers )、调式工具(debugs )、文本编辑器(text editors )、网站服务器(web server ),以及一个Unix 的使用者接口(Unix shell )等等,等等。但由于种种原因,GNU 一直没有开发操作系统的kernel 。正当Richard Stallman 在为操作系统内核伤脑筋的时候,Linux 出现了。
 
Linux横空出世
 
1990 年,Linus Torvalds 还是芬兰赫尔辛基大学的一名学生,最初是用汇编语言写了一个在80386 保护模式下处理多任务切换的程序,后来从Minix Andy Tanenbaum 教授所写的很小 Unix 操作系统, 主要用于操作系统教学)得到灵感,进一步产生了自认为狂妄的想法——写一个比Minix 更好的Minix ,于是开始写了一些硬件的设备驱动程序,一个小的文件系统。这样0.0.1 版本的Linux 就出来了,但是它只具有操作系统内核的勉强的雏形,甚至不能运行,你必须在有Minix 的机器上编译以后才能玩。这时候Linus 已经完全着迷而不想停止,决定踢开Minix ,于是在1991 10 5 号发布Linux 0.0.2 版本, 在这个版本中已经可以运行bash gcc
 
从一开始,Linus 就决定自由扩散Linux ,包括原代码,随即Linux 引起黑客们(hacker )的注意,通过计算机网络加入了Linux 的内核开发。Linux 倾向于成为一个黑客的系统——直到今天,在Linux 社区里内核的开发被认为是真正的编程。由于一批高水平黑客的加入,使Linux 发展迅猛,几乎一两个礼拜就有新版或修正版的出现,到1993 年底94 年初,Linux 1.0 终于诞生了!Linux 1.0 已经是一个功能完备的操作系统,而且内核写得紧凑高效,可以充分发挥硬件的性能,在4M 内存的80386 机器上也表现得非常好,至今人们还在津津乐道。时至今日,kernel 的版本已经出到2.6 Linux 的发展不像传统的软件工程,它完全是透过网络,集合世界各地的高手而成的一套操作系统,在这里我们也可以见识到网络快速传播的威力。Linux 初次让整个世界感觉到了开源力量和网络力量的如此强大。( Linux 的标志和吉祥物是一只名字叫做 Tux 企鹅,标志的由来是因为 Linus 在澳洲时曾被一只动物园里的企鹅咬了一口,便选择了企鹅作为 Linux 的标志。
 
Linux 的历史是和GNU 紧密联系在一起的。从1983 年开始的GNU 计划致力于开发一个自由并且完整的类Unix 操作系统,包括软件开发工具和各种应用程序。到1991 Linux 内核发布的时候,GNU 已经几乎完成了除了系统内核之外的各种必备软件的开发。在 Linus Torvalds 和其它开发人员的努力下,GNU 组件可以运行于Linux 内核之上。整个内核是基于 GNU 通用公共许可,也就是GPL GNU General Public License GNU 通用公共许可证)的,但是Linux 内核并不是GNU 计划的一部分。1994 3 月,Linux1.0 版正式发布,Marc Ewing 成立了 Red Hat 软件公司,成为最著名的 Linux 分销商之一。
 
严格来讲,Linux 这个词本身只表示Linux 内核,但在实际上人们已经习惯了用Linux 来形容整个基于Linux 内核,并且使用GNU 工程各种工具和应用程序的操作系统( 也被称为GNU/Linux) 。基于这些组件的Linux 软件被称为Linux 发行版。一般来讲,一个Linux 发行套件包含大量的软件,比如软件开发工具,数据库,Web 服务器(例如Apache) X Window ,桌面环境(比如GNOME KDE ),办公套件(比如OpenOffice.org ),等等。
 
1991 1995 年间,Linux 从概念型的0.1 版本内核原型,发展成为能够在性能和特性上均堪媲美专有Unix 的操作系统,并且在连续正常工作时间等重要统计数据上打败了这些Unix 中的绝大部分。1995 年,Linux 找到了自己的杀手级应用——开源的web 服务器Apache 。就像Linux Apache 出众地稳定和高效。很快,运行Apache Linux 机器成了全球ISP 平台的首选。约60% 的网站选用Apache ,轻松击败了另两个主要的专有型竞争对手。今天的LAMP Linux , Apache, MySQL, PHP )已经成为了架构Web 服务器的主要首选。
 
现如今的Linux 不但可以装在几乎所有的主流服务器上,当然也包括桌面的X86 系统中。其还常常被用于嵌入式系统,机顶盒、手机、交换机、游戏机、PDA 、网络交换机、路由器、等等,都是因为Linux 那精彩的内核。
 
Linux 的出现,不仅仅给世界带来了一个免费的操作系统,也不仅仅是对Unix 自由、共享的文化的延续,它的出现带给了计算机世界自Unix GNU 以来更为成熟的思想和文化。
 
Linux今天的领袖
Linux GNU 关系是比较微妙的。那时,自由软件基金会编写的用户软件工具包铺平了一条摆脱高成本专有软件开发工具的前进道路。意识服从经济,而不是领导:一些新手加入了RMS 的革命运动,高举GPL 大旗,另一些人则更认同整体意义上的Unix 传统,加入了反对GPL 的阵营,但其他大部分人置身事外,一心编码。
 
Linus Torvalds 巧妙地跨越了GPL 和反GPL 的派别之争。他利用GNU 工具包搭起了自创的Linux 内核,用GPL 的传染性质保护它,但拒绝认同Richard Stallman 的许可协议反映的思想体系计划。Linus Torvalds 明确表示他认为自由软件一般情况下更好,但他偶尔也用专有软件。即使在他自己的事业中,他也拒绝成为狂热分子。这一点极大地吸引了大多数黑客,他们虽然早就反感Richard Stallman 的言辞,但他们的怀疑论一直缺个有影响力或者令人信服的代言人。而Linus Torvalds 正好充当了这一角色。


 
Linus Torvalds 令人愉快的实用主义及灵活而低调的行事风格,促使黑客文化在1993 1997 年间取得了一连串令人惊奇的胜利,不仅仅在技术上的成功,还让围绕Linux 操作系统的发行、服务和支持产业有了坚实的开端。结果,他的名望和影响也一飞冲天。Torvalds 成为了互联网时代的英雄;到1995 年为止,他只用了四年时间就在整个黑客文化界声名显赫,而Richard Stallman 为此花了十五年,而且他还远远超过了Stallman 向外界贩卖“自由软件”的记录。与Torvalds 相比,Richard Stallman 的言辞渐渐显得既刺耳又无力。
 
今天,我们也说不清楚是GNU Linux 还是Linux GNU Linux 既不排斥开源,也不排斥商业化,Linus 认为好的软件是需要免费和商业化共同推进的。正是这种革命性的想法,造就了今天的Linux 火红的局面。Linux 就像一股清泉流入了所有人的心中,引发了很多的启迪和思考。

本文出自 “陈皓的个人专栏” 博客,请务必保留此出处http://haoel.blog.51cto.com/313033/124608

转载于:https://www.cnblogs.com/Henrya2/archive/2009/02/10/1387780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值