Linux是目前炙手可热的操作系统,是IT人士的新宠。那Linux是何时研发出来的,又是基于什么的原因开发出来的,本文从源头说起,详细介绍下Linux的发展历程。

Multics计划

众所周知,早期的计算机并不像现在的个人计算机一般人人可以拥有,它是一般人碰不到的高级货,除非是军事或者是科研用途才有可能接触到这类的计算机。那么,在那个年代,可能一间学校就只有一部大型主机也不足为怪了。而我们也知道,有了计算机硬件还需要操作系统的配合才能够发挥计算机的效能,但问题是,一所学校只有一部大型主机,学校里的这么多的教师、学生要想要来使用,怎么办呢?

为了解决这个问题,在上世纪60年代初期,麻省理工学院 (MIT)开发了所谓的“兼容分时系统(CompatibleTime-Sharing System, CTSS)”,就字面上的意义来看,该系统主要功能是可以让多个终端机联机进入主机使用主机的资源,当时可以让约30位使用者联机使用主机。而为了让这个分时系统更加的强大,在1965年前后,由贝尔实验室(Bell)、麻省理工学院 (MIT)及奇异电器公司(GE)共同发起了开发一个名为Multics系统的计划,该计划的目标是让大型主机可以联机300位以上的使用者。不幸的是,1969年,因Multics计划的工作进度过于缓慢,贝尔实验室退出该计划。

Unics诞生

在复杂的Multics系统的计划失败后,曾经参与Multics计划的贝尔实验室的成员Ken Thompson正在撰写一个名为“星际旅行(Space Travel)”的游戏程序,自己工作上的需求使他迫切需要一套档案存取的小型操作系统,于是他便在1969年的时候以DEC公司的计算机PDP-7为硬件基准,设计了一个适合自己工作环境的小型档案系统,其中也含有他自行开发的一些小工具,并取名为Unics。该系统就是最早期的Unix的源头。

化身Unix

由于Thompson写的那个操作系统实在太好用了,所以UnicsBell实验室内部广为流传,并且数度经过改版。到了1973年,Bell实验室的Dennis Ritchie等人为了让这个系统的执行效能更优化,所以使用编译效能更好的C语言将原有的Unics核心大幅度的改写了,并且确定该操作系统名称为Unix (注:相对于MulticsUnix有单一的意思!)

BSD诞生

Unix早期的发展中,有一件相当重要的事情,那就是BSD的诞生。由于C语言是一种高级语言,它可以被应用在不同的硬件架构上面,而Unix本身就是C语言写成的!在Unix发表之后,伯克利大学(Berkeley)的教授对于这个操作系统相当感兴趣,在经过取得Unix的原始码,并且几经修改之后,终于在1977年发表了第一代的BerkeleySoftware Distribution(BSD)。这个BSDUnix的一个分支,它的发展对于Unix有相当大的影响,例如后来的Sun公司就是使用BSD发展的核心进行自己商业的Unix版本的发展的。

Unix的版本

由于C语言是一个相当高级的程序语言,它与硬件没有很直接的相关性,所以,对于使用C语言写成的Unix来说,只要经过稍微的原始码修改程序,就可以在不同的硬件架构上面执行这个操作系统。后来,由于Unix的方便性,因此很多的商业公司及学术机构就加入这个操作系统的研发。不过,也由于Unix的便利性与改写容易,因此就造成了很多的不同版本的Unix,例如ATTSystem V、加州大学的BSD版、IBMAIX等等。

众所周知,操作系统的核心(Kernel)必须要跟硬件配合,才能提供及控制硬件的资源进行良好的工作,而在早期每一家生产计算机硬件的公司还没有所谓的“协议”的概念,所以每一个计算机公司出产的硬件自然就不相同。因此他们必须要为自己的计算机硬件开发合适的Unix系统(不同的版本),所以,他们自行开发的Unix当然只能配合本身的硬件配备。例如在学术机构相当有名的SunCrayHP就是这一种情况,他们开发出来的Unix并没有办法在其它的硬件架构下工作。

此外,由于版本太多,而大家都是同样来自于Unix这个老祖宗,所以自然也都称自己是Unix

GNUFree Software Foundation

Unix在商业上面的问题让许多Unix喜好者感到忧心,其中一个就是有名的Richard M. Stallman先生。他认为,Unix是一个相当好的操作系统,在这个系统上面,如果大家能够将自己所学的贡献出来,那么这个系统将会更加的优异。Stallman先生认为最大的快乐就是让自己开发的好软件让大家来使用。而且,由于每个人的工作环境(指软硬件平台)可能都不太相同,所以,他也强调应该要有Open Source的概念,让大家都能够分享彼此的心得。他认为,有了Open Source之后,个人开发的程序将有很多的人可以帮忙检验,将使得Unix社群更加的茁壮。为了自己的理想,Stallman1984年创立了GNU与自由软件基金会(Free Software Foundation,FSF),并创作了许多“自由软件”供大众来使用。并且,对于其作品以自由(free)的GNU GeneralPublic License (GPL)的授权模式提供大众使用。FSF的核心观念是“版权制度是促进社会进步的手段,版权本身不是自然权力”。而且,StallmanGNU General Public License一直强调Free这个字眼。他是这样说的:"Freesoftware" is a matter of liberty, not price. To understand the concept,you should think of "free speech", not "free beer"."Free software" refers to the users freedom to run, copy, distribute,study, change, and improve the software。大意是说,自由软件并不是指“免费”的,而是指具有“自由度,freedom”的软件,什么是自由度呢?也就是你在取得这个软件之后,可以自由地进行修改、进一步发表或复制在不同的计算机上。这无疑是个好消息,因为如此一来,你所拿到的软件可能原先只能在Unix上面运行,但是经过原始码的修改之后,你将可以拿他在Linux或者是Windows上面来运行。

Stallman 先生更直接对自由度下了这样的说明:

你可以根据任何目的( purpose)来运行这个Free的程序;

你可以在理解了这个Free的程序的运作之后,将它修改成你所想要的样式与功能;

你可以将你自己修改过的Free的程序再次的发表,以帮助你的朋友们;

你可以将这个Free的程序进行改良,并将改良过的程序公开发表,以造福社群。

简单的来说,GPL授权具有几个特点:

任何软件挂上GPL授权之后,即为自由的软件,任何人均可取得,同时,亦可取得其原始码( Source Code)

取得GPL授权的软件后,任何人均可进行修改原始码,以符合自己的喜好;

除此之外,经过修改的Source Code应回报给网络社会,提供大家来参考。

但请特别留意,并非挂上GPL之后的软件就不可贩卖,这个是不同的两回事。举个例子来说,在Red Hat的官方网站上面提供Red Hat Linux的安装光盘下载,但是Red Hat本身依然在卖Linux的套件,而且还卖的“很不便宜”,为何可以如此呢?因为Red Hat他们卖的资料当中,含有大量经过整理了的文件资料,这些资料虽然在网络上面可以下载,然而花了这么多的时间来整理这些资料,当然应该要给予相当程度的报酬。所以,一定要注意,并非GPL不可用来营利。

GNU对于后来的Linux有相当深远的影响。

由于StallmanGNU计划中,主力在推出各种方便而优异的工具软件,例如广为大家所知的Emacs文本编辑器、GCCBASH等。然而没有系统平台怎么使用这些软件呢?由此,此时就需要一个free的操作系统来运行这些软件。

Linux应时而生

在后来的几年内,由于计算机硬件工业的强力运作,以intel主导的x86系统架构的个人计算机大行其道,个人计算机算是相当流行的一个机器了!但在此时,人们使用的大多还是需要吃很多系统资源的DOS系列或其它的操作系统。此时,芬兰的郝尔辛基大学 (Helsinki)的一位名叫Linus Torvalds的学生做了件不寻常的事情。Linus手边有个Minix系统(这也是 Unix的分支),他对这个操作系统相当的有兴趣。此外,由于当时他正好买了一部386的计算机,所以他就想将Unix移植到个人计算机(X86架构)来使用。受Stallman提倡的Open Source运动的影响,他得以接触到一些source code。在他的努力下,他将Unix改写成可以适用于一般个人计算机的操作系统,到了1991年,他终于将0.02版的hobby放到网络上面供大家下载,并且由于hobby受到大家的肯定,相当多的朋友一起投入这个工作中。终于到了1994年将第一个完整的核心Version 1.0开发完成,并取名Linux

由于Linux kernel的发展是由“虚拟团队”来完成的,大家都是通过网络取得Linux的核心原始码,经由自己精心改造后再回传给Linux社群,进而一步一步的发展完成完整的 Linux系统,由于这个群策群力的缘故,Torvalds先生将Linux定为同样造福大家的GNU授权模式。

至此,Linux诞生了,并在短时间内迅速风靡全球。

企鹅的来源

1994年发表Linux正式核心1.0的时候,大家要Linus Torvalds想一只吉祥物,怪怪的 Torvalds突然想到小时候去动物园被一只企鹅追着满地打滚,还被咬了一口的事。既然想不到其它的吉祥物了,干脆就以这支企鹅来当吉祥物算了!所以,目前我们常常看到这一只企鹅就是这么来的!

Linux时间表

"Helloeverybody out there using minix——I'm doing a (free) operating system"

1991年的8月,网络上出现了一篇以此为开篇话语的帖子----这是一个芬兰的名为Linus Torvalds的大学生为自己开始写作一个类似minix、可运行在386上的操作系统寻找志同道合的合作伙伴。

1991105日,LinusTorvalds在新闻组comp.os.minix发布了大约有一万行代码的Linux v0.01版本。

到了1992年,大约有1000人在使用Linux,值得一提的是,他们基本上都属于真正意义上的hacker

1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码有大约有十万行,用户大约有10万左右。

19943月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。至此,Linux的代码开发进入良性循环。很多系统管理员开始在自己的操作系统环境中尝试linux,并将修改的代码提交给核心小组。由于拥有了丰富的操作系统平台,因而Linux的代码中也充实了对不同硬件系统的支持,大大的提高了跨平台移植性。

1995年,此时的Linux可在IntelDigital以及Sun SPARC处理器上运行了,用户量也超过了50万,相关介绍LinuxLinux Journal杂志也发行了超过10万册之多。

19966月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux已经进入了实用阶段,全球大约有350万人使用。

1997年夏,大片《泰坦尼克号》在制作特效中使用的160Alpha图形工作站中,有105台采用了Linux操作系统。

1998年是Linux迅猛发展的一年。1月,小红帽高级研发实验室成立,同年RedHat 5.0获得了InfoWorld的操作系统奖项。4Mozilla代码发布,成为Linux图形界面上的王牌浏览器。Redhat宣布商业支持计划,网络了多名优秀技术人员开始商业运作。王牌搜索引擎"Google"现身,采用的也是Linux服务器。值得一提的是,OracleInformix两家数据库厂商明确表示不支持Linux,这个决定给予了Mysql数据库充分的发展机会。同年10月,IntelNetscape宣布小额投资红帽软件,这被业界视作Linux获得商业认同的信号。同月,微软在法国发布了反Linux公开信,这表明微软公司开始将Linux视作了一个对手来对待。十二月,IBM发布了适用于Linux的文件系统AFS 3.5以及Jikes Java编辑器和Secure MailerDB2测试版,IBM的此番行为,可以看作是与Linux羞答答地第一次亲密接触。迫于WindowsLinux的压力,Sun逐渐开放了Java协议,并且在UltraSparc上支持Linux操作系统。1998年可说是Linux与商业接触的一年。

1999年,IBM宣布与Redhat公司建立伙伴关系,以确保RedhatIBM机器上正确运行。三月,第一届LinuxWorld大会的召开,象征Linux时代的来临。IBMCompaqNovell宣布投资Redhat公司,以前一直对Linux持否定态度的Oracle公司也宣布投资。五月,SGI公司宣布向Linux移植其先进的XFS文件系统。对于服务器来说,高效可靠的文件系统是不可或缺的,SGI的慷慨移植再一次帮助了Linux确立在服务器市场的专业性。7IBM启动对Linux的支持服务和发布了LinuxDB2,从此结束了Linux得不到支持服务的历史,这可以视作Linux真正成为服务器操作系统一员的重要里程碑。

2000年初始,Sun公司在Linux的压力下宣布Solaris8降低售价。事实上LinuxSun造成的冲击远比对Windows来得更大。 2Red Hat发布了嵌入式Linux的开发环境,Linux在嵌入式行业的潜力逐渐被发掘出来。在4月,拓林思公司宣布了推出中国首家Linux工程师认证考试,从此使Linux操作系统管理员的水准可以得到权威机构的资格认证,此举大大增加了国内Linux爱好者学习的热情。伴随着国际上的Linux热潮,国内的联想和联邦推出了“幸福Linux家用版”,同年7月中科院与新华科技合作发展红旗Linux, 此举让更多的国内个人用户认识到了存在着Linux这个操作系统。11月,IntelXteam合作,推出基于Linux的网络专用服务器,此举结束了在Linux单向顺应硬件商硬件开发驱动的历史。

2001年新年伊始就爆出新闻,Oracle宣布在OTN上的所有会员都可免费索取Oracle 9iLinux版本,从几年前的“绝不涉足Linux系统”到如今的主动献媚,足以体现Linux的发展迅猛。IBM则决定投入10亿美元扩大Linux系统的运用,此举犹如一针强心剂,令华尔街的投资者们闻风而动。到了5月这个初夏的时节,微软公开反对"GPL"引起了一场大规模的论战。8红色代码爆发,引得许多站点纷纷从Windows操作系统转向Linux操作系统,虽然是一次被动的转变,不过也算是一次应用普及。12Red Hat IBM s/390大型计算机提供了Linux解决方案,从此结束了AIX孤单独行无人伴的历史。

2002年是Linux企业化的一年。2月,微软公司迫于各洲政府的压力,宣布扩大公开代码行动,这可是Linux开源带来的深刻影响的结果。3月,内核开发者宣布新的Linux系统支持64位的计算机。

20031月,NEC宣布将在其手机中使用Linux操作系统,代表着Linux成功进军手机领域。5月之中SCO表示就 Linux使用的涉嫌未授权代码等问题对IBM进行起诉,此时人们才留意到,原本由SCO垄断的银行/金融领域,份额已经被Linux抢占了不少,也难怪 SCO如此气急败坏。9月中科红旗发布Red Flag Server4版本,性能改进良多。11IBM注资Novell2.1亿收购SuSE,同期Redhat计划停止免费的Linux,顿时业内骂声四起。Linux在商业化的路上渐行渐远。

2004年的1月,本着“天下事分久必合,合久必分”之天理,SuSE嫁到了NovellSCO继续顶着骂名四处强行“化缘”, AsianuxMandrakeSoft也在五年中首次宣布季度赢利。3SGI宣布成功实现了Linux操作系统支持256Itanium 2处理器。4月里美国斯坦福大学Linux大型机系统被***攻陷,再次证明了没有绝对安全的OS。六月的统计报告显示在世界500强超级计算机系统中,使用Linux操作系统的已经占到了280席,抢占了原本属于各种Unix的份额。9HP开始网罗Linux内核代码人员,以影响新版本的内核朝对HP利的方式发展,而IBM则准备推出OpenPower服务器,仅运行Linux系统。