教学 解释什么是 Linux ?什么是作业系统?
[size=4]教学 解释什么是 Linux ?什么是作业系统?[/size]
要了解 Linux 之前,就不能不知道什么是作业系统 ( Operation System, OS ),所以,首先我们来简单的说一说什么是作业系统吧!先来想一想,当我们使用电脑时,荧幕上面显示的咚咚是由哪里来的?嗯!是由显示卡与荧幕显像的;那么你现在可以藉由网路看到这篇文章,则是藉由 Internet 、网路卡、网路线以及所有相关的电子器材与网路器材所完成的一项任务!如果你要看 VCD 呢?那么就需要光碟机、光碟、音效卡的发声等等的支援。这么说来的话,所以在‘工作’的东西都是‘硬体’的工作呀!对了!就是这些电脑硬体在工作的。那么硬体怎么工作呢?那就是藉由‘作业系统’来达成的啰!这个作业系统就是在沟通你这个使用者跟硬体之间的讯息传递啦!也就是说,没有作业系统,那么你的电脑硬体就只是一堆废铁,什么工作都不能做的!
那么作业系统里面含有什么东西呢?简单的来说,作业系统主要分为两个东西,一个是‘核心’、一个是‘一堆核心提供的工具’我们以使用者常使用的 Windows 电脑来做一个简单的说明好了。大家应该都使用过 Windows 电脑里面的档案总管吧?那么当你开启档案总管的时候,他是否会显示你硬碟当中的资料?这个显示硬碟里面的资料,就是‘核心’帮你做的,但是,你要核心去显示硬碟哪一个目录下的资料,则是由‘档案总管’这个‘工具’帮你达成的!这样可以理解吗?再来,如果您曾经使用过 Windows 2000 或 Windows XP 的话,那就更好了!你就应该听过有所谓的‘FAT32 与 NTFS 档案格式’吧?在 Windows 98 这个早期的 Windows 版本中,他并无法读取或者是找到 Windows XP 的 NTFS 档案格式的硬碟,为什么呢?因为他的‘核心’本来就不认识 NTFS 啊!所以,即使你有档案总管,但是由于核心根本不认识 NTFS ,所以,档案总管也是没有能力帮你达到你想要做的事情!这样应该就更清楚了吧?没错!你的整个硬体是由核心来管理的,而如果核心不认识你的硬体,那么你将无法使用该硬体设备,例如上面提到的 NTFS 档案格式的硬碟!核心就是‘ Kernel ’,他是一个作业系统的最底层的东西,由他来掌管整个硬体资源的工作状态,而 Linux 有 Linux 自己的核心, Windows 也有他自己的核心。所以说,当有新的硬体加入到你的系统中的时候,那么若你的‘ Kernel ’并没有支援他的时候,呵呵,这个新的硬体就肯定无法工作的,因为控制他的 Kernel 并不认识他呀!这样了解了吗?!先有个概略性的了解,后面我们提到‘核心编译’的时候会在更详细的谈到他!
一般来说,Kernel 管理的事项有:
# System call interface :一些服务与 kernel 沟通之后,将硬体的资源进一步的利用;
# Process control :系统程序控制中心,所以核心编的越小越好;
# Memory management :控制整个系统的记忆体管理;
# File system management :档案系统的管理,例如 I/O 等等的工作啦!还有不同档案格式的支援啦等等,如果你的核心不认识某个档案系统,那么您将无法使用该档案格式的档案啰!例如上面提到的 Windows 98 不认识 NTFS 档案格式的硬碟;
# Device drivers :就如同上面提到的,硬体的管理是 Kernel 的主要工作之一,当然啰,装置的驱动程式就是核心需要做的事情啦!好在目前都有所谓的‘可载入模组’功能,可以将驱动程式编辑成模组,就不需要重新的编译核心啦!这个也会在后续的核心编译当中提到的!
所以啦!所有硬体的资源都是他来管理的!至于我们要达成一些工作时,除了藉由核心本身提供的功能 ( 例如上面提到的档案总管 ) 之外,还可以藉由其他的应用软体来达成喔!举个例子来说,你要看 VCD 影片是吧!那么除了 Windows 提供的媒体播放程式之外,你也可以自行安装 VCD 播放程式来播放 VCD 啰!这个播放程式就是应用软体啰,而这个应用软体可以帮你去控制核心来工作 ( 就是放映影片啰 ) ,因此,我们可以这样说,核心是控制整个硬体支援的咚咚,也是一个作业系统的最底层,然而要让整个作业系统更完备的话,那还需要含有相当丰富的核心提供的工具,以及核心相关的应用软体来支援!
OK!提到这里那么您知道 Linux 是什么了吗?呵呵!对啦!其实 Linux 就是一个作业系统,这个作业系统里头含有最主要的 kernel 以及 kernel 提供的工具啦!他提供了一个完整的作业系统当中最底层的硬体控制与资源管理的完整架构,这个架构是沿袭 Unix 良好的传统来的,所以相当的稳定而功能强大!此外,由于这个优良的架构可以在目前的个人电脑 ( X86 系统 ) 上面跑,所以很多的软体开发者将他们的工作心血移转到这个架构上面,那就是很多的应用软体啦!虽然 Linux 仅是其核心与核心提供的工具,不过,由于核心、核心工具与这些软体开发者提供的软体的整合,使得 Linux 成为一个更完整的、功能强大的作业系统啰!我们可以将 Linux 的系统与使用者的相关性看成底下的图示:
图一、使用者、使用者介面与核心工具、核心、与硬体之相关性
约略了解 Linux 是何物之后,接下来,我们要谈一谈,‘为什么说 Linux 是很稳定的作业系统呢?他是如何来的?’
从 Unix 到 Linux 这一段历史
为什么大家常常会说, Linux 是很稳定的一套作业系统呢?这是因为, Linux 他有个老前辈,那就是 Unix 家族啰!有这个前辈的提携,让 Linux 这个小老弟很快的就成为一套稳定而优良的作业系统啦!所以,底下我们来谈一谈 Unix 到 Linux 的这一段历史吧!
早在 Linux 出现之前的二十年 ( 大约在 1970 年代 ), 就有一个相当稳定而成熟的作业系统存在了!那就是 Linux 的老大哥‘ Unix ’是也!怎么这么说呢?!他们这两个家伙有什么关系呀?这里就给他说一说啰!众所皆知的, Linux 的核心是由 Linus Torvalds 在 1991 年的时候给他开发出来的,并且丢到网路上提供大家下载,后来大家觉得这个小东西 ( Linux Kernel ) 相当的小而精巧,所以慢慢的就有相当多的朋友投入这个小东西的研究领域里面去了!但是为什么这的小东西这么棒呢?!然而又为什么大家都可以免费的下载这个东西呢?!嗯!等鸟哥慢慢的唬xx....喔不!听我慢慢的道来!
* 一个没有完成的梦想: Bell, MIT 与 GE 的‘ Multics ’系统
早期的电脑并不像现在的个人电脑一般,他可不是一般人碰的到的玩意儿,除非是军事或者是高科技用途才有可能接触到这类的 Computer !而如前面所言,有电脑硬体还需要作业系统的配合才能够发挥电脑的效能,不过,在那个年代,由于电脑算是‘奢侈品’,喔~应该说是‘贵重物品’,所以,可能一间学校就只有一部大型主机当然,那个年代所谓的大型主机仍然无法提供适度的运算能力的。不过,既然只有一部大型主机,然而有许许多多的教师、学生要想要来使用,怎么办呢?为了解决这个问题,在 1960 年代初期,麻省理工学院 ( MIT ) 发展了所谓的‘相容分时系统 ( Compatible Time-Sharing System, CTSS )’,就字面上的意义来看,他主要让大型主机可以提供多个终端机连线进入主机使用主机的资源, ( 附带一提,当时的终端机 ( Terminal ) 本身并没有软体或者可供使用的资源,这些终端机要能使用,一定必需要连线登入主机之后,才能够使用主机的资源来工作!) 当时可以让约 30 位使用者连线使用主机。而为了让这个分时系统更加的强大,所以,在 1965 年前后由贝尔研究室 ( Bell )、 麻省理工学院 ( MIT ) 及奇异电器公司 ( GE ) 开始来共同开发一个名为 Multics 的大型计划,目标是想让大型主机可以连线 300 位以上的使用者。不过,在奋斗了四年之后,该计划仍然宣告不治...喔!是失败啦!(注: Multics 有复杂、多数的意思。)
* 一个小型档案系统的产生:1969 年 Ken Thompson 的小型 file server system
在复杂的 Multics 系统的计划失败后,贝尔研究室当然就退出该计划。就在这个计划解散之后,曾经参与 Muitics 的贝尔研究室的成员 Ken Thompson 由于自己工作上的需求,需要一套档案存取的小型作业系统,便在 1969 年的时候以 DEC 公司 ( Digital Equipment Corporation ) 的电脑 PDP-7 为硬体基准,设计了一个适合自己工作环境的小型档案系统,其中也含有他自行开发的一些小工具。那个系统就是最早期的 Unix 的源头!当初 Ken 设计这个档案系统时,主要是为了自己的存取方便所设计的简单 OS ,因此将原有的 Multics 系统大幅度的简化,不过,在当时还并没有 Unix 这个名词的出现!
* Unix 的正式诞生:1973 年 Ritchie 等人以 C 语言写出第一个正式 Unix 核心
由于 Thompson 写的那个作业系统实在太好用了,所以在 Bell 研究室内部广为流传,并且数度经过改版。到了 1973 年, Bell 研究室的 Dennis Ritchie 等人为了让这个系统的执行效能更佳化,所以使用编译效能更好的 C 语言将原有的 1969 年的那个系统之核心大幅度的改写过,并且确定该作业系统名称为 Unix,呵呵!那就是最早的 Unix 作业系统啰!不过,由于这个作业系统是由这一群工程师所开发完成的,而且使用者也大多是这方面的工程师,因此造成了后来 Unix 系统介面较难被一般使用者接受的情况 @_@ (注: 相对于 Multics ,Unix 具有单一的意思!)
* 重要的 Unix 分支: 1977 年 BSD 的诞生
在 Unix 早期的发展中,有一件相当重要的事情,那就是 BSD 的诞生!由于 C 语言是一种高阶语言,他可以被应用在不同的硬体架构上面,而 Unix 本身就是 C 语言写成的!在 Unix 发表之后, 柏克莱大学 ( Berkeley ) 的教授对于这个作业系统相当的有兴趣,在经过取得 Unix 的原始码,并且几经修改之后,终于在 1977 年发表了第一代的 Berkeley Software Distribution ( BSD ) 。这个 BSD 是 Unix 的一个分支,他的发展对于 Unix 有相当大的影响,例如后来的 Sun 公司就是使用 BSD 发展的核心进行自己商业的 Unix 版本的发展的!
* 百家齐鸣的 Unix 版本:
由于 C 语言是一个相当高阶的程式语言,他与硬体没有很直接的相关性,例如你的 Windows 也可以执行 C 程式语言!而由于 Unix 是由 C 语言写成的,因此,也就是说,你只要经过稍微的原始码修改程序,就可以在不同的硬体架构上面执行这个作业系统!后来,由于 Unix 的方便性,因此很多的商业公司及学术机构就加入这个作业系统的研发啰。不过,也由于 Unix 的便利性与改写容易,因此就造成了很多的不同版本的 Unix 啰,例如 ATT 的 System V 、 加州大学的 BSD 版、 IBM 的 AIX 等等。
由于‘作业系统的核心 ( Kernel ) 必须要跟硬体配合,以提供及控制硬体的资源进行良好的工作!’,而在早期每一家生产电脑硬体的公司还没有所谓的‘协定’的概念,所以每一个电脑公司出产的硬体自然就不相同啰!因此他们必须要为自己的电脑硬体开发合适的 Unix 系统,所以,他们自行开发的 Unix 当然只能配合本身的硬体配备啰!例如在学术机构相当有名的 Sun 、 Cray 与 HP 就是这一种情况,他们开发出来的 Unix 并没有办法在其他的硬体架构下工作的! ( 我们都称呼这种系统与配备为‘超级电脑’ ) !由于没有厂商针对个人电脑设计 Unix 系统,因此,在早期并没有支援个人电脑的 Unix 作业系统的出现 ( 当然,这是由于早期的个人电脑并没有现在这样风行就是了! ) ,每一家公司自己出的 Unix 虽然在架构上面大同小异,但是却真的仅能支援自身的硬体,所以啰,早先的 Unix 只能与伺服器 ( Server ) 或者是大型工作站 ( Workstation ) 划上等号!
此外,由于版本太多了,而大家都是同样来自于 Unix 这个老祖宗,当然也都称自己是 Unix ,好了,如此一来,许多商业公司自然就会有类似的软体发表,喝!那么自然就有些许的商业纠纷啰!真是伤脑筋~
* 1984 年的 GNU 与 Free Software Foundation:
Unix 在商业上面的问题让许多对于 Unix 喜好者感到相当的忧心,其中一个就是有名的 Richard M. Stallman 先生。他认为, Unix 是一个相当好的作业系统,在这个系统上面,如果大家能够将自己所学的贡献出来,那么这个系统将会更加的优异!Stallman 先生认为最大的快乐就是让自己发展的良好的软体让大家来使用了!而且,由于每个人的工作环境 ( 指软硬体平台 ) 可能都不太相同,所以,他也强调应该要有 Open Source 的概念,让大家都能够分享这一份的心得!他认为,有了 Open Source 之后,你的程式将有很多的人可以帮忙检验,将使得 Unix 社群更佳的茁壮。为了自己的理想, Stallman 在 1984 年实际创立了 GNU 与 自由软体基金会 ( Free Software Foundation, FSF ),并创作了许多‘自由软体’供大众来使用,此外,对于其作品以自由 ( free ) 的 GNU General Public License ( GPL ) 的授权模式提供大众使用。这个 FSF 的核心观念是‘版权制度是促进社会进步的手段,版权本身不是自然权力。’对于 FSF 有兴趣或者对于 GNU 想要更深入的了解时,请参考朝阳大学的洪朝贵教授的网站,里面有更为深入的解说!而且,Stallman 的 GNU General Public License 一直强调 Free 这个字眼!他是这样说的:‘"Free software" 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 先生更直接对自由度下了这样的说明:
o 你可以根据任何你想要的提议 ( purpose ) 来跑这个 Free 的程式;
o 你可以在理解了这支 Free 的程式的运作之后,将他修改成你所想要的样式与功能;
o 你可以将你自己修改过的 Free 的程式再次的发表,以帮助你的朋友们;
o 你可以将这支 Free 的程式进行改良,并将改良过的程式公开发表,以造福社群!
简单的来说, GPL 授权具有几个特点:
o 任何软体挂上 GPL 授权之后,即为自由的软体,任何人均可取得,同时,亦可取得其原始码 ( Source Code );
o 取得 GPL 授权之软体后,任何人均可进行修改原始码,以符合自己的喜好;
o 除此之外,经过修改的 Source Code 应回报给网路社会,提供大家来参考!
但请特别留意,并非挂上 GPL 之后的软体就不可贩卖,这个是不同的两回事呦!举个例子来说,在 Red Hat 的官方网站上面提供 Red Hat 释出的 Linux 安装光碟提供大众下载,但是 Red Hat 本身依然有在卖 Linux 的套件,而且还卖的‘很不便宜!’为何可以如此呢?呵呵!因为 Red Hat 他们卖的资料当中,含有相当大量经过整了的文件资料,这些资料虽然在网路上面可以下载,然而花了这么多的时间来整理这些资料,当然应该要给予相当程度的报酬啰!您说是吧!所以,请留意喔!并非 GPL 不可用来营利!
这个 GNU 对于后来的 Linux 有相当深远的影响,由于 Stallman 先生发展了 GNU 这个计划中,主力在推出各种方便而优异的工具软体,例如广为大家所知的 Emacs 文书编辑器、GCC, BASH..然而没有作业平台怎么使用这些软体呢?然而,由于他倡导的自由软体,让后来的心血能很快的接触原始码来发展软体,这就是后来的 Linux 的故事....这是后来的故事,等一下来说~
* 1988 年的图形介面 X-Free86 project:
有鉴于图形使用者介面 ( Graphical User Interface, GUI ) 的需求日益加重,在 1984 年由 MIT 与其他协力厂商首次发表了 X Window System ,并且更在 1988 年成立了非营利性质的 XFree86 这个组织。所谓的 XFree86 其实是 X window system 与 Free 及 x86 系统架构的整合名称呢!而这个 XFree86 的 GUI 介面更在 Linux 的核心 1.0 版于 1994 年释出时,整合于 Linux 作业系统当中!
* 1991 年 芬兰大学生 Linus Torvalds 的一则简讯:
在后来的几年内,由于电脑硬体工业的强力运作,以 intel 主导的 x86 系统架构的个人电脑大行其道,所以个人电脑算是相当流行的一个机器了!但在此时,人们使用的大多还是旧旧而且需要吃很多系统资源的 DOS 系列或其他的作业系统。 此时,有个芬兰的郝尔辛基大学 (Helsinki )Linus Torvalds 学生做了件不寻常的事情! Linus 手边有个 Minix 系统 ( 这也是 Unix 的分支 ) ,他对这个作业系统相当的有兴趣!此外,由于当时他正好买了一部 386 的电脑,所以他就想说,咦!这个 Unix 这么棒!这么稳定,那我可不可以将他移植到个人电脑 ( X86 架构 ) 来使用呢?!好在由于 Stallman 提倡的 Open Source 风气,他得以接触到一些 source code ,而就经由这样的一个想法,呵呵!他就很有心的读取 Unix 的核心,并且去除较为繁复的核心程序,将他改写成可以适用于一般个人电脑的 x86 系统上面,到了 1991 年,他终于将 0.02 版的 hobby 放到网路上面供大家下载,并且由于 hobby 受到大家的肯定,相当多的朋友一起投入这个工作中!终于到了 1994 年将第一个完整的核心 Version 1.0 释出!并且造成目前的大流行.....由于 Linux kernel 的发展是由‘虚拟团队’所达成的,大家都是透过网路取得 Linux 的核心原始码,经由自己精心改造后再回传给 Linux 社群,进而一步一步的发展完成完整的 Linux 系统,至于 Torvalds 先生是这个集团中的发起者。由于这个群策群力的缘故, Torvalds 先生将 Linux 定为同样造福大家的 GNU 授权模式!
* 企鹅的来源:
1994年发表 Linux 正式核心 1.0 的时候,大家要 Linus Torvalds 想一只吉祥物,怪怪的 Torvalds 突然想到小时候去动物园被一只企鹅追着满地打滚~还被咬了一口!既然想不到其他的吉祥物了,干脆就以这支企鹅来当吉祥物算了!所以,呵呵!目前我们常常看到这一只企鹅就是这么来的咯!
什么是 distribution
好了,经由上面的说明,我们知道 Linux 是个‘作业系统’,而且他是 GNU 的授权模式,并且有个老大哥是 Unix 。不过,毕竟由 Torvalds 先生负责维护的 Linux 提供的仅是‘核心’与‘核心工具’的集合,对于需要更完整功能的作业系统来说,毕竟还不够完备,例如如果你要桌面程式,还得要加入 X-Window 系统对吧!?如果你要架设 WWW 还得加入伺服器软体对吧?所以,虽然 Linux 的核心已经提供了相当多的支援与工具程式,但毕竟还不足以构成一个很完整的作业系统。
好在,由于 Linux 的稳定性良好,并且可以在便宜的 x86 架构下的电脑平台运作,所以吸引了很多的套件商与自由软体的开发团队在这个 Linux 的核心上面开发相关的软体,例如有名的 sendmail, wu-ftp, apache 等等。此外,亦有一些商业公司发现这个商机,因此,这些商业公司或者是非营利性的工作团队,便将 Linux 核心、核心工具与相关的软体集合起来,并加入自己公司或团队的创意的系统管理模组与工具,而释出一套可以完整安装的作业系统,这个完整的 Linux 作业系统,我们就称呼他为 distribution,或者是中文所谓的‘安装套件’啰!当然啰,由于是基于 GNU 的架构下,因此各家公司所发行的光碟套件是可以在网路上面自由下载的。不过,如果想要有较佳的服务,那么购买该公司发行的光碟也是不错的!
不过,由于发展的 Linux 公司实在太多了,例如有名的 Red Hat, OpenLinux, Mandrake, Debian, SuSE 等等,所以很多人都很担心,如此一来每个 distribution 是否都不相同呢?这就不需要担心了,由于各个 distribution 都是架构在 Linux Kernel 下来发展属于自己公司风格的 distribution,因此大家都遵守 Linux Standard Base ( LSB ) 的规范,也就是说,各个 distribution 其实都是差不多的!反正用到的都是 Linux Kernel 啊!只是各个 distribution 里面所使用的各套件可能并不完全相同而已。所以啰,大家可以按照自己的喜好来选择 Linux 的 distribution 光碟啰!底下列出几个主要的 Linux 发行者网址:
* Red Hat: [url]http://www.redhat.com[/url]
* Mandrake: [url]http://www.linux-mandrake.com/en/[/url]
* Slackware: [url]http://www.slackware.com/[/url]
* SuSE: [url]http://www.suse.com/index_us.html[/url]
* OpenLinux: [url]http://www.caldera.com/[/url]
* Debian: [url]http://www.debian.org/[/url]
* Linpus: [url]http://www.linpus.com.tw/[/url]
* UniteLinux:[url]http://www.sco.com/unitedlinux/[/url]
当然发行套件者不仅于此,您可以查阅其他的 Linux 新闻来发现喔!而其中中文化较为有名的就属 CLE 这个套件发行者了!另外,台湾还有另一家 Linux 开发商,称为 Linpus (百资),有兴趣的话也可以到底下的网页上看看!
* CLE:[url]http://cle.linux.org.tw/[/url]
* 百资:[url]http://www.linpus.com.tw/[/url]
好了,那么哪一个安装套件比较好呢?!就如同 VBird 前面提到的,每一个发行者所使用的 Linux 核心其实是一样的,都是由 [url]www.kernel.org[/url] 开发出来的核心呀!所以其架构,甚至包括其档案放置的目录,都是大同小异的,基本上除了某些内容套件不太一样之外 ( 例如有人使用 wu-ftpd 有人使用 proftpd 等等 ) ,其他的档案架构与指令系统其实几乎都是相同的,因此我们不去探讨哪一个套件比较棒!而是要来介绍如何学习与使用一个套件!至于下载的地点,网友提供了一个相当棒的多种 Linux distributions 的下载网站:
[url]www.linuxiso.org[/url]
同时底下的网站还有各个著名的 Linux distribution 的比较!包括使用的热门情况、市场占有率、以及套件的相依程度等等:
[url]http://www.distrowatch.com/[/url]
Linux 的功能与优缺点
* Linux 的起源:
前面提到了,Linus Torvalds 先生一直以来就喜欢那个小小的作业系统核心,而核心是管理一个系统的最底层的东西,所有的硬体资源都是由 kernel 来管控的!但是,就如同前面说的,早期的 Unix 并不支援 x86 的个人电脑架构,一直到了 1991 年在 BBS 里面 Linus 先生贴了个小布告之后,才有了重大的转变:
Hello everybody out there using minix-
Im doing a (free) operation system (just a hobby,
wont be big and professional like gnu) for 386(486) AT clones.
这封 BBS 的邮件即是由当时还是芬兰的大学生 Linus Torvalds 所发表的,他说他修改了一个简单的作业系统核心,核心名称为 hobby,这个 hobby 的核心 ( Kernel ) 即为第一个 Linux 的核心系统!此外,由于他是基于 GNU 的协议而开发这个作业系统,所以他是 Free 的,任何人都可以下载使用!( 注:hobby 是个人兴趣,just a hobby, wont be big and professional like gnu,其意思是:仅为个人兴趣,不会玩得跟 gnu 那么大啦~~~)
Linus 所开发的这个 hobby 是基于 Unix 的系统所发展出来的,他将 Unix 里面的很多资料又加以简化,并且使之可以适用于 intel 主导的 x86 的系统下(当初的个人电脑系统为 386 与 486 架构),因此当初他所发表的这个最新的系统核心就被称为 linuss unix ,简称为 Linux !当然,由于这个核心很像是当时的 Unix 系统,因此也称为 Unix-like 系统啰!( 注:其实 Unix-Like 可以说是目前伺服器类型的作业系统的统称啦!因为,不论是 FreeBSD, BSD, Sun Unix, SCO Unix, HP Unix, Red Hat Linux, Mandrake Linux 等等,都是由同一个祖先‘Unix’来的,因此,这些咚咚都被统称为 Unix-Like 的作业系统啰! )
那么这个系统有什么特异功能呢?简单的说:
o 免费:由于他是基于 GPL ( General Public License ) 的架构之下,因此他是 Free 的,也就是任何人都可以免费的使用或者是修改其中的原始码的意思!这就是所谓的‘开放性架构’,这对科学界来说是相当重要的!因为很多的工程师由于特殊的需求,常常需要修改系统的原始码,使该系统可以符合自己的需求!而这个开放性的架构将可以满足各不同需求的工程师!因此当然就有可能越来越流行啰!
o 配备需求低廉:而他可以支援个人电脑的 X86 架构,系统资源不必像早先的 Unix 系统那般,仅适合于单一公司 ( 例如 Sun ) 设备!单就这一点来看,就可以造成很大的流行啰!
o 功能强大而稳定:而且由于功能并不会输给一些大型的 Unix 工作站,因此,近年来越来越多的公司或者是团体、个人投入这一个作业系统的开发与整合工作!
o 独立作业:另外,由于很多的软体套件逐渐被这套作业系统拿来使用,而很多套件软体也都在 Linux 这个作业系统上面进行发展与测试,因此, Linux 近来已经可以独力完成几乎所有的工作站或伺服器的服务了,例如 Web, Mail, Proxy, FTP.....。
所以,目前他已经是相当成熟的一套作业系统啰!而且不耗资源又免费,呵呵,可以说造成微软相当大的压力呀!此外,由于他的系统硬体要求很低,加上目前很多的人由于‘Intel 的阴谋’(呵呵!开玩笑的,因为 Tom 的硬体评论网站常常这样说 Intel 的不是!呵!很好笑!)而造成手边有相当多的淘汰掉的硬体配备, Linux 在这些被淘汰的硬体中就可以执行的相当的顺畅与稳定!因此也造成相当多朋友的关注啰!
这也是造成 Linux 成为最近几年来最受瞩目的作业系统之一,如前所述,他会受到瞩目的原因主要是因为他是‘free’的,就是免费的作业系统啦!然后他是开放性的系统,也就是你可以随时的取得程式的原始码,这对于程式开发工程师是很重要的!而且,虽然他是免费的,不过功能却很强大!另外, Linux 对于硬体的需求是很低的,这一点更造成他流行的主因,因为硬体的汰换率太快了,所以很多人手边都有一些很少在用的零件,这些零件组一组就可以用来跑 Linux 了,反正做一个工作站又不用使用到荧幕 ( 只要主机就可以啰 ) ,因此 Linux 就越来越流行啰!(插个嘴,也就是因为 Linux 具有 1.硬体需求低、 2.架构开放、 3.系统稳定性及保密性工能够强、 4.完全免费,所以造成一些所谓‘反微软联盟’的程式设计高手不断的开发新软体!以与 Microsoft 进行抗衡!)
* Linux 的优点:
那干嘛要使用 Linux 做为我们的主机系统呢?这是因为 Linux 有底下这些优点:
o 稳定的系统:Linux 本来就是建立在 Unix 上面发展出来的作业系统,因此,Linux 具有与 Unix 系统相似的的程式介面跟操作方式,当然也继承了 Unix 稳定并且有效率的特点。常听到安装 Linux 的主机连续运做一年以上而不曾当机、不必关机是稀松平常的事;
o 免费或少许费用:由于 Linux 是基于 GPL 的基础下的产物,因此任何人皆可以自由取得 Linux ,至于一些‘安装套件’的发行者,他们发行的安装光碟也仅需要些许费用即可获得!不同于 Unix 需要负担庞大的版权费用,当然也不同于微软需要一而再、再而三的更新你的系统,并且缴纳大量费用啰!
o 安全性、漏洞的修补:如果你常玩网路的话,那么你最常听到的应该是‘没有绝对安全的主机’!没错!不过 Linux 由于支援者日众,有相当多的热心团体、个人参与其中的开发,因此可以随时获得最新的安全资讯,并给予随时的更新,亦即是具有相对的较安全!
o 多工、多使用者:与 Windows 系统不同的, Linux 主机上可以同时允许多人上线来工作,并且资源的分配较为公平,比起 Windows 的单人假多工系统要稳定的多啰! 这个多人多工可是 Unix-Like 上面相当好的一个功能,怎么说呢?你可以在一部 Linux 主机上面规划出不同等级的使用者,而且每个使用者登入系统时的工作环境都可以不相同,此外,还可以允许不同的使用者在同一个时间登入主机,以同时使用主机的资源。
o 使用者与群组的规划:在 Linux 的机器中,档案的属性可以分为‘可读、可写、可执行’等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类,分别是‘档案拥有者、档案所属群组、其他非拥有者与群组者’。这对于专案计划或者其他计划开发者具有相当良好的系统保密性。
o 相对比较不耗资源的系统:Linux 只要一部 p-100 以上等级的电脑就可以安装并且使用愉快啰!还不需要到 P-III 等级的电脑呢!不过,如果你要架设的是属于大型的主机(服务上百人以上的主机系统),那么就需要比较好一点的机器了。不过,目前市面上任何一款个人电脑均可以达到这一个要求啰!
* Linux 的缺点:
反正 Linux 好处说不完啦!不过虽然 Linux 具有这样多的好处,但是他先天上有一个足以致命的地方,使他的普及率受到很大的限制,就是 Linux 需要使用 ‘指令列’ 的终端机模式进行系统的管理!虽然近年来有很多的图形介面开发使用在 Linux 上面,但毕竟要熟悉 Linux 还是以指令列来使用是比较好的,因此要接受 Linux的玩家必须比较要能熟悉对电脑下指令的行为,而不是用滑鼠点一点 icon 就行了!不过如果只是要架一些简单的小站呢?是不是大家都可以做的到?没错!其实只要对 Linux 做一些小小的设定就可以架站了!
o 没有特定的支援厂商:因为所有的套件都是免费的,自然也就没有专人会到府服务啦!不过,这点倒是不需要担心,因为拜网路风行之赐,你要问的问题几乎在网路上都可以找到答案喔!看你有没有用心去找就是了!
o 图形介面作的还不够好:其实是因为 VBird 不玩 X-window 啦,所以也不知道目前发展到怎样的一个地步了!基本上 VBird 常说的一句话就是:‘Windows 上面有的咚咚 Linux 上面也一定可以找的到!,但 Linux 有的服务 Windows 可不见得有喔!’只不过,您可得自己找到自己想要的介面啰!
一些名词(GNU, GPL ??)
* Linux Standard Base ( LSB )
由于 Linux 是一个没有‘规格品’样式的新鲜玩意儿,如果大家都自己玩自己的,那么可想而知的是,未来想要在 Linux 这个作业系统上面发展软体与硬体的厂商一定会无所适从的!为了让软体开发商、与硬体发展者有一个依循的方向,因此而有 Linux Standard Base 这个玩意儿的诞生!所以,各个 distribution 也都要遵循 LSB 上面的规范,软硬体发展者也都会依循 LSB ,所以啰,我们才会常常说,各大 distribution 虽然在提供的工具与创意上面有所不同,但是基本上,他们的 Linux 架构都是很类似的!因此,你只要玩一套 Linux distribution 也就够了!其他的 distribution 应该就难不倒你啰!
* Unix-Like
其实 Unix-Like 可以说是目前伺服器类型的作业系统的统称啦!因为,不论是 FreeBSD, BSD, Sun Unix, SCO Unix, HP Unix, Red Hat Linux, Mandrake Linux 等等,都是由同一个祖先‘Unix’来的,因此,这些咚咚都被统称为 Unix-Like 的作业系统啰!目前,很多的软体在开发的时候,基本上,都已经可以是用在各个 Unix-Like 的平台上的!了不起,更改一些原始码就可以适用你所在的平台啰!
* 伺服器、工作站、终端机...
由于网路的盛行,我们或许常常会听到一些名词ㄋㄟ~所以,底下先来介绍几个简单的网路名词吧! ^_^,来认识一下什么是 伺服器 ( Server )、工作站 ( Workstation ) 与终端机 ( Ternianl )?简单的来说,你可以这样认为:
o 伺服器 ( Server ):提供 Internet 一种以上的网路服务的主机,例如 yahoo 提供的是 WWW 的服务,那么 yahoo 就可以称之为 伺服器 了!那么,你自己架设一台 mail server 呢?呵呵!那也是一个小型的伺服器啰!所以,你必须要清楚的知道,伺服器是有规模大小之分的!目前一部 Linux 上面就可以架设多个伺服器软体啰!例如 WWW 伺服器的 Apache 软体、 FTP 伺服器的 Wu-ftp 软体等等的;
o 工作站 ( Workstation ) :基本上,工作站可以视为仅提供一群特定人士,作为数值分析、科学用途的机器。例如我们研究室有一部 Sun 的机器,他仅提供我们研究室内部几部电脑的连线,当我们有需要使用到 Fortran 这个程式语言时,就连线进入 Sun 这部机器,并在上面进行我们所需要的计算工作!这个就是工作站啦。而工作站与伺服器的差别,大概就在于有没有提供 internet 上面的服务而已,例如,如果我将 Sun 上面的 mail server 开启之后,那么这部机器就可以称之为伺服器 了!同时也是我们的工作站喔!当然,更广义的定义是,只要是没有对 Internet 上面提供网路服务的,那就是工作站了!这当然也就包含所谓的终端机!
o 终端机 ( Terminal ) :简单的说,就是 end-user ( 就是你啦 ) 前面的那部电脑!呵呵,例如我都是使用我的工作机 ( Windows ) 连上我们的主机来工作,那么这一部 Windows 的电脑,就可以称为 terminal 机器啰!不过,更狭义的来说,‘终端机’本身应该是不具备任何可以作业的软体的,在终端机上面一定要连上 Server 之后,才能进行各项作业!那才是最狭义的终端机啰!例如我们前面说过的早期的大型主机连线模式!
大致上的分别可以用上面的观点来看!
* 几个常见的授权模式与定义
说说几个常见的授权模式吧:
o GNU General Public License :这个可以由刚刚的说明了解,他主要定义在‘自由软体’上面,任何挂上 GPL 授权的软体,需要公布其原始码 ( Open Source ),GPL 有几个主要的大方向:
1. 任何个人或公司均可释出自由软体 ( free software );
2. 任何释出自由软体的个人或公司,均可由自己的服务来收取适当的费用;
3. 该软体的原始码 ( Source Code ) 需要随软体附上,并且是可公开发表的;
4. 任何人均可透过任何正常管道取得此一自由软体,且均可取得此一授权模式。
o Freeware :不同于 Free software , Freeware 为‘免费软体’而非‘自由软体!’虽然他是免费的软体,但是不见得要公布其原始码,端看释出者的意见啰!这个东西与 Open Source 毕竟是不太相同的东西喔!此外,目前很多标榜 免费软体 的程式很多都有小问题!例如假借免费软体的名义,实施使用者资料窃取的目的!所以‘来路不明的软体请勿安装!’
o Shareware :共享软体这个名词就有趣了!与自由软体有点类似的是, Shareware 在使用初期,他也是免费的,但是,到了所谓的‘试用期限’之后,您就必须要选择‘付费后继续使用’或者‘将他移除’的宿命~通常,这些共享软体都会自行撰写失效程式,让你在试用期限之后就无法使用该软体。
o Berkeley Software Distribution (BSD) :使用 BSD source code 最常接触到的就是 BSD 授权模式了!这个授权模式其实与 GPL 很类似,而其精神也与 Open Source 相呼应呢!
o Open Source :Open source 表示软体释出时,一定伴随着原始码的释出喔!通常他有几个好处:
1. 程式设计师通常会等到程式成熟之后才会释出 ( 免得被笑, ^_^ ),所以通常程式在雏形的时候,就已经具有相当的优良体质;
2. Open Source 的精神,相信当程式原设计人将程式原始码释出之后,其他的程式设计师接受这份原始码之后,由于需要将程式改成自己所需的样式,所以会经由本身的所学来加以改良,并从中加以改良与除虫,所以程式的 debug 功能会比传统的 close source 来的快!
3. 由于程式是伴随原始码的,因此,系统将会不易存在鲜为人知的木马程式或一些安全漏洞,相对而言,会比较更加的安全!
o Close Source :程式的核心是封闭的,优点是有专人维护,您不需要去更动他;缺点则是灵活度大打折扣,使用者无法变更该程式成为自己想要的样式,此外,若有木马程式或者安全漏洞,将会花上相当长的一段时间来除错!
要了解 Linux 之前,就不能不知道什么是作业系统 ( Operation System, OS ),所以,首先我们来简单的说一说什么是作业系统吧!先来想一想,当我们使用电脑时,荧幕上面显示的咚咚是由哪里来的?嗯!是由显示卡与荧幕显像的;那么你现在可以藉由网路看到这篇文章,则是藉由 Internet 、网路卡、网路线以及所有相关的电子器材与网路器材所完成的一项任务!如果你要看 VCD 呢?那么就需要光碟机、光碟、音效卡的发声等等的支援。这么说来的话,所以在‘工作’的东西都是‘硬体’的工作呀!对了!就是这些电脑硬体在工作的。那么硬体怎么工作呢?那就是藉由‘作业系统’来达成的啰!这个作业系统就是在沟通你这个使用者跟硬体之间的讯息传递啦!也就是说,没有作业系统,那么你的电脑硬体就只是一堆废铁,什么工作都不能做的!
那么作业系统里面含有什么东西呢?简单的来说,作业系统主要分为两个东西,一个是‘核心’、一个是‘一堆核心提供的工具’我们以使用者常使用的 Windows 电脑来做一个简单的说明好了。大家应该都使用过 Windows 电脑里面的档案总管吧?那么当你开启档案总管的时候,他是否会显示你硬碟当中的资料?这个显示硬碟里面的资料,就是‘核心’帮你做的,但是,你要核心去显示硬碟哪一个目录下的资料,则是由‘档案总管’这个‘工具’帮你达成的!这样可以理解吗?再来,如果您曾经使用过 Windows 2000 或 Windows XP 的话,那就更好了!你就应该听过有所谓的‘FAT32 与 NTFS 档案格式’吧?在 Windows 98 这个早期的 Windows 版本中,他并无法读取或者是找到 Windows XP 的 NTFS 档案格式的硬碟,为什么呢?因为他的‘核心’本来就不认识 NTFS 啊!所以,即使你有档案总管,但是由于核心根本不认识 NTFS ,所以,档案总管也是没有能力帮你达到你想要做的事情!这样应该就更清楚了吧?没错!你的整个硬体是由核心来管理的,而如果核心不认识你的硬体,那么你将无法使用该硬体设备,例如上面提到的 NTFS 档案格式的硬碟!核心就是‘ Kernel ’,他是一个作业系统的最底层的东西,由他来掌管整个硬体资源的工作状态,而 Linux 有 Linux 自己的核心, Windows 也有他自己的核心。所以说,当有新的硬体加入到你的系统中的时候,那么若你的‘ Kernel ’并没有支援他的时候,呵呵,这个新的硬体就肯定无法工作的,因为控制他的 Kernel 并不认识他呀!这样了解了吗?!先有个概略性的了解,后面我们提到‘核心编译’的时候会在更详细的谈到他!
一般来说,Kernel 管理的事项有:
# System call interface :一些服务与 kernel 沟通之后,将硬体的资源进一步的利用;
# Process control :系统程序控制中心,所以核心编的越小越好;
# Memory management :控制整个系统的记忆体管理;
# File system management :档案系统的管理,例如 I/O 等等的工作啦!还有不同档案格式的支援啦等等,如果你的核心不认识某个档案系统,那么您将无法使用该档案格式的档案啰!例如上面提到的 Windows 98 不认识 NTFS 档案格式的硬碟;
# Device drivers :就如同上面提到的,硬体的管理是 Kernel 的主要工作之一,当然啰,装置的驱动程式就是核心需要做的事情啦!好在目前都有所谓的‘可载入模组’功能,可以将驱动程式编辑成模组,就不需要重新的编译核心啦!这个也会在后续的核心编译当中提到的!
所以啦!所有硬体的资源都是他来管理的!至于我们要达成一些工作时,除了藉由核心本身提供的功能 ( 例如上面提到的档案总管 ) 之外,还可以藉由其他的应用软体来达成喔!举个例子来说,你要看 VCD 影片是吧!那么除了 Windows 提供的媒体播放程式之外,你也可以自行安装 VCD 播放程式来播放 VCD 啰!这个播放程式就是应用软体啰,而这个应用软体可以帮你去控制核心来工作 ( 就是放映影片啰 ) ,因此,我们可以这样说,核心是控制整个硬体支援的咚咚,也是一个作业系统的最底层,然而要让整个作业系统更完备的话,那还需要含有相当丰富的核心提供的工具,以及核心相关的应用软体来支援!
OK!提到这里那么您知道 Linux 是什么了吗?呵呵!对啦!其实 Linux 就是一个作业系统,这个作业系统里头含有最主要的 kernel 以及 kernel 提供的工具啦!他提供了一个完整的作业系统当中最底层的硬体控制与资源管理的完整架构,这个架构是沿袭 Unix 良好的传统来的,所以相当的稳定而功能强大!此外,由于这个优良的架构可以在目前的个人电脑 ( X86 系统 ) 上面跑,所以很多的软体开发者将他们的工作心血移转到这个架构上面,那就是很多的应用软体啦!虽然 Linux 仅是其核心与核心提供的工具,不过,由于核心、核心工具与这些软体开发者提供的软体的整合,使得 Linux 成为一个更完整的、功能强大的作业系统啰!我们可以将 Linux 的系统与使用者的相关性看成底下的图示:
图一、使用者、使用者介面与核心工具、核心、与硬体之相关性
约略了解 Linux 是何物之后,接下来,我们要谈一谈,‘为什么说 Linux 是很稳定的作业系统呢?他是如何来的?’
从 Unix 到 Linux 这一段历史
为什么大家常常会说, Linux 是很稳定的一套作业系统呢?这是因为, Linux 他有个老前辈,那就是 Unix 家族啰!有这个前辈的提携,让 Linux 这个小老弟很快的就成为一套稳定而优良的作业系统啦!所以,底下我们来谈一谈 Unix 到 Linux 的这一段历史吧!
早在 Linux 出现之前的二十年 ( 大约在 1970 年代 ), 就有一个相当稳定而成熟的作业系统存在了!那就是 Linux 的老大哥‘ Unix ’是也!怎么这么说呢?!他们这两个家伙有什么关系呀?这里就给他说一说啰!众所皆知的, Linux 的核心是由 Linus Torvalds 在 1991 年的时候给他开发出来的,并且丢到网路上提供大家下载,后来大家觉得这个小东西 ( Linux Kernel ) 相当的小而精巧,所以慢慢的就有相当多的朋友投入这个小东西的研究领域里面去了!但是为什么这的小东西这么棒呢?!然而又为什么大家都可以免费的下载这个东西呢?!嗯!等鸟哥慢慢的唬xx....喔不!听我慢慢的道来!
* 一个没有完成的梦想: Bell, MIT 与 GE 的‘ Multics ’系统
早期的电脑并不像现在的个人电脑一般,他可不是一般人碰的到的玩意儿,除非是军事或者是高科技用途才有可能接触到这类的 Computer !而如前面所言,有电脑硬体还需要作业系统的配合才能够发挥电脑的效能,不过,在那个年代,由于电脑算是‘奢侈品’,喔~应该说是‘贵重物品’,所以,可能一间学校就只有一部大型主机当然,那个年代所谓的大型主机仍然无法提供适度的运算能力的。不过,既然只有一部大型主机,然而有许许多多的教师、学生要想要来使用,怎么办呢?为了解决这个问题,在 1960 年代初期,麻省理工学院 ( MIT ) 发展了所谓的‘相容分时系统 ( Compatible Time-Sharing System, CTSS )’,就字面上的意义来看,他主要让大型主机可以提供多个终端机连线进入主机使用主机的资源, ( 附带一提,当时的终端机 ( Terminal ) 本身并没有软体或者可供使用的资源,这些终端机要能使用,一定必需要连线登入主机之后,才能够使用主机的资源来工作!) 当时可以让约 30 位使用者连线使用主机。而为了让这个分时系统更加的强大,所以,在 1965 年前后由贝尔研究室 ( Bell )、 麻省理工学院 ( MIT ) 及奇异电器公司 ( GE ) 开始来共同开发一个名为 Multics 的大型计划,目标是想让大型主机可以连线 300 位以上的使用者。不过,在奋斗了四年之后,该计划仍然宣告不治...喔!是失败啦!(注: Multics 有复杂、多数的意思。)
* 一个小型档案系统的产生:1969 年 Ken Thompson 的小型 file server system
在复杂的 Multics 系统的计划失败后,贝尔研究室当然就退出该计划。就在这个计划解散之后,曾经参与 Muitics 的贝尔研究室的成员 Ken Thompson 由于自己工作上的需求,需要一套档案存取的小型作业系统,便在 1969 年的时候以 DEC 公司 ( Digital Equipment Corporation ) 的电脑 PDP-7 为硬体基准,设计了一个适合自己工作环境的小型档案系统,其中也含有他自行开发的一些小工具。那个系统就是最早期的 Unix 的源头!当初 Ken 设计这个档案系统时,主要是为了自己的存取方便所设计的简单 OS ,因此将原有的 Multics 系统大幅度的简化,不过,在当时还并没有 Unix 这个名词的出现!
* Unix 的正式诞生:1973 年 Ritchie 等人以 C 语言写出第一个正式 Unix 核心
由于 Thompson 写的那个作业系统实在太好用了,所以在 Bell 研究室内部广为流传,并且数度经过改版。到了 1973 年, Bell 研究室的 Dennis Ritchie 等人为了让这个系统的执行效能更佳化,所以使用编译效能更好的 C 语言将原有的 1969 年的那个系统之核心大幅度的改写过,并且确定该作业系统名称为 Unix,呵呵!那就是最早的 Unix 作业系统啰!不过,由于这个作业系统是由这一群工程师所开发完成的,而且使用者也大多是这方面的工程师,因此造成了后来 Unix 系统介面较难被一般使用者接受的情况 @_@ (注: 相对于 Multics ,Unix 具有单一的意思!)
* 重要的 Unix 分支: 1977 年 BSD 的诞生
在 Unix 早期的发展中,有一件相当重要的事情,那就是 BSD 的诞生!由于 C 语言是一种高阶语言,他可以被应用在不同的硬体架构上面,而 Unix 本身就是 C 语言写成的!在 Unix 发表之后, 柏克莱大学 ( Berkeley ) 的教授对于这个作业系统相当的有兴趣,在经过取得 Unix 的原始码,并且几经修改之后,终于在 1977 年发表了第一代的 Berkeley Software Distribution ( BSD ) 。这个 BSD 是 Unix 的一个分支,他的发展对于 Unix 有相当大的影响,例如后来的 Sun 公司就是使用 BSD 发展的核心进行自己商业的 Unix 版本的发展的!
* 百家齐鸣的 Unix 版本:
由于 C 语言是一个相当高阶的程式语言,他与硬体没有很直接的相关性,例如你的 Windows 也可以执行 C 程式语言!而由于 Unix 是由 C 语言写成的,因此,也就是说,你只要经过稍微的原始码修改程序,就可以在不同的硬体架构上面执行这个作业系统!后来,由于 Unix 的方便性,因此很多的商业公司及学术机构就加入这个作业系统的研发啰。不过,也由于 Unix 的便利性与改写容易,因此就造成了很多的不同版本的 Unix 啰,例如 ATT 的 System V 、 加州大学的 BSD 版、 IBM 的 AIX 等等。
由于‘作业系统的核心 ( Kernel ) 必须要跟硬体配合,以提供及控制硬体的资源进行良好的工作!’,而在早期每一家生产电脑硬体的公司还没有所谓的‘协定’的概念,所以每一个电脑公司出产的硬体自然就不相同啰!因此他们必须要为自己的电脑硬体开发合适的 Unix 系统,所以,他们自行开发的 Unix 当然只能配合本身的硬体配备啰!例如在学术机构相当有名的 Sun 、 Cray 与 HP 就是这一种情况,他们开发出来的 Unix 并没有办法在其他的硬体架构下工作的! ( 我们都称呼这种系统与配备为‘超级电脑’ ) !由于没有厂商针对个人电脑设计 Unix 系统,因此,在早期并没有支援个人电脑的 Unix 作业系统的出现 ( 当然,这是由于早期的个人电脑并没有现在这样风行就是了! ) ,每一家公司自己出的 Unix 虽然在架构上面大同小异,但是却真的仅能支援自身的硬体,所以啰,早先的 Unix 只能与伺服器 ( Server ) 或者是大型工作站 ( Workstation ) 划上等号!
此外,由于版本太多了,而大家都是同样来自于 Unix 这个老祖宗,当然也都称自己是 Unix ,好了,如此一来,许多商业公司自然就会有类似的软体发表,喝!那么自然就有些许的商业纠纷啰!真是伤脑筋~
* 1984 年的 GNU 与 Free Software Foundation:
Unix 在商业上面的问题让许多对于 Unix 喜好者感到相当的忧心,其中一个就是有名的 Richard M. Stallman 先生。他认为, Unix 是一个相当好的作业系统,在这个系统上面,如果大家能够将自己所学的贡献出来,那么这个系统将会更加的优异!Stallman 先生认为最大的快乐就是让自己发展的良好的软体让大家来使用了!而且,由于每个人的工作环境 ( 指软硬体平台 ) 可能都不太相同,所以,他也强调应该要有 Open Source 的概念,让大家都能够分享这一份的心得!他认为,有了 Open Source 之后,你的程式将有很多的人可以帮忙检验,将使得 Unix 社群更佳的茁壮。为了自己的理想, Stallman 在 1984 年实际创立了 GNU 与 自由软体基金会 ( Free Software Foundation, FSF ),并创作了许多‘自由软体’供大众来使用,此外,对于其作品以自由 ( free ) 的 GNU General Public License ( GPL ) 的授权模式提供大众使用。这个 FSF 的核心观念是‘版权制度是促进社会进步的手段,版权本身不是自然权力。’对于 FSF 有兴趣或者对于 GNU 想要更深入的了解时,请参考朝阳大学的洪朝贵教授的网站,里面有更为深入的解说!而且,Stallman 的 GNU General Public License 一直强调 Free 这个字眼!他是这样说的:‘"Free software" 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 先生更直接对自由度下了这样的说明:
o 你可以根据任何你想要的提议 ( purpose ) 来跑这个 Free 的程式;
o 你可以在理解了这支 Free 的程式的运作之后,将他修改成你所想要的样式与功能;
o 你可以将你自己修改过的 Free 的程式再次的发表,以帮助你的朋友们;
o 你可以将这支 Free 的程式进行改良,并将改良过的程式公开发表,以造福社群!
简单的来说, GPL 授权具有几个特点:
o 任何软体挂上 GPL 授权之后,即为自由的软体,任何人均可取得,同时,亦可取得其原始码 ( Source Code );
o 取得 GPL 授权之软体后,任何人均可进行修改原始码,以符合自己的喜好;
o 除此之外,经过修改的 Source Code 应回报给网路社会,提供大家来参考!
但请特别留意,并非挂上 GPL 之后的软体就不可贩卖,这个是不同的两回事呦!举个例子来说,在 Red Hat 的官方网站上面提供 Red Hat 释出的 Linux 安装光碟提供大众下载,但是 Red Hat 本身依然有在卖 Linux 的套件,而且还卖的‘很不便宜!’为何可以如此呢?呵呵!因为 Red Hat 他们卖的资料当中,含有相当大量经过整了的文件资料,这些资料虽然在网路上面可以下载,然而花了这么多的时间来整理这些资料,当然应该要给予相当程度的报酬啰!您说是吧!所以,请留意喔!并非 GPL 不可用来营利!
这个 GNU 对于后来的 Linux 有相当深远的影响,由于 Stallman 先生发展了 GNU 这个计划中,主力在推出各种方便而优异的工具软体,例如广为大家所知的 Emacs 文书编辑器、GCC, BASH..然而没有作业平台怎么使用这些软体呢?然而,由于他倡导的自由软体,让后来的心血能很快的接触原始码来发展软体,这就是后来的 Linux 的故事....这是后来的故事,等一下来说~
* 1988 年的图形介面 X-Free86 project:
有鉴于图形使用者介面 ( Graphical User Interface, GUI ) 的需求日益加重,在 1984 年由 MIT 与其他协力厂商首次发表了 X Window System ,并且更在 1988 年成立了非营利性质的 XFree86 这个组织。所谓的 XFree86 其实是 X window system 与 Free 及 x86 系统架构的整合名称呢!而这个 XFree86 的 GUI 介面更在 Linux 的核心 1.0 版于 1994 年释出时,整合于 Linux 作业系统当中!
* 1991 年 芬兰大学生 Linus Torvalds 的一则简讯:
在后来的几年内,由于电脑硬体工业的强力运作,以 intel 主导的 x86 系统架构的个人电脑大行其道,所以个人电脑算是相当流行的一个机器了!但在此时,人们使用的大多还是旧旧而且需要吃很多系统资源的 DOS 系列或其他的作业系统。 此时,有个芬兰的郝尔辛基大学 (Helsinki )Linus Torvalds 学生做了件不寻常的事情! Linus 手边有个 Minix 系统 ( 这也是 Unix 的分支 ) ,他对这个作业系统相当的有兴趣!此外,由于当时他正好买了一部 386 的电脑,所以他就想说,咦!这个 Unix 这么棒!这么稳定,那我可不可以将他移植到个人电脑 ( X86 架构 ) 来使用呢?!好在由于 Stallman 提倡的 Open Source 风气,他得以接触到一些 source code ,而就经由这样的一个想法,呵呵!他就很有心的读取 Unix 的核心,并且去除较为繁复的核心程序,将他改写成可以适用于一般个人电脑的 x86 系统上面,到了 1991 年,他终于将 0.02 版的 hobby 放到网路上面供大家下载,并且由于 hobby 受到大家的肯定,相当多的朋友一起投入这个工作中!终于到了 1994 年将第一个完整的核心 Version 1.0 释出!并且造成目前的大流行.....由于 Linux kernel 的发展是由‘虚拟团队’所达成的,大家都是透过网路取得 Linux 的核心原始码,经由自己精心改造后再回传给 Linux 社群,进而一步一步的发展完成完整的 Linux 系统,至于 Torvalds 先生是这个集团中的发起者。由于这个群策群力的缘故, Torvalds 先生将 Linux 定为同样造福大家的 GNU 授权模式!
* 企鹅的来源:
1994年发表 Linux 正式核心 1.0 的时候,大家要 Linus Torvalds 想一只吉祥物,怪怪的 Torvalds 突然想到小时候去动物园被一只企鹅追着满地打滚~还被咬了一口!既然想不到其他的吉祥物了,干脆就以这支企鹅来当吉祥物算了!所以,呵呵!目前我们常常看到这一只企鹅就是这么来的咯!
什么是 distribution
好了,经由上面的说明,我们知道 Linux 是个‘作业系统’,而且他是 GNU 的授权模式,并且有个老大哥是 Unix 。不过,毕竟由 Torvalds 先生负责维护的 Linux 提供的仅是‘核心’与‘核心工具’的集合,对于需要更完整功能的作业系统来说,毕竟还不够完备,例如如果你要桌面程式,还得要加入 X-Window 系统对吧!?如果你要架设 WWW 还得加入伺服器软体对吧?所以,虽然 Linux 的核心已经提供了相当多的支援与工具程式,但毕竟还不足以构成一个很完整的作业系统。
好在,由于 Linux 的稳定性良好,并且可以在便宜的 x86 架构下的电脑平台运作,所以吸引了很多的套件商与自由软体的开发团队在这个 Linux 的核心上面开发相关的软体,例如有名的 sendmail, wu-ftp, apache 等等。此外,亦有一些商业公司发现这个商机,因此,这些商业公司或者是非营利性的工作团队,便将 Linux 核心、核心工具与相关的软体集合起来,并加入自己公司或团队的创意的系统管理模组与工具,而释出一套可以完整安装的作业系统,这个完整的 Linux 作业系统,我们就称呼他为 distribution,或者是中文所谓的‘安装套件’啰!当然啰,由于是基于 GNU 的架构下,因此各家公司所发行的光碟套件是可以在网路上面自由下载的。不过,如果想要有较佳的服务,那么购买该公司发行的光碟也是不错的!
不过,由于发展的 Linux 公司实在太多了,例如有名的 Red Hat, OpenLinux, Mandrake, Debian, SuSE 等等,所以很多人都很担心,如此一来每个 distribution 是否都不相同呢?这就不需要担心了,由于各个 distribution 都是架构在 Linux Kernel 下来发展属于自己公司风格的 distribution,因此大家都遵守 Linux Standard Base ( LSB ) 的规范,也就是说,各个 distribution 其实都是差不多的!反正用到的都是 Linux Kernel 啊!只是各个 distribution 里面所使用的各套件可能并不完全相同而已。所以啰,大家可以按照自己的喜好来选择 Linux 的 distribution 光碟啰!底下列出几个主要的 Linux 发行者网址:
* Red Hat: [url]http://www.redhat.com[/url]
* Mandrake: [url]http://www.linux-mandrake.com/en/[/url]
* Slackware: [url]http://www.slackware.com/[/url]
* SuSE: [url]http://www.suse.com/index_us.html[/url]
* OpenLinux: [url]http://www.caldera.com/[/url]
* Debian: [url]http://www.debian.org/[/url]
* Linpus: [url]http://www.linpus.com.tw/[/url]
* UniteLinux:[url]http://www.sco.com/unitedlinux/[/url]
当然发行套件者不仅于此,您可以查阅其他的 Linux 新闻来发现喔!而其中中文化较为有名的就属 CLE 这个套件发行者了!另外,台湾还有另一家 Linux 开发商,称为 Linpus (百资),有兴趣的话也可以到底下的网页上看看!
* CLE:[url]http://cle.linux.org.tw/[/url]
* 百资:[url]http://www.linpus.com.tw/[/url]
好了,那么哪一个安装套件比较好呢?!就如同 VBird 前面提到的,每一个发行者所使用的 Linux 核心其实是一样的,都是由 [url]www.kernel.org[/url] 开发出来的核心呀!所以其架构,甚至包括其档案放置的目录,都是大同小异的,基本上除了某些内容套件不太一样之外 ( 例如有人使用 wu-ftpd 有人使用 proftpd 等等 ) ,其他的档案架构与指令系统其实几乎都是相同的,因此我们不去探讨哪一个套件比较棒!而是要来介绍如何学习与使用一个套件!至于下载的地点,网友提供了一个相当棒的多种 Linux distributions 的下载网站:
[url]www.linuxiso.org[/url]
同时底下的网站还有各个著名的 Linux distribution 的比较!包括使用的热门情况、市场占有率、以及套件的相依程度等等:
[url]http://www.distrowatch.com/[/url]
Linux 的功能与优缺点
* Linux 的起源:
前面提到了,Linus Torvalds 先生一直以来就喜欢那个小小的作业系统核心,而核心是管理一个系统的最底层的东西,所有的硬体资源都是由 kernel 来管控的!但是,就如同前面说的,早期的 Unix 并不支援 x86 的个人电脑架构,一直到了 1991 年在 BBS 里面 Linus 先生贴了个小布告之后,才有了重大的转变:
Hello everybody out there using minix-
Im doing a (free) operation system (just a hobby,
wont be big and professional like gnu) for 386(486) AT clones.
这封 BBS 的邮件即是由当时还是芬兰的大学生 Linus Torvalds 所发表的,他说他修改了一个简单的作业系统核心,核心名称为 hobby,这个 hobby 的核心 ( Kernel ) 即为第一个 Linux 的核心系统!此外,由于他是基于 GNU 的协议而开发这个作业系统,所以他是 Free 的,任何人都可以下载使用!( 注:hobby 是个人兴趣,just a hobby, wont be big and professional like gnu,其意思是:仅为个人兴趣,不会玩得跟 gnu 那么大啦~~~)
Linus 所开发的这个 hobby 是基于 Unix 的系统所发展出来的,他将 Unix 里面的很多资料又加以简化,并且使之可以适用于 intel 主导的 x86 的系统下(当初的个人电脑系统为 386 与 486 架构),因此当初他所发表的这个最新的系统核心就被称为 linuss unix ,简称为 Linux !当然,由于这个核心很像是当时的 Unix 系统,因此也称为 Unix-like 系统啰!( 注:其实 Unix-Like 可以说是目前伺服器类型的作业系统的统称啦!因为,不论是 FreeBSD, BSD, Sun Unix, SCO Unix, HP Unix, Red Hat Linux, Mandrake Linux 等等,都是由同一个祖先‘Unix’来的,因此,这些咚咚都被统称为 Unix-Like 的作业系统啰! )
那么这个系统有什么特异功能呢?简单的说:
o 免费:由于他是基于 GPL ( General Public License ) 的架构之下,因此他是 Free 的,也就是任何人都可以免费的使用或者是修改其中的原始码的意思!这就是所谓的‘开放性架构’,这对科学界来说是相当重要的!因为很多的工程师由于特殊的需求,常常需要修改系统的原始码,使该系统可以符合自己的需求!而这个开放性的架构将可以满足各不同需求的工程师!因此当然就有可能越来越流行啰!
o 配备需求低廉:而他可以支援个人电脑的 X86 架构,系统资源不必像早先的 Unix 系统那般,仅适合于单一公司 ( 例如 Sun ) 设备!单就这一点来看,就可以造成很大的流行啰!
o 功能强大而稳定:而且由于功能并不会输给一些大型的 Unix 工作站,因此,近年来越来越多的公司或者是团体、个人投入这一个作业系统的开发与整合工作!
o 独立作业:另外,由于很多的软体套件逐渐被这套作业系统拿来使用,而很多套件软体也都在 Linux 这个作业系统上面进行发展与测试,因此, Linux 近来已经可以独力完成几乎所有的工作站或伺服器的服务了,例如 Web, Mail, Proxy, FTP.....。
所以,目前他已经是相当成熟的一套作业系统啰!而且不耗资源又免费,呵呵,可以说造成微软相当大的压力呀!此外,由于他的系统硬体要求很低,加上目前很多的人由于‘Intel 的阴谋’(呵呵!开玩笑的,因为 Tom 的硬体评论网站常常这样说 Intel 的不是!呵!很好笑!)而造成手边有相当多的淘汰掉的硬体配备, Linux 在这些被淘汰的硬体中就可以执行的相当的顺畅与稳定!因此也造成相当多朋友的关注啰!
这也是造成 Linux 成为最近几年来最受瞩目的作业系统之一,如前所述,他会受到瞩目的原因主要是因为他是‘free’的,就是免费的作业系统啦!然后他是开放性的系统,也就是你可以随时的取得程式的原始码,这对于程式开发工程师是很重要的!而且,虽然他是免费的,不过功能却很强大!另外, Linux 对于硬体的需求是很低的,这一点更造成他流行的主因,因为硬体的汰换率太快了,所以很多人手边都有一些很少在用的零件,这些零件组一组就可以用来跑 Linux 了,反正做一个工作站又不用使用到荧幕 ( 只要主机就可以啰 ) ,因此 Linux 就越来越流行啰!(插个嘴,也就是因为 Linux 具有 1.硬体需求低、 2.架构开放、 3.系统稳定性及保密性工能够强、 4.完全免费,所以造成一些所谓‘反微软联盟’的程式设计高手不断的开发新软体!以与 Microsoft 进行抗衡!)
* Linux 的优点:
那干嘛要使用 Linux 做为我们的主机系统呢?这是因为 Linux 有底下这些优点:
o 稳定的系统:Linux 本来就是建立在 Unix 上面发展出来的作业系统,因此,Linux 具有与 Unix 系统相似的的程式介面跟操作方式,当然也继承了 Unix 稳定并且有效率的特点。常听到安装 Linux 的主机连续运做一年以上而不曾当机、不必关机是稀松平常的事;
o 免费或少许费用:由于 Linux 是基于 GPL 的基础下的产物,因此任何人皆可以自由取得 Linux ,至于一些‘安装套件’的发行者,他们发行的安装光碟也仅需要些许费用即可获得!不同于 Unix 需要负担庞大的版权费用,当然也不同于微软需要一而再、再而三的更新你的系统,并且缴纳大量费用啰!
o 安全性、漏洞的修补:如果你常玩网路的话,那么你最常听到的应该是‘没有绝对安全的主机’!没错!不过 Linux 由于支援者日众,有相当多的热心团体、个人参与其中的开发,因此可以随时获得最新的安全资讯,并给予随时的更新,亦即是具有相对的较安全!
o 多工、多使用者:与 Windows 系统不同的, Linux 主机上可以同时允许多人上线来工作,并且资源的分配较为公平,比起 Windows 的单人假多工系统要稳定的多啰! 这个多人多工可是 Unix-Like 上面相当好的一个功能,怎么说呢?你可以在一部 Linux 主机上面规划出不同等级的使用者,而且每个使用者登入系统时的工作环境都可以不相同,此外,还可以允许不同的使用者在同一个时间登入主机,以同时使用主机的资源。
o 使用者与群组的规划:在 Linux 的机器中,档案的属性可以分为‘可读、可写、可执行’等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类,分别是‘档案拥有者、档案所属群组、其他非拥有者与群组者’。这对于专案计划或者其他计划开发者具有相当良好的系统保密性。
o 相对比较不耗资源的系统:Linux 只要一部 p-100 以上等级的电脑就可以安装并且使用愉快啰!还不需要到 P-III 等级的电脑呢!不过,如果你要架设的是属于大型的主机(服务上百人以上的主机系统),那么就需要比较好一点的机器了。不过,目前市面上任何一款个人电脑均可以达到这一个要求啰!
* Linux 的缺点:
反正 Linux 好处说不完啦!不过虽然 Linux 具有这样多的好处,但是他先天上有一个足以致命的地方,使他的普及率受到很大的限制,就是 Linux 需要使用 ‘指令列’ 的终端机模式进行系统的管理!虽然近年来有很多的图形介面开发使用在 Linux 上面,但毕竟要熟悉 Linux 还是以指令列来使用是比较好的,因此要接受 Linux的玩家必须比较要能熟悉对电脑下指令的行为,而不是用滑鼠点一点 icon 就行了!不过如果只是要架一些简单的小站呢?是不是大家都可以做的到?没错!其实只要对 Linux 做一些小小的设定就可以架站了!
o 没有特定的支援厂商:因为所有的套件都是免费的,自然也就没有专人会到府服务啦!不过,这点倒是不需要担心,因为拜网路风行之赐,你要问的问题几乎在网路上都可以找到答案喔!看你有没有用心去找就是了!
o 图形介面作的还不够好:其实是因为 VBird 不玩 X-window 啦,所以也不知道目前发展到怎样的一个地步了!基本上 VBird 常说的一句话就是:‘Windows 上面有的咚咚 Linux 上面也一定可以找的到!,但 Linux 有的服务 Windows 可不见得有喔!’只不过,您可得自己找到自己想要的介面啰!
一些名词(GNU, GPL ??)
* Linux Standard Base ( LSB )
由于 Linux 是一个没有‘规格品’样式的新鲜玩意儿,如果大家都自己玩自己的,那么可想而知的是,未来想要在 Linux 这个作业系统上面发展软体与硬体的厂商一定会无所适从的!为了让软体开发商、与硬体发展者有一个依循的方向,因此而有 Linux Standard Base 这个玩意儿的诞生!所以,各个 distribution 也都要遵循 LSB 上面的规范,软硬体发展者也都会依循 LSB ,所以啰,我们才会常常说,各大 distribution 虽然在提供的工具与创意上面有所不同,但是基本上,他们的 Linux 架构都是很类似的!因此,你只要玩一套 Linux distribution 也就够了!其他的 distribution 应该就难不倒你啰!
* Unix-Like
其实 Unix-Like 可以说是目前伺服器类型的作业系统的统称啦!因为,不论是 FreeBSD, BSD, Sun Unix, SCO Unix, HP Unix, Red Hat Linux, Mandrake Linux 等等,都是由同一个祖先‘Unix’来的,因此,这些咚咚都被统称为 Unix-Like 的作业系统啰!目前,很多的软体在开发的时候,基本上,都已经可以是用在各个 Unix-Like 的平台上的!了不起,更改一些原始码就可以适用你所在的平台啰!
* 伺服器、工作站、终端机...
由于网路的盛行,我们或许常常会听到一些名词ㄋㄟ~所以,底下先来介绍几个简单的网路名词吧! ^_^,来认识一下什么是 伺服器 ( Server )、工作站 ( Workstation ) 与终端机 ( Ternianl )?简单的来说,你可以这样认为:
o 伺服器 ( Server ):提供 Internet 一种以上的网路服务的主机,例如 yahoo 提供的是 WWW 的服务,那么 yahoo 就可以称之为 伺服器 了!那么,你自己架设一台 mail server 呢?呵呵!那也是一个小型的伺服器啰!所以,你必须要清楚的知道,伺服器是有规模大小之分的!目前一部 Linux 上面就可以架设多个伺服器软体啰!例如 WWW 伺服器的 Apache 软体、 FTP 伺服器的 Wu-ftp 软体等等的;
o 工作站 ( Workstation ) :基本上,工作站可以视为仅提供一群特定人士,作为数值分析、科学用途的机器。例如我们研究室有一部 Sun 的机器,他仅提供我们研究室内部几部电脑的连线,当我们有需要使用到 Fortran 这个程式语言时,就连线进入 Sun 这部机器,并在上面进行我们所需要的计算工作!这个就是工作站啦。而工作站与伺服器的差别,大概就在于有没有提供 internet 上面的服务而已,例如,如果我将 Sun 上面的 mail server 开启之后,那么这部机器就可以称之为伺服器 了!同时也是我们的工作站喔!当然,更广义的定义是,只要是没有对 Internet 上面提供网路服务的,那就是工作站了!这当然也就包含所谓的终端机!
o 终端机 ( Terminal ) :简单的说,就是 end-user ( 就是你啦 ) 前面的那部电脑!呵呵,例如我都是使用我的工作机 ( Windows ) 连上我们的主机来工作,那么这一部 Windows 的电脑,就可以称为 terminal 机器啰!不过,更狭义的来说,‘终端机’本身应该是不具备任何可以作业的软体的,在终端机上面一定要连上 Server 之后,才能进行各项作业!那才是最狭义的终端机啰!例如我们前面说过的早期的大型主机连线模式!
大致上的分别可以用上面的观点来看!
* 几个常见的授权模式与定义
说说几个常见的授权模式吧:
o GNU General Public License :这个可以由刚刚的说明了解,他主要定义在‘自由软体’上面,任何挂上 GPL 授权的软体,需要公布其原始码 ( Open Source ),GPL 有几个主要的大方向:
1. 任何个人或公司均可释出自由软体 ( free software );
2. 任何释出自由软体的个人或公司,均可由自己的服务来收取适当的费用;
3. 该软体的原始码 ( Source Code ) 需要随软体附上,并且是可公开发表的;
4. 任何人均可透过任何正常管道取得此一自由软体,且均可取得此一授权模式。
o Freeware :不同于 Free software , Freeware 为‘免费软体’而非‘自由软体!’虽然他是免费的软体,但是不见得要公布其原始码,端看释出者的意见啰!这个东西与 Open Source 毕竟是不太相同的东西喔!此外,目前很多标榜 免费软体 的程式很多都有小问题!例如假借免费软体的名义,实施使用者资料窃取的目的!所以‘来路不明的软体请勿安装!’
o Shareware :共享软体这个名词就有趣了!与自由软体有点类似的是, Shareware 在使用初期,他也是免费的,但是,到了所谓的‘试用期限’之后,您就必须要选择‘付费后继续使用’或者‘将他移除’的宿命~通常,这些共享软体都会自行撰写失效程式,让你在试用期限之后就无法使用该软体。
o Berkeley Software Distribution (BSD) :使用 BSD source code 最常接触到的就是 BSD 授权模式了!这个授权模式其实与 GPL 很类似,而其精神也与 Open Source 相呼应呢!
o Open Source :Open source 表示软体释出时,一定伴随着原始码的释出喔!通常他有几个好处:
1. 程式设计师通常会等到程式成熟之后才会释出 ( 免得被笑, ^_^ ),所以通常程式在雏形的时候,就已经具有相当的优良体质;
2. Open Source 的精神,相信当程式原设计人将程式原始码释出之后,其他的程式设计师接受这份原始码之后,由于需要将程式改成自己所需的样式,所以会经由本身的所学来加以改良,并从中加以改良与除虫,所以程式的 debug 功能会比传统的 close source 来的快!
3. 由于程式是伴随原始码的,因此,系统将会不易存在鲜为人知的木马程式或一些安全漏洞,相对而言,会比较更加的安全!
o Close Source :程式的核心是封闭的,优点是有专人维护,您不需要去更动他;缺点则是灵活度大打折扣,使用者无法变更该程式成为自己想要的样式,此外,若有木马程式或者安全漏洞,将会花上相当长的一段时间来除错!