??为了能够让多任务跑起来,我们必须有一个监控程序,我们称为multi程序。所以这个multi程序,需要一个有公众之心的没有私心的这么一个组织或者厂商。他们负责写出这个程序,为其他程序的运行提供一个公平公正的运行环境。
??早些时候的ATMT的贝尔实验室(Bell),麻省理工学院的人工智能实验室(MIT)还有通用电气实验室(GE)。他们联合起来研发了这样一个监控程序。
??起的名字就叫做Multics。多样性的。这个程序的设计,贝尔实验室为了能够参与这个项目招了很多优秀的工程师,MIT他们的许多教授和学者也参与进来。后来两三年之后,人们发现这个MUltics的目标到底是什么呢?最初设定的目标已经完成了,后续的目标人们发现在设计的过程中,还有许多任务还没做好,不完美。于是这个系统的目标被设置的越来越大,到最后迷失了方向。搞不清楚到底要做什么了。面对这种现状,GE就退出了,再后来贝尔实验室也退出了。但不管怎么讲Multics系统是研发成功了。
??Multics这个项目试图建立一个具备众多功能的信息功能应用工具而设定,但是最后大家都迷失以后。贝尔实验室的工程师,肯-汤姆森Ken-Thompson,为了能够研究自己写的小的游戏程序。自己写了一个系统(DEC):数字设备公司。DEC当时生产了非常著名的小型机PDP-11。Ken回到实验室后为了研究Space-Travel问领导能不能给配置一个PDP-11,或者说有使用PDP-11的权限。但是公司领导未批准。
??后来Ken在公司发现了没人使用的PDP-7,所以ken在PDP-7上尝试写他的程序,花了一段时间他用汇编语言写了一个小系统,居然Space-Travel可以在上面跑起来。同事们对他的系统非常感兴趣。并起名字叫 Unics,后来不知道什么原因有改名字叫unix在1969年。
??真正引起人们关注或者说在生产环境中能带来生产力的是1971年的时候贝尔实验室他需要为自己内部的一个专利部门用一个所谓文字处理的这样程序叫做 nroff,这个程序的运行需要一个底层的系统。但是早期的系统并不理想。后来Ken这几个人就把这个项目承包起来了,并且在unix中写这个程序。在这个过程中UNix也不断被完善。当时的管理层还没意识到unix的重要性。所以那时还没有对unix有商业化的想法。
??而时间走到1972年前后,unix的装机量在贝尔实验室已经达到了10台,并且在贝尔实验室广为流行。刚才说过unix是使用汇编写成的,而他的各种应用程序是使用解释型的编程语言B语言编写而成的,B语言的特点在于非常小巧,短小精悍,但是它是一种解释型的语言还不够强大,后来贝尔实验的另一个年轻人 丹尼斯-瑞驰(Dennis Ritch)他把B语言增加了一些数据结构或者数据类型等等。进而把B语言升级成了B+语言,后来这个B+语言不好听,就改为了C语言。 所以这个作者也花了一些时间 把B语言升级成了C语言。这个就是到今天为止三四十年依然是最流行的编程语言之一。
??到1973,1974年的时候Ken和 Dennis这两个人决定联合起来用C语言重写整个Unix.双方联合起来发表一篇论文在《美国计算机通信》,走出贝尔实验室第一次公开展示Unix时间在1974年前后。公开后很多大学和研究机构都读到了这篇文章,都想拿到这个系统来研究和学习和使用。不过当时的贝尔实验室属于AT&T美国电话电报公司,当时美国最高法院正在反垄断,正在诉讼AT&T,那时候ATMT被反特拉斯法裁定不能销售电报和电话以外的任何商品,不但不能销售,别的东西你有你不但不能卖而且还得提供给别人。而贝尔实验室就属于AT&T。当很多向Ken要这个系统,Ken将重构的Unix一一下发。
??哪些大学和研究机构拿到unix后开始研究,然后有将研究的成果一一回馈到贝尔实验室。System V7版本unix。 在1979年这个V7版本已经流行了,在1978年全球第一家包装发行商业发型版本unix的公司诞生了叫做 西雅图数字公司(SCO)开始负责包装发行unix并且开始出售第一个他们的商用版本的C编译器。
??在Unix的发展历史当中最早加入进来并且在今天为止对Unix的发展做出了卓越的贡献是美国加州大学的伯克利分校。(Berkeley)而Ken在1976年在年休的时候去伯克利分校任教,因此使得伯克利分校在unix的研究更是走在了前列。在伯克利分校有个著名的研究生叫BillJoy在Unxi的研究上更是花了很长 时间并且Bill joy 他们联合起来成立了BSRG这样一个组织。伯克利操作系统研究小组简称BSRG。并大概在1977年,发布了第一个由BSRG发行的Unix并命名为BSD(伯克利 系统 )Brekeley System Distribution.在1980年前后这个系统成为加州大学伯克利分校校园网的核心系统。
??在后来ATMT公司被美国最高法院裁定的确违反了《反特拉斯法》反垄断法,被分拆了。分拆完以后贝尔实验室独立了,贝尔实验室就不再受限于只能卖电话电报了。其他商品也可以卖了。这个时候BSRG一直在卖BSD而且从中赚到了不少钱,unix正统的维护人员早年时候没法出售只能眼睁睁的看着别人赚钱。后来自己可以卖了,第一件事让当年帮助哪些人来交保护费。当年赚到钱的哪些人就成为了他的眼中钉肉中刺,第一个动作就是把BSD告上法庭,侵犯了贝尔实验版权专利权,要求对方付费。其实那个时候BSD中的代码所保留当年的unix的原生代码不足30%。二者一场旷日持久的官司开始了,一打就是10年。这场官司两败俱伤。
??在198几年贝尔实验室把unix卖掉了,几经转手终之没落。在1985和1986年前后当unix商业化以后,1981年AT&T被分拆后可以卖产品了。卖产品后第一件事是将unix商品化。此前任何拿到unix的开始补交费用。一份拷贝4万美元。有钱的拿钱,没钱的要将系统删除。所以很多大学讲课全是用的unix.着其中就包括MIT美国麻省理工学院。MIT其中有个极左的教授 Richard Stallman这个家伙就很不爽,他觉像unix这样的产品本来就是很多互联网上的程序员一起完成的。并非一家公司所能完成的。并不应该为商业公司所独占,软件应该是全人类的中程序员的思想结晶。
??所以在深思熟虑下发起GNU运动GNU的意思是 GNU is not Unix,GUN 不是unix意思 是我们不做商业化,我们的软件都是*的,任何人都可以免费无偿获取。于是GNU组织发财了,所以GNU组织需要有一个章程叫做GPL(General Public License)。
GPL指的是什么呢?就是GNU组织的共产主义宣言,大体定义来说,任何软件程序只要遵循GPL协定那它就是*软件。free不是免费而是*。没想到他倡导的这场运动,他发起这个运动之后还成立了一个叫FSF(Free Software Foundation)*软件基金会 。开始正式运作*软件项目。刚开始没有商业公司把它当回事,但是在他成立不久有个程序就 X-Windows,就是为unix提供图形界面的作者。X-Windows的作者第一个宣布加入GPL协定,把自己的软件开源了。
??没想到本来unix各自为战以后,Unix商业化发行的最大坏处,不仅仅是卖钱的问题,还有各个公司为了保证自己是独一无二的,他们在里面加入了自己独有的东西。所以使得很多人学了一个公司的,就不会另一个公司的软件了割裂现象越来越严重。开始这些公司没有把GNU当成一会事,事实证明这是一个错误。
??GNU随之不久有很多的全球程序员纷纷贡献给这个组织很多程序,有著名的gcc(gnu c complier)GNU 的C编译器,再后来vi(visual interface)文本编辑器等等等,出现一大批优秀的软件。但是遗憾的是他们虽然宣传自己不是unix但实际上这些软件都跑在unix上。因为任何程序都要跑在操作系统之上。所以很多人认为这是一个莫大的讽刺。因此这些支持*软件的程序员都希望GNU组织研发出一个系统来。GNU没有在承诺的时间研发出系统,很多人GNU组织的表现很不满意,和灰心。
??尽管如此在欧洲的有些大学里面有个教授也是讲操作系统原理的一个教授安德鲁(Andrew),这个教授为了讲Unix是用源代码讲的,后来Unix商业化后也用不起了。然后自己写了一个类Unix系统叫做Minix,为什么叫 Minix呢?意思是很接近Uinx但是没有unix那么大,所以是迷你的Unix的确很小,早期第一版据说只有4000+行代码。但麻雀虽小五脏俱全。完完整整所有的功能都有。那他的很多学生和全球的这些heike们都希望为Minux贡献一份力量增加代码,增加通用性等等,但是这个教授很古怪,他采取的策略是我的代码是我的不许任何外来的代码玷污它。所以任何的代码都不允许被加入进去。
??因此前方雾霾重重,前方的路不知道到底通向何方。