早期的计算机,是非常昂贵的,并非普通人可以使用的,而且,当时的计算机性能并不高,功能也很局限,经过长期的改良,人们开始使用键盘对计算机进行输入,使用显示器来获取计算机的输出信息。
虽然早期的计算机的性能相对于如今,要缓慢的多,但是相对于人脑,其运算速度已经相当惊人了,因此在教育,科学,军事等领域,计算机的功能还是非常实用的。不过由于计算机价格昂贵,往往在一个学校中,也只能拥有一台计算机,因此教员们想要使用计算机,都必须前往计算机所在的房间,就算是要进行一些几秒钟的程序处理,也都必须长途跋涉,另外,每台计算机同时也只能有一个用户登录,同时只能处理一个任务,这使得计算机的使用非常不便,效率也非常低下。
兼容分时系统与Multics计划
为了改善计算机的效率,于1960年初,由麻省理工学院开发了一套系统,称为“兼容分时系统”(”CTSS”,Compatible Time-Sharing System)。该系统大致运行原理如图1.1,图中显示器与键盘称之为“终端”,这些终端自身无法进行计算与输入输出功能,需要通过线路与主机相连,这样,无论主机在哪里,只要使用者来到任意一台终端面前,就可以使用主机进行计算处理了,并且,主机的兼容分时系统,支持多用户同时登陆,对多个程序同时进行处理,使得计算机的效率大大提升。
图1.1
虽然兼容分时系统大大的提高了使用计算机的便捷与效率,但是当时性能较好的计算机,最多也只能支持30个终端而已,因此,人们需要一套更加好的系统,于是,在1965年前后,由贝尔实验室(Bell)、麻省理工学院(MIT)与奇异公司(GE, 或称为通用电器)共同发起了一个研发计划,称为Multics计划, Multics计划的目的是让大型主机可以同时支持300个以上的终端机连接使用。不过,计划到了1969年前后,由于计划进度缓慢,资金的短缺,该计划虽然继续在研究,但最终贝尔实验室还是选择了退出,Multics计划也在不久后宣告失败。
UNIX 与C语言
虽然Multics计划最终失败了,但是并非完全没有收获,人们通过Multics计划还是获得了很多研究成果,有一些人从这些成果中得到了许多启发,Ken Thompson就是其中之一,Thompson是Multics计划的参与者之一,在计划失败之后,继续致力于相关的研究,在1969年的暑期中,Thompson使用汇编语言,仅使用了一个月的时间,编写了一套操作系统,当时Thompson将其称为“Unics”,Unics是相对于Multics的一个戏称,后改名为Unix。
Unix操作系统非常实用,可以很高效的完成任务,到了1973年的时候,Unix已经有了两个版本,Ken Thompson 与其好友Dennis Ritchie,正开始筹划Unix的第三个版本,但有一件事令他们非擦汗那个头痛,那就是编写程序的语言。UNIX开发初期使用的是汇编语言,但是该语言的编写非常繁琐与复杂,因此,他们希望可以使用一种更加高级的语言进行编写,这个想法在当时,算是相当疯狂的。一开始,他们想尝试使用Fortran,可是失败了,后来他们使用了一个叫BCPL的语言,但是Dennis Ritchie觉得B语言还是不能满足要求,于是他们就对B语言进行了改良,这就是如今大名鼎鼎的C语言。Ken Thompson 与Dennis Ritchie成功地使用C语言重写了Unix的第三版内核。由于使用相对灵活的C语言,使得对Unix操作系统的修改、移植都相当便利,为Unix日后的普及打下了坚实的基础。而Unix和C语言完美地结合,使得C语言与Unix很快成为当时计算机领域的主导。
UNIX的两大阵营与GNU计划
70年代末,美国AT&T公司成立Unix系统实验室,研究成果成为UNIX两大阵营之一:UNIX system V,随后,加州伯克利大学(Berkeley)以UNIX第六版为基础,推出了自己的UNIX操作系统,成为后来另一阵营UNIX BSD,如今的UNIX有许多衍生产品:AIX、Solaris、HP-UX、IRIX、OSF、Ultrix等等
由于AT&T公司是一家商业公司,出于商业方面的考虑,AT&T公司决定回收UNIX的版权,不再对学术界开放其研究成果,在1979年的发行版本中,AT&T对新的UNIX产品提出了许多严格限制,这另当时许多的Unix的爱好者和软件开发者们都相当反感,随着商业化版本的种种限制与诸多问题,一个名叫Richard Stallman的领袖站了出来,他认为大家应该互相共享技术成果,这样会非常有助于计算机的发展,作为黑客界的鼻祖,Stallman本人拥有强烈的使命感,尤其是在代码共享方面,为了这个理想,Richard Stallman于1984年创业了GNU计划,1985年,Richard Stallman 创立了自由软件基金会(Free Software Foundation)来为 GNU 计划提供技术、法律以及财政支持。
GNU计划旨在开发一套与UNIX类似的操作系统,这个系统完全由自由软件构成,GNU的目标是编写大量兼容于UNIX系统的自由软件,其中有许多软件如今已经家喻户晓,如:
l FireFox网页浏览器
l OpenOffice办公软件
l Apache网站服务器软件
l GNU C语言
l GNU C LIbrary语言库(glibc)
Stallman先生同时也制定了一套用于GNU自由软件的通用许可协议,GPL协议,该协议的有以下两条主要规定:
l 自由软件的源代码允许用户任意复制、传递、修改及再发布
l 基于自由软件修改再次发布的软件,仍需遵守GPL
GPL并不排斥对自由软件进行商业性质的包装和发行,也不限制在自由软件的基础上打包发行其它非自由软件
Linus与Linux
上世纪80年代,MS-DOS操作系统一直是微机系统的主宰,此时计算机硬件价格虽然逐年下降,但软件价格仍然居高不下,当时苹果公司的MAC OS操作系统是性能最好的,但因其天价,使得没人敢轻易靠近,到了1991年,GNU计划已经开发出了许多工具软件,但是还没有出现一款免费且完善的GNU操作系统。虽然GNU计划当时已经开发出了Minix操作系统,但这套系统并不完善。
一名芬兰的大学生,Linus Torvalds,他的祖父是赫尔辛基大学的统计学家,他的外祖父为让Torvalds能多学点东西,从小就让Torvalds接触一些计算机方面的东西。从那时起,Torvalds便开始接触了汇编语言,芯片等东西。
早期的个人电脑芯片x86系列并不完善,无法很好的处理多进程模式,与大型计算机的CPU的性能相差太多,Linus Torvalds要很好的进行工作,就必须到学校的主机上操作,但是学校总共只有一台UNIX操作系统的计算机,想要使用相当不便,这样的情况,直到386系列的计算机的推出后,发生了改变。Linus Torvalds在得知386芯片的相关信息之后,立即购买了一块Intel 386芯片,并在计算机上安装了GNU Minix操作系统。
Andrew Tanenbaum教授是Minix操作系统的研发者,他希望将该系统用于教育行业,因此对操作系统的开发并不是非常热衷,导致Minix的发展非常缓慢,对许多硬件的驱动支持都无法快速的提供。于是Linus Torvalds开始酝酿着自己开发一套操作系统。Minix的操作系统是一套开源操作系统,因此,Minix的产品中提供了该操作系统的源代码,91年的那个夏天,Linus Torvalds根据Minix的设计理念,编写了一个小内核(仅仅是设计理念,并没有使用Minix的源代码)。该核心可以很好的运行在386的架构上。但这明显还不够,Torvalds想得到更多人的建议,于是他将他的小核心发布在他的FTP目录中供大家下载,同时在其BBS上介绍了他的小核心。
起初Linus Torvalds仅是为了好玩,并没有想到他正在做一件与GNU计划一样伟大的事情。Linus Torvalds的内核非常好用,大家纷纷下载这个小核心。由于FTP的目录名为Linux,于是大家就将这个内核称为Linux。第一个被放到FTP中的内核版本为0.02。
此后Linus Torvalds对这个核心版本进行不断的改善,使它可以兼容更多的软件以及可以运行在各种不同的计算机硬件上。Linux是一款开源操作系统,所以任何一个人都能对它进行修改,于是越来越多的人开始参与Linus Torvalds的工作,一起参与对Linux的改进。这是一个虚拟的团队,成员彼此之间素未谋面,他们遍布在世界的各个角落。在大家共同的努力下,Linux成立了其官方网站:http://www.kernel.org,在1994年3月终于完成了Linux第一个正式版本——Linux 1.0。(截止本书出版,内核版本已经更新至3.5.2版本)
如今的Linux已经广泛的应用于计算机,路由器,手机,以及各种信息化的平台。
l web领域,Linux的apache网站服务器拥有着69%占有率。
l 全球十大巨型机中,有四台在使用Linux操作系统
l Linux获得了许多大型数据库软件的支持,Oracle数据库每个新版本都会在Linux平台上最先被发布。
l IBM大型机全面预装Linux操作系统,HP,SUN公司也推出了自己的桌面发型版本
l iptables作为Linux内核自带的防火墙,由于其免费,高效,功能齐全的特点,广泛的应用于许多企业,其源代码被嵌套在许多软件,硬件防火墙内部。
浙公网安备 33010602011771号