Linux和Unix区别学习总结

来源:互联网 发布:c语言中的volatile 编辑:程序博客网 时间:2024/04/30 08:12

UNIX与LINUX的区别

http://blog.csdn.net/preciousboy/article/details/5867382


UNIX是历史最悠久的通用操作系统。1969年,美国贝尔实验室的K.Thompson和D.M.Ritchie在规模较小及


较简单的分时操作系统MULTICS的基础上开发出UNIX, 当时是在DEC的PDP—7小型计算机上实现的,1970


年正式投入运行。此后数年,UNIX一直是一个限于在AT&T内部使用的操作系统。1971年,发展出以 


PDP-11/20汇编语言所写成的V1版,包括最基本的文件系统和一些简单的软件,之后,又经历了一些改进


。 1973年,D.M.Ritchie研制出系统描述语言C,并应用新的C来改写原来用汇编语言编写的UNIX,这就


是V5,这使得UNIX修改更容易,并且具有在不同CPU平台上的可移植性,这便成为UNIX一大重要特点,自


此以后,UNIX操作系统和应用程序几乎都用C语言编写,只需拥有相应平台上的C编译器(将C语言转变为


相应平台机器语言的翻译软件),便可进行移植。C 与UNIX之间具有传统的非常密切的关系。同年,


K.Thompson和D.M.Ritchie在美国计算机协会的第四届操作系统原理讨论会上提交“The Unix Time 


Sharing System ”一文,UNIX系统正式向外披露,此文后来刊登于1974年7月的Commnnication Of ACM


杂志上。
1975年,V6推出,此后,Interactioe System Co. (已被SUN收购) 成为 UNIX的第一个转销商,UNIX步


出贝尔实验室之外,配备于PDP-11机上开始广泛流传,在大学校园中尤其风行。剖析UNIX的结构,修正


错误并作出改进,开发更好用的应用软件,这一切成为计算机专业的师生的最佳习作与毕业设计题材。


在加州大学伯克利分校(UCB)以Willian Joy 为首的一些软件技术人员研制出由V6派生的BSD,成为


UNIX家族的一名新成员,BSD在伯克利分校得到了很大的发展。直到1992年,UNIX商标持有人USL(AT&T后


来开设的一家子公司)控告伯克利不当使用 Unix执照,尽管USL最终败诉,但伯克利也在同年宣布不再发


展BSD,BSD的终极版本是4.4BSD,此乃后话。以下附有UNIX两大流派AT&T UNIX 与BSD各自的发展历程示


意图。除UCB外,卡耐基美伦大学(CMU)的Mach计划也对UNIX的发展产生深远影响。现在许多流行的


UNIX系统都与Mach有关。
AT&T在V6推出后,于1978年又推出V7,包括了更多的命令并可支持大尺度的文件,V7后来被移植到VAX机


上,称为32 V,1981年,研制出System III,1983年,推出适用于教育并且易于维护的System V。
除了两个主要流派外,还有一些软、硬件厂商在不同的CPU平台上开发的“类似于”UNIX的操作系统。这


些系统尽管实现方法各不相同,但其所具有的功能及操作管理手段均与主要流派中的某些版本相似,我


们称之为“兼容的”UNIX,下表为一张兼容UNIX的列表:
名称 公司 硬件平台 特点
AIX IBM RS6000, POWER PC 融合SVR2和BSD的特点,有特色的系统管理
IRIX SGI PC/工作站 最新版本V5.x基于SVR4
ULTRIX DEC PC 具有许多4.2BSD与4.3BSD的特点
SunOS
(Solaris) SUN 68K, Sparc, X86 基于4.3BSD,也有许多来自于SYSTEM V的内容,SUN自身开发的NFS、


OPEN LOOK GUI标准
HP-UX HP X86, HP工作站 4.2BSD发展而来
NeXT NeXTstep 68K, X86 基于Mach核心的4.3BSD,用户界面友好,遵守Openstep标准
Xenix SCO/Microsoft X86 以SVR2为基础
SCO UNIX SCO X86 Xenix的后续产品,影响较大的PC UNIX
UNICOS Cray Cray超级电脑
Dell UNIX Dell X86 基于SVR4
Minix 个人作品 X86, Mac, Atari 与V7兼容,LINUX的鼻祖
有趣的是,它们大部分不叫“UNIX”,主要原因是UNIX商标为AT&T(后来是它的子公司USL)所持有,


1993年春,NOVELL将USL收购,UNIX商标从此归属NOVELL,“AT&T UNIX”这一名称成为历史。在1994年


,NOVELL令人吃惊地放弃了“UNIX”这一商标,将其转售给英国的X/OPEN,这使到所有符合X/OPEN标准


的操作系统都可称为“UNIX”。不过,NOVELL仍然保留了原UNIX系统程序码的版权。


再后来,书里没说了,我这里补充,BSD出到4.4版就由于和AT&T打版权官司而停止发展(后来部分开发


成员在BSD工作的基础上,去掉和AT&T有版权问题的代码,发展出今天的FreeBSD)。这场官司最后庭外


和解,之后AT&T面临反垄断控告,才把UNIX部分卖给了SCO,NOVELL把源码和他们的unixware产品一起卖


给了SCO,而最近SCO又把他们的UNIX服务器部分卖给了Linux厂商Caldera...
UNIX的两个发明者由于他们的杰出贡献在80年代
获得IT界的诺贝尔奖——Turing奖


简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计


算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软


件的版权制约的、全世界都能自由使用的Unix兼容产品。


Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的


学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作


系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有


Unix操作系统的全部功能,因而开始了Linux雏形的设计。


Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能


力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件


包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带


有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标


和菜单对系统进行操作。


Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何


费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约


束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系


统的人都可以从Linux中获益。


  区别和联系


  Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护


的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却


只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是


处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。


  Linux 的源头要追溯到最古老的UNIX。1969年,Bell实验室的Ken Thompson开始利用一台闲置的 


PDP-7计算机开发了一种多用户,多任务操作系统。很快,Dennis Richie加入了这个项目,在他们共同


努力下诞生了最早的UNIX。Richie受一个更早的项目——MULTICS的启发,将此操作系统命名为 Unix。


早期UNIX是用汇编语言编写的,但其第三个版本用一种崭新的编程语言C重新设计了。C是Richie设计出


来并用于编写操作系统的程序语言。通过这次重新编写,Unix得以移植到更为强大的 DEC PDP-11/45与


11/70计算机上运行。后来发生的一切,正如他们所说,已经成为历史。Unix从实验室走出来并成为了操


作系统的主流,现在几乎每个主要的计算机厂商都有其自有版本的Unix.


  Linux起源于一个学生的简单需求。Linus Torvalds,Linux的作者与主要维护者,在其上大学时所买


得起的唯一软件是Minix. Minix是一个类似Unix,被广泛用来辅助教学的简单操作系统。Linus 对Minix


不是很满意,于是决定自己编写软件。他以学生时代熟悉的Unix作为原型, 在一台Intel 386 PC上开始


了他的工作。他的进展很快,受工作成绩的鼓舞,他将这项成果通过互连网与其他同学共享,主要用于


学术领域。有人看到了这个软件并开始分发。每当出现新问题时,有人会立刻找到解决办法并加入其中


,很快的, Linux成为了一个操作系统。值得注意的是Linux并没有包括Unix源码。它是按照公开的


POSIX标准重新编写的。Linux大量使用了由麻省剑桥免费软件基金的GNU软件,同时Linux自身也是用它


们构造而成。


  另外两大区别:


  1) UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.


  2) UNIX是商业软件,而Linux是自由软件,免费、公开源代码的.


  UNIX(5万美圆)而Linux免费


  [历史]


  Unix的历史久于linux. Linux的思想源于Unix


  [产品]


  unix和linux都是操作系统的名称.但unix这四个字母除了是操作系统名称外,还作为商标归SCO所


有.


  Linux商业化的有RedHat Linux 、SuSe Linux、slakeware Linux、国内的红旗等,还有Turbo 


Linux.


  Unix主要有Sun 的Solaris、IBM的AIX, HP的HP-UX,以及x86平台的的SCO Unix/Unixware


  [其他区别]


  linux的核心是免费的,自由使用的,核心源代码是开放的.


  而unix的核心并不公开


  在对硬件的要求上,linux比unix要低,没有unix那么苛刻.在安装上linux比unix容易掌握.


  在使用上,linux相对没有unix那么复杂.


  Unix多数是硬件厂商针对自己的硬件平台的操作系统,主要与CPU等有关,如Sun 的Solaris作为商


用,定位在其使用SPARC/SPARCII的CPU的工作站及服务器上,当然Solaris也有x86的版本,而Linux也有


其于RISC的版本。


  但确切的讲,拿RISC上的Unix与x86上的Linux进行比较不太合适。


  至于价格,个人使用的Linux基本上算是免费的,不同的Linux发行厂商针对企业级应用在基本的系


统上有些优化,如RedHat的Enterprise产品,这些产品包括支持服务是比较贵的。


  像IBM/HP/SUN的Unix,因为主要是针对其硬件平台,所以操作系统通常在设备价格中。(没有人单独


去买一个Unix操作系统的)


  在性能上,linux没有unix那么全面,但基本上对个人


  用户和小型应用来说是绰绰有余.


  通常情况下,如果你有机会使用到Unix环境,比如银行、电信部门,那一般都是固定机型的Unix。


比如电信里SUN的居多,民航里HP的居多,银行里IBM的居多。学习中,不同的Unix命令集有些不同,要


注意。


  至于学习,我看还是linux比较好学一点,而且现在喜欢和


  鼓捣linux的人也越来越多,各种有关linux的资料


  也很多.如果是自己想学习,那Linux或是BSD系统是不错的选择。一台x86的机器就可以。


  应用上,除非是大型网站,一般企业或个人,使用Linux即可.


  UNIX是一个功能强大、性能全面的多用户、多任务操作系统,可以应用从巨型计算机到普通PC机等


多种不同的平台上,是应用面最广、影响力最大的操作系统。


  Linux是一种外观和性能与UNIX相同或更好的操作系统,但,Linux不源于任何版本的UNIX的源代码


,并不是UNIX,而是一个类似于UNIX的产品。Linux产品成功的模仿了UNIX系统和功能,具体讲Linux是


一套兼容于System V以及BSD UNIX的操作系统,对于System V来说,目前把软件程序源代码拿到Linux底


下重新编译之后就可以运行,而对于BSD UNIX来说它的可执行文件可以直接在Linux环境下运行。


  一般来说,Linux是一套遵从POSIX(可移植操作系统环境)规范的一个操作系统,它能够在普通PC


计算机上实现全部的UNIX特性,具有多任务、多用户的能力。Linux受到广大计算机爱好者的喜爱的另一


个主要原因是,它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从


Linux中获益。


  在网络管理能力和安全方面,使用过Linux的人都承认Linux与UNIX很相似。UNIX系统一直被用做高


端应用或服务器系统,因此拥有一套完善的网络管理机制和规则, Linux沿用了这些出色的规则,使网


络的可配置能力很强,为系统管理提供了极大的灵活性。
========

LINUX与UNIX区别在哪

它们都有可视化的界面吗


Linux和Windows的区别 
和Linux一样,Windows系列是完全的多任务操作系统。它们支持同样的用户接口、网络和安全性。但是


,Linux和Windows的真正区别在于,Linux事实上是Unix的一种版本,而且来自Unix的贡献非常巨大。是


什么使得Unix如此重要?不仅在于对多用户机器来说,Unix是最流行的操作系统,而且在于它是免费软


件的基础。在Internet上,大量免费软件都是针对Unix系统编写的。由于有众多的Unix厂商,所以Unix


也有许多实现方法。没有一个单独的组织负责Unix的分发。现在,存在一股巨大的力量推动Unix社团以


开放系统的形式走向标准化。另一方面Windows系列是专用系统,由开发操作系统的公司控制接口和设计


。在这个意义上这种公司利润很高,因为它对程序设计和用户接口设计建立了严格的标准,和那些开放


系统社团完全不一样。一些组织正在试图完成标准化Unix程序设计接口的任务。特别要指出的是,Linux


完全兼容POSIX.1标准。 


Linux与Unix的区别 
某些PC机的Unix和Linux在实现方面相类似。几乎所有的商业Unix版本都基本支持同样的软件、程序设计


环境和网络特性。然而,Linux和Unix的商业版本依然存在许多差别。Linux支持的硬件范围和商业Unix


不一样。一般来说,商业Unix支持的硬件多一些,可是Linux支持的硬件也在不断扩大。突出的是,


Linux至少和商用Unix一样稳定。对许多用户来说,最重要的因素是价格。Linux是免费软件,用户可以


从Internet网上下载。如果上网不方便,可以很便宜地通过邮购得到Linux的磁盘或CD-ROM。当然也可以


直接从朋友那里得到。商业Unix的价值不应被贬低。除了软件本身的价格外,用户还需支付文档、售后


支持和质保费。对于较大的机构,这些都很重要,但是PC机用户也许从中得不到什么好处。许多商业公


司和大学等单位已经发现,在实验室用廉价的PC机运行Linux比用工作站运行商业Unix还好。Linux可以


在PC机上提供工作站的功能,而PC机的价格是工作站的几分之一。也有一些针对PC机的便宜的Unix,其


中最有名的是386BSD。在许多方面,386BSD软件包和Linux兼容,但Linux更适合用户的需求。最显著的


是,Linux的开发是开放的,任何志愿者都可以对开发过程做出贡献。相比之下,386BSD是由封闭的团队


开发的。正是这样,这两种产品存在着严重的概念上和设计上的差别:Linux的目标是从头开始开发一个


完整的Unix系统;386BSD的目标则是对现有的BSD做些修改,以适合80386系统。 


Linux与其他操作系统的区别 


Linux可以与MS-DOS、OS/2、Windows等其他操作系统共存于同一台机器上。它们均为操作系统,具有一


些共性,但是互相之间各有特色,有所区别。 


目前运行在PC机上的操作系统主要有Microsoft的MS-DOS、Windows、Windows NT、IBM的OS/2等。早期的


PC机用户普遍使用MS-DOS,因为这种操作系统对机器的硬件配置要求不高,而随着计算机硬件技术的飞


速发展,硬件设备价格越来越低,人们可以相对容易地提高计算机的硬件配置,于是开始使用Windows、


Windows 
NT等具有图形界面的操作系统。Linux是新近被人们所关注的操作系统,它正在逐渐为PC机的用户所接受


。那么,Linux与其他操作系统的主要区别是什么呢?下面从两个方面加以论述。 


首先看一下Linux与MS-DOS之间的区别.在同一系统上运行Linux和MS-DOS已很普遍,就发挥处理器功能


来说,MS-DOS没有完全实现x86处理器的功能,而Linux完全在处理器保护模式下运行,并且开发了处理


器的所有特性。Linux可以直接访问计算机内的所有可用内存,提供完整的Unix接口。而MS-DOS只支持部


分Unix的接口。 


就使用费用而言,Linux和MS-DOS是两种完全不同的实体。与其他商业操作系统相比,MS-DOS价格比较便


宜,而且在PC机用户中有很大的占有率,任何其他PC机操作系统都很难达到MS-DOS的普及程度,因为其


他操作系统的费用对大多数PC机用户来说都是一个不小的负担。Linux是免费的,用户可以从internet上


或者其他途径获得它的版本,而且可以任意使用,不用考虑费用问题。 


就操作系统的功能来说,MS-DOS是单任务的操作系统,一旦用户运行了一个MS-DOS的应用程序,它就独


占了系统的资源,用户不可能再同时运行其他应用程序。而Linux是多任务的操作系统,用户可以同时运


行多个应用程序。 


再看一下Linux与OS/2、Windows、Windows NT之间的区别。 
从发展的背景看,Linux与其他操作系统的区别是,Linux是从一个比较成熟的操作系统发展而来的,而


其他操作系统,如Windows NT等,都是自成体系,无对应的相依托的操作系统。这一区别使得Linux的用


户能大大地从Unix团体贡献中获利。因为Unix是世界上使用最普遍、发展最成熟的操作系统之一,它是


七十年代中期发展起来的微机和巨型机的多任务系统,虽然有时接口比较混乱,并缺少相对集中的标准


,但还是发展壮大成为了最广泛使用的操作系统之一。无论是Unix的作者还是Unix的用户,都认为只有


Unix才是一个真正的操作系统,许多计算机系统(从个人计算机到超级计算机)都存在Unix版本,Unix


的用户可以从很多方面得到支持和帮助。因此,Linux做为Unix的一个克隆,同样会得到相应的支持和帮


助,直接拥有Unix在用户中建立的牢固的地位。 


从使用费用上看,Linux与其他操作系统的区别在于Linux是一种开放、免费的操作系统,而其他操作系


统都是封闭的系统,需要有偿使用。这一区别使得我们能够不用花钱就能得到很多Linux的版本以及为其


开发的应用软件。当我们访问Internet时,会发现几乎所有可用的自由软件都能够运行在Linux系统上。


有来自很多软件商的多种Unix实现,Unix的开发、发展商以开放系统的方式推动其标准化,但却没有一


个公司来控制这种设计。因此,任何一个软件商(或开拓者)都能在某种Unix实现中实现这些标准。


OS/2和Windows 
NT等操作系统是具有版权的产品,其接口和设计均由某一公司控制,而且只有这些公司才有权实现其设


计,它们是在封闭的环境下发展的。


看看下面的这篇文章,估计就会明白windows与Linux的区别了。 使用Linux的十大理由
使用Unix,价格太昂贵,最便宜的Unix也... 


linux是一个类uinx系统,他是李纳斯.特沃兹以安德鲁.S.塔尼鲍默(Andrew S Tanenbum)的minix系统(


由塔尼鲍默编写的用于操作系统教学的一个简单unix系统)为蓝本开发出来的系统内核,由于他编写的


时候是按照开发unix系统的标准POSIX来开发的,所以说linux是一个类uinx系统。linux被开发出来以后


,由于其源代码是公开的,所以他被世界各地的自由软件人员不断改进,从而不断地壮大起来。现在大


家使用的各种linux版本是由商家将各种应用程序包与linux捆绑在一起来出售的。而其内核是相同的,


由李纳斯.特沃兹极其小组维护。 "简单地说,Linux是一个类Unix内核。比方如,你用过一个叫Unix的


东东,你觉得她很好,于是你回家写了一个和她类似的东西。当初有这样一个人,叫Linux Torvalds, 


他怀着类似的想法,于是,企鹅...
========

终于把unix、linux、ios、android区别大致联系搞清楚

http://bbs.feng.com/read-htm-tid-6209622.html


首先说明本帖是转的,旨在让大家了解科技界的一些故事,每一种科技的进步都伴随开发者们不懈的努


力!就是想让大家明白一个道理不管unix、linux、ios还是android都是开发者辛勤汗水的积累。大家可


以看附件里面的UNIX家族谱,若你没有惊叹唏嘘的,回来菊花随你捅!


Unix是目前还在存活的操作系统的元老了,走过了40年的历程。由它引发的思想变革,对当今计算机文


化造成的深远影响。这是一段所有从事计算机行业人员尤其是软件开发人员需要了解的历史。Unix的传


奇历史是整个计算机世界文化最具代表性的,它对整个计算机世界文化的影响也是最巨大,最深远的。


他给人带来的不单单的对过去的回味,更为我们带来了计算机世界的新思潮。


Unix 起源


回顾Unix历史,我们就要说一下一个叫MULTICS的项目。上世纪六十年代时,大部份计算机都是采用批处


理的方式(也就是说,当作业积累一定数量的时候,计算机才会进行处理)。那时,我们熟知的美国电


话及电报公司(AT&T)、通用电器公司(G。E。)及麻省理工学院(MIT)计划合作开发一个多用途


、分时及多用户的操作系统,也就是这个MULTICS,其被设计运行在GE-645大型主机上。不过,这个项目


由于太过复杂,整个目标过于庞大,糅合了太多的特性,进展太慢,几年下来都没有任何成果,而且性


能都很低。于是到了1969年2月,贝尔实验室决定退出这个项目。


熟悉这段历史的人都知道,贝尔实验室中的有个叫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的语言开发,他们整合了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开始广泛流行。


Unix分裂


1978年,对 Unix而言是革命性的一年;因为学术界的老大柏克利大学,推出了一份以第六版为基础,加


上一些改进和新功能而成的 Unix。这就是著名的“1 BSD(1st Berkeley Software Distribution)”


,开创了Unix的另一个分支:BSD 系列。 同时期,AT&T成立USG,将 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。


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的法律纠纷


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 开始大量的产生或收集各种系统所必备的组件,像是——函数库、编


译器、调式工具、文本编辑器、网站服务器,以及一个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和**PL的派别之争。他利用GNU工具包搭起了自创的Linux内核,用GPL


的传染性质保护它,但拒绝认同Richard Stallman的许可协议反映的思想体系计划。Linus Torvalds明


确表示他认为自由软件一般情况下更好,但他偶尔也用专有软件。即使在他自己的事业中,他也拒绝成


为狂热分子。这一点极大地吸引了大多数黑客,他们虽然早就反感Richard Stallman的言辞,但他们的


怀疑论一直缺个有影响力或者令人信服的代言人。而Linus Torvalds正好充当了这一角色。


Linus Torvalds令人愉快的实用主义及灵活而低调的行事风格,促使黑客文化在1993至1997年间取得了


一连串令人惊奇的胜利,不仅仅在技术上的成功,还让围绕Linux操作系统的发行、服务和支持产业有了


坚实的开端。结果,他的名望和影响也一飞冲天。Torvalds成为了互联网时代的英雄;到1995年为止,


他只用了四年时间就在整个黑客文化界声名显赫,而Richard Stallman为此花了十五年,而且他还远远


超过了Stallman向外界贩卖“自由软件”的记录。与Torvalds相比,Richard Stallman的言辞渐渐显得


既刺耳又无力。(参看《Linus Torvalds 语录 Top 10》)


今天,我们也说不清楚是GNU Linux还是Linux GNU。Linux既不排斥开源,也不排斥商业化,Linus认为


好的软件是需要免费和商业化共同推进的。正是这种革命性的想法,造就了今天的Linux火红的局面(参


看《谁写了Linux》、《Linux基金会的广告》、《Linux Distribution Timeline》)。Linux就像一股


清泉流入了所有人的心中,引发了很多的启迪和思考。


Unix与黑客文化


黑客的文化和Unix的商业化存在着必然的联系。自从Unix出现,黑客文化就与之而来。


1993初,一个悲观的观察家撰文指出,已经有理由认为Unix的传奇故事连同他带有黑客文明将一同破产


。许多人预测,从那时起Unix将在六月内死亡。他们很清楚,十年的Unix商业化,使自由跨平台的Unix


梦以失败告终。Unix允诺的跨平台可移植性,在一打大公司专有的Unix版本之间不停地斗嘴中丢失,一


个完美的操作系统最终沦为多种版本的一团乱麻,这应该说是人类文明史上的一个重大悲剧。


在专有软件社会中,只有像微软一样的“集权制,大教堂”生产方式才能成功。那个时代的人悲观地相


信,技术世界的个人英雄主义时代已经结束,软件工业和发展中的互联网络将逐渐地由像微软一样的巨


型企业支配,再也没有“佐罗”,世界是恺撒大帝的世界,计算机文明将进入黑暗的帝国时代。黑客已


经死了,自由不付存在。


自从Unix出现以来,第一代的Unix黑客似乎垂垂老矣,衣食不饱( Berkeley计算机科学研究组在1994丢


失了自己基金)。这是一个抑压的时代。专有的商业Unix的结果证明那么沉重、那么盲目、那么不适当


,以致微软能够用那次等技术的Windows抢走他们生存的空间,拿走他们的干粮。黑客世界的残余力量被


逼到了世界上的角落里,苟延残喘。


就在黑客文化日渐衰落之时,美国新闻周刊的资深记者Steven Levy完成了著名的《黑客列传》一书,书


中着力介绍了一个人物:Richard M。 Stallman的故事,他是麻省理工学院(MIT)人工智能实验室领袖


人物,坚决反对实验室的研究成果商业化。他是商业软件社会中坚强的一员,决不随波逐流,建立了全


新的黑客文化。


Richard M。 Stallman(他的登陆名RMS更为人熟知)早在1970年代晚期就已经证明他是当时最有能力的


程序员之一。Emacs编辑器就是他众多发明中的一项。RMS的目标是将后1980的松散黑客社群变成一台有


组织的社会化机器以达到一个单纯的革命目标。也许他未意识到,他的言行与当年卡尔·马克思号召产


业无产阶级反抗工作的努力如出一辙。RMS宣言引发的争论至今仍存于黑客文化中。他的纲要远不止于维


护一个代码库,已经暗含了废除软件知识产权主张的精髓。RMS通过“自由软件(free software)”让


黑客文化更加有自我意识。当然,这个充满魅力又具争议的人物本身已经成为了一个黑客文化英雄。


只有痴迷的“黑客”和具有创造力的怪人结成的反叛联盟才能把我们从愚蠢中拯救出来——他们接着教


导我们,真正的专业和奉献精神,正是我们在屈服于世俗观念的“合理商业做法”之前的所作所为。 —


—《The Art of Unix Programming》


RMS让世界上所有的人都知道,入侵电脑系统只是低级不入流的黑客干的事,真正的黑客,是为了自由,


为了软件的自由,为了挑战计算机世界中的霸权主义而斗争。他们不是街头小混混,他们更像是绿林好


汉,更像是罗宾汉,更像是佐罗。就像渴望民主的人民同**的**斗争一样。RMS领导着许多的黑客通过互


联网向专有软件发出宣战。


X Windows是首批由服务于全球各地不同组织的许多个人以团队形式开发的大规模开源项目之一。电子邮


件使创意得以在这个群体中快速传播,问题由此得以快速解决,而开发者可以人尽其才。软件更新可以


在数小时之内发送到位,使得每个节点在整个开发过程中步调一致。网络改变了软件的开发模式。


另一方面,RMS的理论体系有许多东西非常有争议,他的GPL被认为是一种“病毒式”的协议,BSD的fans


和老牌Unix黑客们认为,他们编写Unix的年头都比GPL声明要长得多,GPL依然有太多的限制,而BSD协议


则比GPL更加的自由。另一方面,RMS走向了另一个极端,他是完全反版权的,反商业化的。把软件产品


从强制收费推向了强制免费、共享和开源,这也为他带来了许多许多的争议。


在RMS组织黑客闹革命的年代里,没有多少黑客认同于RMS的理论体系,更多的他们参与GNU只是为了体现


那种在互联网上协同工作,令人激动的工作模式。自从GNU设立以来,争议不断,而黑客文化却从未有统


一在他的理想体系之下。


自从Linux出现以后,一个新的黑客领袖出现了,Linus Torvalds的中庸态度网聚了世界上顶尖的黑客,


其绕过了GPL和**PL的派系之争,他使用GNU的工具从而以GPL的“传染性”保护了Linux,但他同时也不


承认RMS的理论思想体系,他即开源,又支持商业化。虽然,他没有带给黑客们什么重要的思想体系或统


一的价值观,但他整合了全世界黑客的阵营,让所有的黑客的行为都围绕着Linux这一事物进行。他以“


用自由软件是因为它运行得更好”轻而易举地盖过了“用自由软件是因为所有软件都该是自由的”。


1998年初,这种新思潮促使网景公司(Netscape Communications)公布了其Mozilla浏览器的源码。媒


体对此事件的关注促成了Linux在华尔街的上市,推动了1999-2001年间科技股的繁荣。事实证明,此事


无论对黑客文化的历史还是对Unix的历史都是一个转折点。


Unix的历史教训


下面的文字出自《The Art of Unix Programming》(Unix编程艺术)。令今天我们所有人所反思。


在Unix历史中,最大的规律就是: (看看《谁写了Linux》你就会知道这一规律)


距开源越近就越繁荣。任何将Unix专有化的企图,只能陷入停滞和衰败。


回顾过去,我们早该认识到这一点。1984年至今,我们浪费了十年时间才学到这个教训。如果我们日后


不思悔改,可能还得大吃苦头。


虽然我们在软件设计这个重要但狭窄的领域比其他人聪明,但这不能使我们摆脱对技术与经济相互作用


影响的茫然,而这些就发生在我们的眼皮底下。即使Unix社区中最具洞察力、最具远见卓识的思想家,


他们的眼光终究有限。对今后的教训就是:过度依赖任何一种技术或者商业模式都是错误的——相反,


保持软件及其设计传统的的灵活性才是长存之道。


另一个教训是:别和低价而灵活的方案较劲。或者,换句话说,低档的硬件只要数量足够,就能爬上性


能曲线而最终获胜。经济学家Clayton Christensen称之为“破坏性技术”,他在《创新者窘境》(The 


Innovator’s Dilemma)[Christensen]一书中以磁盘驱动器、蒸汽挖土机和摩托车为例阐明了这种现象


的发生。当小型机取代大型机、工作站和服务器取代小型机以及日用Intel机器又取代工作站和服务器时


,我们也看到了这种现象。开源运动获得成功正是由于软件的大众化。Unix要繁荣,就必须继续采用吸


纳低价而灵活的方案的诀窍,而不是去反对它们。


最后,旧学派的Unix社区因采用了传统的公司组织、财务和市场等命令机制而最终未能实现“职业化”


。只有痴迷的“黑客”和具有创造力的怪人结成的反叛联盟才能把我们从愚蠢中拯救出来——他们接着


教导我们,真正的专业和奉献精神,正是我们在屈服于世俗观念的“合理商业做法”之前的所作所为。


Unix族谱


Unix的故事仍旧延续着……,许多网站也为这段历史留下记录。一个详细记录Unix历史的网站


(http://www.levenez.com/unix/),这个网站忠实记载着1969~2005 年Unix发展的大事,而且还有 


PDF 档案可供下载,上面有一个庞大的UNIX家族版本树,让人叹为观止。网站的首页陈列每个时期Unix


的历史,也代表着无数工程师的心血与努力。


Unix的特点


现在的文献中提到Unix基本上是说,由Ken Thompson和Dennis Ritchie共同开发的。而通过历史我们也


能发现,Unix的主要是由Ken Thompson写下的。但在学术界,Dennis Ritchie的名字往往被排在了Ken 


Thompson前面的。这就是因为,Dennis Ritchie不但发明了C语言,而且当时他设计Unix操作系统的设计


思想,影响了整个世界,直到今天。


当时,他们开发UNIX,没有正式立项,是Ken Thompson和Dennis Ritchie等少数几个人偷偷干的,如果


一切都要从头从新设计,那几乎是不可能的。所以,Unix吸取与借鉴了Multics的经验,如内核,进程,


层次式目录,面向流的I/O,把设备当作文件,……等等。但是Unix在继承中又有创新,比如Unix采用一


种无格式的文件结构,文件由字节串加组成。这带来两大好处:一是在说明文件时不必加进许多无关的


“填充物”,二是任何程序的输出可直接用作其他任何程序的输入,不必经过转换。后面这一点叫做“


管道”(piping),这就是Unix首创的。此外,像把设备当作文件,从而简化了设备管理这一操作系统


设计中的难题,虽然不是UNIX的发明,但是实现上它采用了一些新方法,比Multics更高明一些。


下面是Unix的特点:(30多年过去了,这些东西早已变成经典)


◦Everything (including hardware) is a file
◦所有的事物(甚至硬件本身)都是一个的文件。
◦Configuration data stored in text
◦以文本形式储存配置数据。
◦Small, single-purpose program
◦程序尽量朝向小而单一的目标设计
◦Avoid captive user interfaces
◦尽量避免令人困惑的用户接口
◦Ability to chain program together to perform complex tasks
◦将几个程序连结起来,处理大而复杂的工作。
Unix的影响和哲学


Unix是第三次工业革命中计算机软件领域最具代表性的产物。在这近40年中,由Unix造成的影响是最有


深远意义的。就我看来,Unix为软件领域带来了至少以下有积极的东西,由这些东西所引发的直接或间


接的事物更是举不胜数。


软件开发的若干哲学和思想。


全民参与推动软件,代码共享的模式。


开启了黑客文化和开源项目。


免费和商业的完美结合的Linux。


C语言,而后发展的C++,Java等等类C的语言和脚本。(参看《C语言的演变史》)


TCP/IP,其的Socket编程已成为今天通用的网络编程主流。(参看《到处都是Unix的胎记》)


不能不说,AT&T虽然发展了Unix,但今天Unix的混乱的局面也和AT&T 有着直接原因。但反过来


说,如果没有AT&T的反面教材,今天的GNU/Linux很有可能也不会出现。AT&T究竟是限制了Unix


的发展,还是以反面示例促进了Unix社区,已不好评说。今天,软件是商业化好还是开源好的争论还在


继续,纵观这几十年来Unix的历史,Linux的划时代地出现。相信你会得出自己的结论。不管怎么样,


Unix的经历对计算机领域贡献的不单单是技术,他给我们提供了丰富而生动的教材。特别是Unix引发的


哲学,让今天的我们依然受益不浅。


说到Unix为我们所带来的软件开发的哲学,我必需要说一说。Unix遵循的原则是KISS(Keep it simple


, stupid)。在http://en。wikipedia。org/wiki/Unix_philosophy 上有很多的基本上大同小异的


Unix哲学,都是很经典的。


Doug McIlroy 是认为UNIX的哲学是这样的:三条哲学,简明扼要,就是这三条哲学贯穿着整个Unix世界


。尤其是第一条“do one thing and do it well”真是相当精彩!


Write programs that do one thing and do it well。


Write programs to work together。


Write programs to handle text streams, because that is a universal interface。


只要是Unix的程序员,他们会比别的程序员在任何时候都会不停地强调着这三条哲学。


而《The Art of Unix Programming》总结了下面这些哲学,都是至理名言啊。


Rule of Modularity: Write simple parts connected by clean interfaces。


Rule of Clarity: Clarity is better than cleverness。


Rule of Composition: Design programs to be connected to other programs。


Rule of Separation: Separate policy from mechanism; separate interfaces from engines。


Rule of Simplicity: Design for simplicity; add complexity only where you must。


Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing 


else will do。


Rule of Transparency: Design for visibility to make inspection and debugging easier。


Rule of Robustness: Robustness is the child of transparency and simplicity。


Rule of Representation: Fold knowledge into data so program logic can be stupid and robust





Rule of Least Surprise: In interface design, always do the least surprising thing。


Rule of Silence: When a program has nothing surprising to say, it should say nothing。


Rule of Repair: When you must fail, fail noisily and as soon as possible。


Rule of Economy: Programmer time is expensive; conserve it in preference to machine time





Rule of Generation: Avoid hand-hacking; write programs to write programs when you can。


Rule of Optimization: Prototype before polishing。 Get it working before you optimize it。


Rule of Diversity: Distrust all claims for “one true way”。


Rule of Extensibility: Design for the future, because it will be here sooner than you 


think。


X Windows 的设计者 Mike Gancarz 给出了下面九条哲学思想


Small is beautiful。


Make each program do one thing well。


Build a prototype as soon as possible。


Choose portability over efficiency。


Store data in flat text files。


Use software leverage to your advantage。


Use shell scripts to increase leverage and portability。


Avoid captive user interfaces。


Make every program a filter。


在今天,这种思想依然被传承着,在影响着世界上各个角落的每一个程序员。


Unix痛恨者手册


这里还需要值得一提的是一本叫《The Unix-Haters Handbook》,中文译做《Unix痛恨者手册》。可以


在这里下载:http://research。microsoft。com/~daniel/uhh-download。html。其中以调侃的语气声


讨了Unix的种种不是。虽然这是十年前的一本书了,但还是值得一读。这本书指出了许多Unix的设计错


误,指出了种种看起来很合理的设计走向了荒谬,还这样调侃了C语言——“如果说C语言给足了让你上


吊的绳子,那么,C++在给了你足够的绳子把你的邻居全部捆起来之后,还给了你足够的绳子让你为一艘


小帆船装上帆,最后你还有足够的绳子把自己吊死在帆船的桅杆上”。呵呵,相当的尖酸刻薄吧。里面


有一句对操作系统的评价是这样的:“The fundamental difference between Unix and the Macintosh 


operating system is that Unix was designed to please programmers, whereas the Mac was 


designed to please users。 (Windows, on the other hand, was designed to please 


accountants。”(Windows设计给会计人员?!连计算机用户都不是了,呵呵)


不过,我可以感觉得到这本书的作者在书中对Unix的感情是比较复杂的,爱恨交加,在书的最后有这样


一句话“would anyone have spent this much time and effort writing about how much they hated 


Unix if they didn’t secretly love it? I’ll leave that to the readers to judge, but in 


the end, it really doesn’t matter: If this book doesn’t kill Unix, nothing will”。是


的,如果Unix能够存活这么长的时间,那么,不会有什么东西可以把他消灭了。


从《Unix痛恨者手册》这本书,再加上Unix的历史,我们可以感到Unix的经历的风风雨雨,在Unix上面


出现有种种教训,近40年的历程,Unix历经磨难,几近夭折,一路走来的确很不容易,让人由衷感叹。


今天的Unix,今天的软件工业和以前相比已是不可同日而语。很大程度上,这些都要归功于这个充满苍


桑的Unix。


后记


在中国我们开始学习计算机的时候,我们被Microsoft所创造的文化所笼罩里。就在Unix出现革命性的转


变,在Unix影响计算机世界文化的那几年里,科班出生专业开发人员学习的是MS-DOS和微软的文化,我


们犹如一个井底之蛙一样,对外面的翻天覆地的变化无动于衷。微软创造的文化在我们这里尤其地根深


蒂固,我们几乎忘记了另外一边的Unix(参看《Unix 40年:Unix年鉴》、《Unix 40年:昨天,今天和


明天》)。


在那充满***Unix的岁月里,大伙为了科研目的或个人兴趣在Unix上进行各种开发,并且不计较金钱利益


,将这些源码公开,互相共享。在那里,开发和自由成为主题,正因为如此,当今的世界才如此丰富多


采。在40年Unix文化和技术积淀的里面,蕴涵着比较纯正的计算机文化和思想。


纵观整个Unix的历史过程中,许许多多的程序员、工程师前辈们在Unix中所摸爬滚打,他们的辛勤地、


他们呕心沥血地跟随Unix,努力建立一个繁荣的计算机世界的文明。Unix不是一个简简单单的操作系统


。有人说,Unix是程序员设计给程序员的,一点没错。Unix的近40年历史造就了它的博大精深,它给程


序员们带来的绝不仅仅只是技术上的知识。它的失误,它的无奈,它的精神,它的荣耀,它从技术和思


想上都启迪着我们。对于程序员来说,学习Unix就等同于向前辈程序学习。无论你是什么样的程序员,


你都应该了解Unix,这是开发人员的根,前面的开发者造就了它,而它又在引领后面的开发人员,它是


前辈程序员们交给我们的一份礼物,一个接力棒,它是开发人员赖以生存的土壤,是上一辈程序员留给


我们这一代程序员开启未来的钥匙。Unix就像一个程序员教父一样,理当受到我们的尊敬和崇拜。
========

Unix与Linux之间的差异不可忽视

http://os.51cto.com/art/201405/440818.htm


随着Linux迅速在服务器平台上取代Unix,Unix老手们会发现Linux与Unix之间存在不少差异。


任何Unix版本背后的理念是,厂商为客户提供一切完整的服务。Unix环境下软件开发需要专有工具来确


保其完整性。Linux哲学是——一切都是开源的;任何驱动或软件组件的源代码必须开放,以便用户能以


最佳方式将它们集成。


这两个平台看起来非常相似,但如果没有知晓Unix和Linux之间众多细微与定义差异,可能会造成一些问


题。


Unix专有工具基本都会缺席Linux服务器软件列表。例如,Unix管理员使用EMC的PowerPath工具把冗余存


储区域网络(SAN)连接到服务器。在Linux上,无法部署PowerPath。先前为Unix服务器购买的高性能文件


系统与卷管理器软件授权,无法在Linux上使用。这是否意味着Linux是劣等平台?没准只是与你所期望


的表现不同而已。


Linux与Unix之间的主要区别是,Linux的一切都是开源的,因此可以免费使用。相比之下,为旧服务器


的软件支付数千美元总会令人心生不爽。以PowerPath为例:所有的Linux发型版都有原生工具——Linux 


Device Mapper Multipath驱动,效果和PowerPath一样。甚至EMC都建议用户使用此工具来连接Linux服


务器与SAN设备。


在Linux服务器上,使用卷管理器来管理存储,可以节省高昂的授权许可费用。Linux自带逻辑卷管理器


,可用它来灵活配置存储。Unix管理员对这些工具的使用应该没有多少问题,但他们还是不相信自由与


开源的软件会与昂贵的专属解决方案一样可靠。


在某些情况下,特定的专属软件也可以用在Linux发行版上。它们通常与购买的硬件配套。如果你的


Linux发行版的硬件支持列表中有该硬件,就不会遇到任何问题。Linux厂商会与硬件厂商合作以优化运


行和支持。硬件厂商通常只会支持企业级的Linux发行版,包括SUSE、Oracle、Ubuntu和Red Hat。免费


发行版可能会遇到硬件无法很好工作的情况。


Unix管理员通常使用ifconfig命令来监控服务器的网络使用情况。在Linux上该命令也存在,在1996年内


核2.0发行后就废弃了。此后,ip命令是监控系统中IP情况的唯一方式。这条命令有很多参数选项,便于


管理与监控网络。


即使你是位经验丰富的Unix管理员,也要考虑进行一些技术培训,这样技术与经验就能填补Unix与Linux


之间的这些差异了。
========
0 0