`
xidajiancun
  • 浏览: 452867 次
文章分类
社区版块
存档分类
最新评论

计算机那些事儿 --主流操作系统与编程语言发展概要

 
阅读更多

引言:几乎每一本入门书,无论是操作系统还是编程语言,开头的几章总是会介绍这个操作系统或者这门编程语言的发展历史,刚开始,你可能会感到有趣,但是,一遍遍的看过之后,看他们会感到很烦,因为大部分东西都是一模一样那么我今天在这儿总结出来各主流的操作系统与编程语言的发展历史,目的在于,看完这篇文章之后,读者可以略过那些历史性介绍,把注意力集中在那些值的研究的东西!(写的不好的地方,还请大家见谅,毕竟作者才大二,不足之处以后一定修改)

历史其实很有趣!

--当年明月

正文:

0.我们的故事从上个世纪60年代的美国开始。

那个时代的计算机是个新鲜玩意,非常笨重,家庭用户是没有的,都是商用或者试验,科学计算用的机器。当时的计算机大都没有什么操作系统,顶多有个批处理系统,可以把要输入的指令记录在某种媒介上(比如纸带)一次性输入进去,让人们省去一条条重复输入指令的麻烦。后来慢慢有了很简单的操作系统,但并不像现在我们见到的操作系统这样通用。1964IBM公司推出了一个系列的大型机,用途、价位,各不一样,但他们上面运行的操作系统,都是System/360。但是它还是不能满足人们的需求。

1.那时候有个聚集了很多牛人的地方,叫做贝尔实验室,1925年由AT&T公司成立的。开发部门是贝尔实验室最大的部门,负责设计构成贝尔系统电信网络的设备和软件。你光看这儿所诞生的发明就知道这个地方有到底多牛:晶体管,通信卫星,电子数字计算机,蜂窝移动通信,以及后来的UNIX操作系统,C语言,C++语言...

那时候还有个聚集了很多牛人的地方,叫做麻省理工学院(MIT),这是美国的一所综合性私立大学,世界理工大学之最的美名。从这里走出的牛人很多,2009年为止,先后有76位诺贝尔奖,都曾经在麻省理工学院学习或者工作过。麻省理工学院的自然及工程科学在世界上享有极佳的盛誉,麻省理工研发高科技武器和美国最高机密的林肯实验室、领先世界一流的计算机科学及人工智能实验室、世界尖端的媒体实验室、和培养了许多全球顶尖首席执行官斯隆管理学院也都是麻省理工赫赫有名宝贵资产。有着毋庸置疑的实力。

那时候,还有个聚集了很多牛人的地方(怎么这么多牛地方...)。这地方是个公司,叫做通用电气公司。这公司可是个大公司,当年是个卖灯泡的,他们的灯泡可非同一般,虽然不节能,虽然寿命不如现在的长,虽然价格比现在贵,虽然外形也不一定好看,但是他们是第一家卖灯泡的!因为他们的BOSS,就是大名鼎鼎的托马斯.爱迪生。

时间到了1965,这三个聚集着不少牛人的地方有一天忽然想合作一把。于是,大名鼎鼎的贝尔实验室,大名鼎鼎的麻省理工学院和大名鼎鼎的通用电气公司一起开始了开发一个操作系统的计划。这个操作系统名字叫做MULTICS。其目的在于,让大型主机可以同时提供300台以上的终端机连接使用。

2.然而,时间到了1969年,Bell实验室最终退出,这个项目失败了,大家都很沮丧。在这些沮丧的人中,有一个人,他叫KennethLaneThompsonKennethThompson1943年出生在美国的新奥尔良,1966,他加入了贝尔实验室,参与了MULTICS项目。那时候Thompson同学在自己的工作之余编了一个游戏,叫做星际旅行。这个星际旅行跟星际争霸那肯定是没的比的了,不过在那时候已经算是很有吸引力了。这个游戏自然是被设计运行在MULTICS系统上的,由于MULTICS系统还不完善,所以游戏运行的也不是很流畅,所以,能够顺畅的玩星际旅行,成为了Thompson同学努力工作的动力。可是后来项目被干掉了,如果事情就这样结束,那么Thompson同学就再也不可能流畅的玩他的星际旅行了,这是多么遗憾的事情啊。可是现实是残酷的,项目确实就是取消了,要想顺畅的玩游戏怎么办?教导我们说:自己动手,丰衣足食。我估计Thompson没有背过语录,但是他用自己的行动证明了这两句话的正确性。他淘换出一台PDP-7的机器,并且伙同其同事DernisRitchie,打算将星际旅行移植到这台PDP-7上。当然,要想运行这游戏,还是的有个系统。可是系统从哪里来?MULTICS已经停工了,并且这系统绝对不是两个人可以搞定的。那怎么办?还的自己动手吧!于是KenThompsonDernisRitchie发扬自己动手的精神,用汇编语言写出来个操作系统(这还是人吗!!!???),这个系统不像MULTICS那么牛,不支持很多的用户,只能支持两个用户,(估计是为了避免做好了之后俩人抢机器玩的局面发生,也可能是为了以后俩人对战..)支持的进程也有限,其他功能也都没有MULTICS设计的那么复杂。相对于那个MULTICS系统——MULTiplexedInformationandComputingSystem,BrianKernighan开玩笑地戏称他们的系统其实是:"UNiplexedInformationandComputingSystem",缩写为"UNICS"。后来大家取其谐音,就诞生了UNIX这个词。

这一年,已经是1970,史称UNIX元年。直到现在,计算机中都是用197011000秒为原点来记录时间。(计算机中的时间记录的是自197011000秒开始,到现在经过的总秒数,再用这个秒数计算出年,,)

2.后来,时间到了1972年,他们觉的用汇编写的系统不好维护,于是ThompsonRitchie合作想将UNIX改用更高级的程序设计语言来写,但是,当时现成的高级程序设计语言只有B语言,于是...下面就是见证奇迹的时刻--DennisRitchie发明了C语言,然后俩人用C语言又UNIX重写了一遍。从此,UNIX走上了发展的快车道,并且一直用到现在。许多世界级的大服务器,用的都是UNIX系统。

3.时间到了20世纪80年代。

1979年,中国改革开放的总设计师爷爷提出改革开放的设想,中国开始走向了高速发展的新时期(似乎离主题有点远!!!-_-)。而Bell实验室年轻的工程师BjarneStroustrup开始接受一项新的任--分析UNIX内核,然而,当时没有一种工具可以用来描述复杂系统的模块结构和模块间的通信模式于是...CwithClass诞生了大牛就是这样,没有的合适的工具我可以直接给你造一个!!!-_-)到了197910月,第一个带类的C开始投入使用。1983年又对带类的C进行了几处修改和扩充,于是C++这个名字产生了,19851989年间,C++经历了最主要的革新,相继增加了保护成员,保护继承,以及多重继承等,template,异常,NamespaceSTL等特性逐渐被加入到C++标准,标准化也紧张有序的进行着,C/C++被誉为是程序员的正宗编程语言,它们的广泛应用极大地推动了软件业的发展。

4.1984年,RichardStallman发起了GNU项目。

RichardStallman,1953年出生在美国纽约曼哈顿地区,高中的一个暑假,他去给IBM打工,花了两周的时间用Fortran语言编了一个数据处理的程序。这是他第一次接触计算机,或许就是这次相遇,确定了他未来行走的方向。后来,1971,他考上了哈佛大学,上学的同时,他还受聘于麻省理工学院的人工智能实验室,成为了一名职业黑客(黑客这个词当时还没有贬义)。也不知道他哪来的那么多时间,可能也是把毛概和邓论都翘了吧。在人工智能实验室的期间,他可没少干活,开发了很多有用的软件,其中最著名的就是Emacs编辑器。Emacs是一个可与vi相抗衡的强大的编辑器,他们俩的操作方式完全不同,但却同样强大,各自用自己独有的方式,提高着人们的编辑效率。直到今天,仍然总有人争论到底Emacs好还是vi,信奉Emacs的人和信奉vi的人形成了两个帮派,这俩帮派经常在大街上用板砖菜刀拼个你死我活。

那时候的Stallman在人工智能实验室里工作的非常Happy,大家有BUG同担,有代码共享。软件工程师的世界,是一个人人为我,我为人人的世界。在这个过程中,出现了软件,并起到越来越重要的作用,最终成为了计算机的灵魂。而最初的计算机软件没有什么开源不开源的概念,因为那时候软件天生就是自由的!卖计算机的同时会附带软件,包括软件的源代码和文档。用户可以根据自己的需要去进行修改软件,与别人分享软件,软件开发者的目的,也不是靠软件赚钱,而是靠软件支撑起硬件的功能,然后卖硬件赚钱。然而随着技术的发展,软件逐渐脱离硬件成为一个独立的产业,很多软件慢慢的只提供二进制代码而不提供源码了,这就意味着你不能修改它,并且多数还规定最终用户没有二次分发的权利。也就是说,这东西你买了,只能你用,你再给别人,不行!那时候,Stallman实验室买的第一台打印机附带有驱动程序的源代码。他们那的黑客们可以随意修改这个驱动,根据自己的需要添加些小功能啊,改改bug啊之类的,这为他们的工作带来了很大的方便。后来,实验室又买了一台激光打印机,这次厂商只提供了二进制的打印机驱动程序,它是实验室里仅有的一个没有源代码的软件。出于工作的需要,Stallman想修改一下这个驱动程序,但是不行啊,没源码啊。后来Stallman听说卡内基·梅隆大学有这个打印机的驱动程序源代码,他就去了那里向人家要源代码,对方办事效率还是挺高的,很干脆的拒绝了他。因为他们和厂商签署了一份保密协议,协议要求他们不能向别人拷贝源代码。顿时Stallman感到他们背叛了自由的计算机社团,他非常生气,但是他选择了沉默。这只是一件小事,只是一个时代的缩影。那个时代,正处在软件向私有化转变的过程中,越来越多的软件选择了不开放源代码,不允许二次分发的发布方式。甚至Stallman身边的同志们也都一个一个都跑到那些靠卖私有软件挣钱的公司去打工了。而Stallman依然沉默。

不在沉默中爆发,就在沉默中灭亡。Stallman爆发了!

他要重现当年那人人为我,我为人人的合作互助的软件世界;他要把使用、复制、研究、修改、分发软件的权利还给每一个软件世界的人民;他要用自己的行动告诉人们,软件天生就该是自由的!他要开辟一个新的世界,哪怕是一个人在战斗!于是,一个宏伟的计划在他心中产生——GNU计划。它的目标是创建一套完全自由的操作系统,因为操作系统是电脑中最重要的最基础的软件,要创造自由的软件世界,自然先要有一套自由的操作系统,然后再以此系统为中心,开发各种各样自由的软件。Stallman最早是在net.UNIX-wizards新闻组上公布了GNU计划,那是1983年的事情。GNU计划中的操作系统,将是一个类UNIX的操作系统。这个系统要使用与UNIX相同的接口标准,这样,就可以由不同的人,分期分批的创作操作系统的不同部分而不必担心相互之间协同工作的问题。

为了实施GNU计划,1985,Stallman又创建了自由软件基金会。基金会的主要工作就是执行GNU计划,开发更多的自由软件。1989,Stallman与基金会的一群律师们起草了广为使用的《GNU通用公共协议证书》也就是GPL协议,以此协议来保证GNU计划中所有软件的自由性。到了1990,GNU计划中的这个系统已经初具规模,有了很多的优秀的软件。其中有很多是世界各地的黑客们无偿提供的,也有部分是利用自由软件基金会的基金雇佣程序员来开发的,当然,Stallman自己也是身先士卒,开发了Emacs,Gcc,Gdb等重要软件。当他看着这些丰富的自由软件的时候,感觉到那清新自由的空气,终于又回来了,以后,人们就可以拥有一个可以自由使用、自由修改、自由分发的,自由的操作系统!

不过等一下,好像还差点什么,,...差个内核吧?

作为一个系统,没有内核是不行的,这么重要的部件Stallman当然不会忘记,所以才会有Hurd内核。这个内核被设计为一个遵守POSIX标准(可移植性操作系统接口标准)的微内核。所谓微内核,是相对于宏内核来说的。宏内核就像我们现在的Linux内核,是一个独立的程序,里面包含了进程管理,内存管理,文件管理等等功能。而微内核则将一个内核需要的功能尽量的简化并且拆分,运行起来是几个独立的程序,有的专门负责进程管理,有的专门负责内存分配,等等。内核是一个系统的核心,所以至关重要,StallmanHurd的开发也是精益求精,非常谨慎,以至于内核的进度有些落后于其他的系统软件,当其他软件都已经有比较优秀的版本的时候,Hurd内核依然不能够走出实验室投入真正的使用。这种情况,一直持续到1991,另一个英雄的出现。

4.1991年,BBS上贴了一条消息:Helloeverybody…”

芬兰的赫尔辛基大学的LinusTorvalds宣称他以BashGcc等工具写了一个小小的内核...



未完待续...

精彩即将上演:

BorlandMicrosoft:君子与小人,是君子你就的吃亏!

IBM与微软:无间道,看黑道大哥怎样被马仔整趴下!

微软与SUN:宏观调控下的悲剧

Borland公司的没落:一个时代的终结

Windows一统天下,Linux揭竿而起:Linux在服务器市场的反击

微软捏苹果:“农村包围城市”战略的胜利

DelphiVB杀手

Java对战C#:板砖与菜刀齐飞...

C++11新特性的加入,Boost库的发展:C++真正成为编程语言界的无冕之王

.....

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics