1.5 linux和UNIX的关系
在讲
UNIX和linux两者关系之前,我们先了解一下Minix。Minix最初是由Andrew Tanenbaum教授在4.3BSD的基础上,但不通过修改4.3BSD的源代码而是白手起家几乎一个人完成了12000行C语言程序的编写工作。它的特点功能简单、易懂可以在8086上运行(后来也能在80386上运行),当然我们称它为UNIX操作系统。但这个Minix的功能也非常的有限,几乎没什么实用价值,但它能很好地作为教学使用。后来网上很多人给Tanenbaum教授寄来了改进,可是Tanenbaum教授没有接受。他想保持Mnix小而简单的特性。从它的名字中不难看出,Minix是一个迷你型的操作系统。
读到这里,大家应该清楚
UNIX和Linux的关系了:linux最初是由Minix发展而来,Minix是由4.3BSD UNIX发展而来,4.3BSD UNIX是由AT&T的所谓真正的UNIX发展而来。可以总结出:Minix是linux的父亲,而UNIX则是linux的祖父了。虽然UNIX和linux的源代码完全无关,可是linux中的许多特性和UNIX有很多相等之处。如:
1.Linux 采用了 SVR4 的进程间通信(IPC)机制:共享内存、消息队列、信号灯
2.Linux 支持 BSD Socket 网络编程接口
3.许多 Linux 发行版采用 SysV init 机制,支持运行级别
所以我们认为
linux是UNIX操作系统。
1.6 linux和windows的关系:
说到这两者的关系,还不如说说两者的区别,说到底,也就是谁更好一些的问题。从我对于
windows和linux的一段时间的使用和网友们的交流,我总结出了一些大家普遍认可的简洁易懂的一些区别。当然,大家完全可以不同意。因为这个问题本生就有很大分歧,两大阵营的人也总是各执一词。仁者见仁,智者见智。
1.6.1 在硬件要求方面
Linux可以不装载全部的驱动程序,这样可以最大化使用内存。毫不夸张的说,你可以在你的486机器上安装Linux并将其用做防火墙或Web服务器。而比之Windows2000 呢?windows2000的服务器版最低配置是P233CPU+128M RAM。而所谓的最低配置就是进入操作界面就死机的那种。没有人愿意开个窗口一分钟。
1.6.2 网络功能上
可以说
linux对于TCP/IP(大家应该知道,使用最广泛的网络传输协议)是最高级别的。Linux提供了对于当前的TCP/IP协议的完全支持,并且包括了对下一代Internet。协议Ipv6(IP地址长度机制,现在我们使用的是ipv4即32位的。而新的ipv6将达128位。)的支持。Linux内核还包括了IP防火墙代码、IP防伪、IP服务质量控制及许多安全特性。这些特性可以和像Cisco公司的高端路由设备相媲美。
1.6.3 使用方便性
由于
linux系统的不可操作性,严重影响了linux的普及率。而微软的windows产品也正是由于其友好的界面在计算机操作系统市场占据了%90以上的市场。虽然linux有两个很不错的图形操作界面:GMONE和KDE。可是我们发现,还是有太多的功能要在命令行方式实现。在这个问题上,linux有待改进
1.6.4 新技术支持速度上
由于开放源代码的特点,成千上万的人可以开发这个软件,快速地找到并修改其错误码。毛泽东说过人多力量大。这里就被很好的体现。而且许多硬件厂商也可以直接阅读其源代码从而迅速提供对他支持。最好的一个例子就是:最新的
Linux内核2.5.2版中最引人注意的改进就是Iinux内核开始支持最新的USB2.0技术。USB 2.0可以确保数据传输速度达到480Mb/s,这个速度是USBBl.1最高传输速度的40倍。但是在最新的操作系统windows xP中却不支持USB 2.0。
1.6.5设备驱动上(对硬件的支持上)
早期的
LINUX对硬件设备的支持不好,特别是对声卡的支持,烂是出了名的。我刚开始装我的声卡的时候花了我两天。当然我想这是个时间问题。如内核2.4各个主要LINUX软件提供商的产品已经可以识别象刻录机,扫描仪等新设备。不过和windows比就差一点。我在装winwdos XP的时候感觉不到驱动的存在,完全识别。
1.6.6安全上
1998年的CIH病毒 ,随之而来的基于OUTLOOK传播美莉莎,欢乐时光,红色代码等病毒更是令IT行业以及相关领域损失惨重。而LINUX方面,没有出现过真正意义上的病毒。而关于世界上第一个Linux病毒reman我也听说了。其实严格说来,这并不是真正意义上的病毒。实际上这是一个在UNIX/Linux世界早已存在的“缓冲区溢出”攻击程序。几乎所有UNIX/Linux版本中都或多或少地存在这样的问题。但和windows相比,就是小巫见大巫关公面前使大刀了。由于linux的稳定性一流,其中的数据不易遭到系统突然停止的破坏。资深的系统安全分析家肯定地认为:在未来的5年里,Linux将成为最安全稳定的操作系统。
1.6.7 价格上
linux当然具有不可比拟的优势。现在各大发行商的linux,如果从网上下载,几乎可以免费获得。windows xp简体中文家庭版的价格为1498元,专业版为1998元。而国内几家厂商的Linux桌面系统的价格均不超过100元,以Xteam公司最新版Linux4.0为例,标准版仅为28元,程序员版为58元。虽然Linux与微软最新的Windows XP之间在性能上有着差距,但linux的性价比是最高的。我在网上看到一家公司的研究报告说:一个24人的小型公司将大部份的计算机转换到Linux之后,拥有相当于升级到Windows2000功能性的话,可以为公司省下1万美元以上的资金。
1.6.8 在编程方面
linux具有对多种语言如:C、C++、Java、
Tcl/tk、
Perl等很多语言的编译器/解释器,以及集成开发环境、调试和其它开发工具。以前,我们一直对windows平台下如VB VC软件开发的高效和便捷津津乐道,也是windows对linux围剿的利器。可是现在一切都改变了,因为有了Borland公司的Kylix。提起borland公司,在业界几乎是无人不知无人不晓,
Borland公司一向以高性能、高效率的应用程序开发工具而着称,最著名的是DOS平台上的Turbo C、Borland C++,Windows平台上的Delphi、C++Build和Java开发工具。以上这些产品都称得上是经典之作,尤其是以面向对象的Pascal为基础的Delphi,更是经典中的经典,C++Bulid也是脍炙人口。Kylix就提供了linux版的Delphi和C++Bulid。这两个版本被认为是linux平台上第一个
RAD(Rapid Application Development,快速应用软件开发工具)开发工具。
说了这么多
linux的好处和这么少linux的劣势,而事实上我们很少能够看到有人正在使用它。特别是桌面应用。难道这么多优势是在唬人?当然不是。限制Linux发展最重要的一点就是他的易用性。由于易用性不强,普及率比较低其中的优势当然无处体现喽。
1.7 linux和UNIX名字的由来
1.7.1 linux名字由来
开始,
linux还没有专门的新闻组。linus只是在赫尔辛基技术大学的一台FTP服务器上发了一则消息,说可以下载linux的公开版本。Linux是linus的笔名,他担心如果用Linux来命名的话有人会说他狂妄而且不会认真对它。于是他用了一个很怪的名字Freak(free+freak+X)---free就是自由;freak愿意是怪胎的意思。表示这个系统还有很多不完善的地方。加上X是模仿UNIX和MINIX让人家一看就知道这是一个操作系统。后来,这台FTP的管理员不喜欢Freax这个名字,最后选择了Linux.。
1.7.2.UNIX名字由来
UNIX这个名字是由BELL实验室的一位开发人员想出来的。想想UNIX的前缀UNI在英文中就是小而巧的意思。这个意思正好和Multix中的前缀Multi在英文中多而繁相对应。
1.8什么是自由软件?
1.8.1全球流行的软件按其提供方式和是否赢利可以划分为四种模式
1.商业软件(Commercial software)
商业软件由开发者出售拷贝并提供技术服务,用户只有使用权,但不得进行非法拷贝、扩散和修改;当然不可能给你源代码。如果你想升级就只能等他的升级版本。
共享软件(
Shareware
):
2.共享软件
由开发者提供软件试用程序拷贝授权,用户在试用该程序拷贝一段时间之后,必须向开发者交纳使用费用,开发者则提供相应的升级和技术服务;也不提供源代码。
3.自由软件(Freeware或Freesoftware)
而自由软件则由开发者提供软件全部源代码,任何用户都有权使用、拷贝、扩散、修改。但自由软件不一定免费。它可以收费也可以不收费。
4.免费软件(freeware)
他的英文名称和自由软件一样。所以很多书上都把它归为自由软件。其实那是不确切的。免费软件是不要钱的。但免费软件不一定提供源代码。可以提供可以不提供。只有当自由软件免费的或者免费软件提供软代码的时候才是一样的。
1.8.2 Richard Stallman和GPL
看得出来,自由软件继承了其它软件的很多优点。这里我们不得不介绍一个人:
Richard Stallman。他在1971年加入MIT的人工智能实验室,并在工作期间取得哈弗的物理博士学位。他认为:知识应该与其它能从知识中受益的人一起共享,重要的资源应该被利用。他想把自己开发的软件与其它人共享,按照法律,他是MIT的员工,他写的程序是属于MIT的。为了不冒犯法律,毅然辞职。大约在一年以后,由于个别的公司控制了许多公共软件的开发项目。自1984年起MIT开始支持Richard Stallman的努力。这样就导致了自由软件基金会(Free Software Foundation,FSF)的建立。他认为:计算机系统因该开放,软件应该自由使用。在其它人协作下,他创作了通用软件许可证(General Public Licese,GPL)。这对推动自由软件的发展起了重要作用。GPL主要的规定:
1) GPL保证任何人有共享和修改自由软件的自由。还可以把修改后的软件向公众发布。但是发布者要无条件开放其源代码。这样就保证自由软件的低价。
2) GPL规定自由软件的衍生作品必须以GPL为重新发布的许可证。这样就保证了自由软件的持续性。
3) GPL规定允许公司销售自由软件。这就为公司介入自由软件事业敞开大门。
同时,
Richard Stallman打算组织开发一个完全基于自由软件的软件体系――GNU(GNU's Not Unix,GNU这个单词含义正好是产于南非州的一种大羚羊,所以我们经常可以看到有些linux书的封面是一只羚羊,就是这个道理。)。它的目标是:写一个完整的与UNIX兼容的软件系统。由于刚开始还没有很好的自由软件可供使用。所以他们先从系统的应用软件和工具着手。比如很有名的:emacs(编辑器) gcc(据说是世界上效率最高的编译器)等等。同时他们也开发GUN体系的操作系统内核:hurd。可是开发得很缓慢。到现在也没有全部完工。
自从
1991Linux发布以来,一直是完全自由扩散的。他要求所有的源码必须公开且任何人不准从中获利。这样它限制了Linux以磁盘或CD-ROM等媒介的发布形式。从而阻碍了Linux得发展。因为没有哪家公司愿意使用没有厂商保证和没有良好技术支持的操作系统。linus想到了GPL。事实也证明,加入GPL之后,许多软件公司就介入其中,开发了多种Linux的发行版本。如:Redhat 、Mandrake等等。他们增加了许多实用软件和易用的图形界面。linus本人也认为:“使Linux成为GPL的一员是我一生中作过最漂亮的一件事”。
那边
hurd还在十月怀胎。这边Linux却长大成人。很自然,Linux很快成为GNU的基本操作系统。大有取代hurd之意。甚至有人认为没有再继续开发hurd的必要。可是hurd是一种很前卫的系统,比如微内核结构。看来还是有一定价值的。就这样,Linux成为了GPL的一员,自由软件的一员。
1.8.3 两个最有名的开放源代码协议(简称开源协议)
看到这里,我们发现自由软件的最重要的标志是开放源代码。
GPL是一种开放源代码的许可。当然还有其它的。最有名的是LGPL和BSD许可。
1.LGPL(Lesser GPL)
较宽松公共许可证:也是由
FSF制定的。FSF发现GPL很难满足所有的程序。特别是库函数的调用。在编写程序的时候,免不了要用到其中的函数,总不能就这样成为自由软件了。所以就发布了GNU 函式库公共许可证 (GNU Library Public License)。规定虽然这个函式库是在GPL下面的,但如果程序中使用了函数库,程序作者还是可以把该软件定为非自由软件。
2.BSD
如果读者仔细看上面
UNIX的介绍的话,就知道BSD系统也是开放源代码的。当然也有一个相应的许可。称之为BSD许可。简单来说,BSD许可是最宽松的许可。你可以在BSD许可下做任何事。
1.9 Linux的版本问题
说到
Linux版本,有两种含义:
1.9.1 Linux的内核版本
在
Windows应用中很少提到内核的概念,而Linux中经常用到。简单来说,Linux内核就是这个系统的最小化。当系统引导的时候被调入内存。外部程序通过调用其中的函数完成操作。所以它是系统的核心。Linux内核由其创始人linus带领的小组维护。这个版本我们就认为是“官方版本”。内核版本号的格式是:
主版本号
.
次版本号
.
修正号
例如:
Linux 2.4.10
,主版本号是
2
,次版本号是
4
,第
10
次修正
.
例如:
Linux 2.5.13
,主版本号是
2
,次版本号是
5
,第
13
次修正
.
这个内核是本书完成时的最新版本。
内核版本号还有一个规则:次版本号为偶数的是稳定版本,为基数的是发展版本。所谓稳定版本是指内核的特性已经固定,代码运行稳定可靠,不再增加新的特性,要改进也只是修改代码中的错误。如上面的一个例子
.这个内核是在Redhat7.2使用的,是一个稳定版本.而发展版本是指相对于上一个稳定版本增加了新的特性,还处于发展之中,代码运行不大可靠。如上面第二个列子,可见他是一个不稳定板。
1.9.2 linux发行版本
光有内核还不能构成一个完整的操作系统,于是一些组织或公司将内核与一些应用程序包装起来就构成了一个完整的操作系统,这就是发行套件,不同的公司或组织的发行套件各不相同,版本号也不相同,尽管它们使用了同一版本号的内核。现在的发行公司很多,如:我们常听说的
RedHat,中软,红旗。我会在第二章详细介绍各个linux发行版之间的不同,告诉你什幺发行版适合你。
1.10 Linux的威力
初学者可能根本感觉不到
Linux的优点,有的只是Linux的难学。学东西首先要感觉到这东西的好,心灵要有震撼,让你从骨子里想学。这样才会提供你源源不断的动力。说到这里,我就想起了中国的教育,就拿大学时我们普遍学习的C语言。有几个人是学好的?大多数人觉得没什么用。C有用吗?研究Linux的没人会说它没用吧。那是为什么?因为没东西让他感受到C的有用。为什么感受不到?最大的问题:课程安排极其不合理。大多数学校把C语言放在第一课。结果是一个windows系统还没有熟练运用计算机也没摸过几次的大一学生学C语言学得昏天黑地。你想它能感受到嘛。靠老师在那里叫嚣C有如何重要是没用的。从人的本性意识来说,一个人是不可能被另外一个人说服的,尽管他口头上表示同意。一个不懂C语言的人完全可能成为MCSE。你说你三脚猫的C和微软系统工程师哪个更有价值?C语言的学习完全可以放到大三大四学习。在这之前完全可以开一些简单实用的课程。通过这些课程,你才会发现许多现象你不能解释,这样激起了求知欲,同时产生兴趣。看过一篇报道,关于诺贝尔奖得主关于成功因数的讨论,几乎都把兴趣摆在第一。学校现在的做法正好相反,不仅不培养兴趣,弄个让你们看不懂的不知道干什幺的先杀杀你们的锐气,厉害厉害!人认识事物总是从简单到复杂的,地球人都知道。你说先有牛顿定律还是先有原子核式结构?中国现在的大学教育就相当于介绍扇刚门先要帮你分析刚的原子结构,等那个听的人完全没有了兴趣再介绍刚门的外形如何。真他/妈的□□□□了。
以前总是说大学计算机课程教本如何陈旧。现在这个问题有所改善。看来课本的陈旧并不可怕可怕的是人思想的陈旧。
我们来震撼一下:
1.10.1 Linux�D�D“世界之王”的靠山
电影《泰坦尼克号》的导演卡梅隆在奥斯卡奖的颁奖大会上接过最佳导演奖时相当狂妄地对着全场的观众重复了男主角的一句台词:
“我是世界之王”。不过这也不奇怪,耗资两亿多美元,一举夺得11项奥斯卡大奖,赢得全球最高票房,它的导演是有资格狂妄一番的。然而真正有资格睥睨世界的主角应该是银幕后面最先进的计算机技术!毫不夸张地说,这部影片如果离开了电脑,不要说获奥斯卡奖,就是真正要开机拍摄都是不可能的。但是在笔者看来,在这一切的后面,还有一个默默无闻的大主角,这就是上百台图形工作站所使用的一套操作系统。这套系统就是Linux。在制作电影《泰坦尼克号》所用的160台Alpha图形工作站中,有105台运行的是Linux操作系统。
1.10.2 linux�D�D不可思议的系统
1996
年底,美国林肯州内布拉斯加普雷斯大学系统部准备把他们部门中一套已经陈旧过时的
NetWare server
更换掉,另外安装一套新的操作系统
。系统部经理
Quinn Coldiron
当时的首选目标不用说当然是
Windows NT 4.0
,然而他没有料到,在安装了
NT
之后,竟会遇到那幺多难以解决的麻烦,多次打电话寻求技术支持又让学校破费了很多钱。万般无奈之际,他决定试用一下
Linux
,结果却令他大感意外。从
1997
年
1
月至
7
月,他们部门的
Linux
服务器仅意外下档过三次,两次是因为楼里的电源线路发生故障,另外一次则是因为操作人员的愚笨所致。更令他觉得不可思议的是,在原先那套旧的
NetWare
系统上,如果同时有五个用户登录做专业出版,系统就会崩溃;而现在,还是同样的硬件(
256M
内存、
2
块
150MHz CPU
),但是
Linux
却可以轻松自如地支持
40
个用户同时登录做专业出版。于是他在鉴定白皮书中按耐不住兴奋地说:“
Linux
服务器已经证明和我所用过的其它服务器操作系统同样地可靠,而且要比其中的大多数操作系统更为可靠。”
1.10.3 linux--细胞一样的繁殖能力
linux的发展和成长却迅捷无比,成为操作系统领域中一匹名符其实的黑马。迄今为止,对Linux在全球范围内的装机台数的估计各有说法,最低的估计为300万,最高的估计数字为900万。而1997年,MacOS的装机台数为380万,IBM OS/2为120万,Windows NT则为700多万。虽说Linux还无法与拥有一亿多用户的Windows相比,但是它确立自身地位和影响力所花费的时间却只有Windows的一半。作为一种Unix操作系统,Linux的强大性能显然使得其它品牌的Unix黯然失色。有分析家认为,“Linux的广泛普及使其成为Unix市场上最具活力的一只新军。”甚至连Unix之父Dennis Ritchie也认为Linux“确实不错”。有一些分析家甚至认为,在未来数年间,Linux将成为NT真正强有对手,也是唯一可以冲破微软垄断性文化圈的出路所在。
我已经说过,一个人是不可能说服另外一个人。我也不例外。我不会试图说说
Linux成功的例子就能让你如何的喜欢Linux。最好的办法是仔细研究之。亲生体会的东西才是最有说服力的。喜欢才是骨子里的。GOOD LOCK!