"Linux"这个名字我想大家现在都不会陌生了,这一年多来随着国内各种媒体的争相的宣传与报导,Linux已经成为了一个热门的话题。
我想就这几个方面谈谈Linux:Linux的历史和发展历程、设计宗旨和方法、主要特点、构成、Linux上的常用软件、Linux的应用,最后是Linux的发展趋势。
我们今天的第一件事情或许是要了解Linux这个单词的读法。我们很多人对Linux的读音都不尽相同,大致有这么几种: “来那克斯”与“林你克斯”“里扭克斯“等,这几种发音我们大家可能都听过。不仅仅是在我们大家之间,在世界范围内人们对Linux的读音差别也是很大。由于是这样的原因Linus本人自己录了一段他对Linux的发音放到互联网上,让大家下载。这段录音的内容是这样的: "Hello,this is Linus Torvalds and I pronounce Linux as Linux"。他念的读音是['li:nэks], 所以我们认为还是应当以Linus Torvalds本人的发音为准。
那么什么是Linux呢?
Linux有两种不同的含义。从严格的技术定义讲,Linux指的是开放源代码的Unix类操作系统的内核。然而,目前大多数人用它来表示以Linux内核为基础的整个操作系统。从这种意义讲,Linux指的是开放源代码的,包含内核、系统工具、完整的开发环境和应用的Unix类操作系统。
它是一个支持多用户, 多进程,实时性好的功能强大而稳定的操作系统。它可以运行在x86 PC,Sun Sparc,Digital Alpha,680x0,PowerPC, MIPS等平台上,可以说Linux是目前运行硬件平台最多的操作系统.,但是它主要还是面向Intel PC硬件平台。 所以也可以这样的说:Linux是Unix在Pc机上的完整实现。
Linux的历史
Linux的又是怎样发展起来的呢?
最早期的Linux是Linus Torvalds于1991年开始着手进行开发的,当时他是芬兰赫尔辛基大学计算机系的学生,23岁。最初,他是在Minix环境下用汇编语言写了一个在80386保护模式下处理多任务切换的程序,后来从Minix(Andy Tanenbaum教授所写的很小的Unix操作系统,主要用于操作系统教学)得到灵感,进一步产生了一个想法----写一个比Minix更好的Minix,于是开始写了一些硬件的设备驱动程序,一个小的文件系统,......, 这样几个月后0.0.1版本的Linux就出来了,其实Linus开始想把这个系统命名为"freax",只是他把所有的源代码放到了芬兰最大的ftp站点中的Linux(它的意思就是Linus 的Minix)目录下,后来Linux这个名字就被大家接受并保留下来了。我们知道软件要到理论上已经完备或者基本上没有毛病的时候才能给予1.0版本,可见这个时候推出的0.01版是相当简陋的了。它只具有操作系统内核的勉强的雏形,甚至不能运行,你必须在有Minix的机器上编译以后才能用。所以这个版本从来没有正式宣布发布过。这时候Linus已经完全着迷于这个系统的开发上了,他决定完全抛开Minix。于是在1991年10月5号他象世界公布了Linux 0.0.2版本,并在comp.os.minix新闻讨论组里发布消息Linux 0.0.2。在这个版本中已经可以运行不少的程序了。其中包括bash(the GNU Bourne Again Shell----一种用户与操作系统内核通讯的软件)和gcc(GNU C 编译器)和GNU-make,sed,compress。
从0.02版以后,越来越多的人参与到该系统的开发工作,所以Linux的发展越来越快,这样只过了一年多,到1994年Linux1.0就问世了。而Linus Toralds在今年的Linuxworld专业会议上宣布到今年年中Linux可以升级到2.4.x版本,我们知道Linux是通过互联网发展的现在真是日新月异,基本上每几个月就有一个新的版本,尤其是第三位数变化实在太快所以很难定位现在的版本。 我们刚才看到2.4.x,它这个是什么意思呢?
Linux的版本号要比其他的软件复杂一些,它分为两类:内核(kernel)版本与发行(distribution)。目前最新的内核版本号大约是2.2.x:发行版本最常Slackware3.5RedHat6.0,Turbolinux4.0等:实际上,我们看到市场上销售的发行版本就是Linux的一个大软件包,相当与内核版本,发行版本号随发行者的不同而不同,与系统内核的版本号是相对独立的。例如Slackware3.5,RedHat6.5,Debian1.3等。
我们主要讲讲Linux的内核版本
Linux从1.0版本后就具有两种不同的版本号,叫做版本树。 一个版本树是由一个是实验版本,一个是产品版本。 每一个版本是由三位数字组成的,第二位数字说明版本类型。如果第二位是偶数,则说明这种版本是产品化版本,如果是奇数,则是实验版本,比如说版本1.2.0是产品化的版本,而1.3.0则是实验版本。这两种版本是有关联的,是一前一后完成的。每一个版本树开始时间都是相同的,然后呢,这两个版本不断的扩充增长,稳定代码会添加到产品化版本中,而测试阶段的代码则添加到实验版本中。当linus确定实验版本具有足够的新功能并且性能稳定的时候,他就称为代码冻结(code freeze)。这时候稳定的实验版本成为新的x.y.0,开发又按新的版本进行。
比如说:1.0.0和1.1.0是相同的,1.0.1是对1.0版代码的第一次错误修复,而1.1.1是往1.1版中第一次添加新功能。最后到1.0.9中的错误在1.0中得到修复,1.1.9最终为1.1。最后随着新功能的不断增加到达足够有足够的新功能时,代码冻结,版本一同升级为 1.2.0和1.3.0,然后继续1.2.0修复错误,1.3.0添加功能。