Linux的发展历史及特点


引用:《鸟哥的Linux私房菜基础篇第三版》

与Minix之间

Linus Torvalds(托瓦兹, 1969年出生)的外祖父是赫尔辛基大学的统计学家,他的外祖父为了让自己的小孙子能够学点东西,所以从小就将托瓦兹带到身边来管理一些微计算机。在这个时期,托瓦兹接触了汇编语言(Assembly Language),那是一种直接与芯片对谈的程序语言,也就是所谓的低级语言。必须要很了解硬件的架构,否则很难以汇编语言撰写程序的。

在1988年间,托瓦兹顺利的进入了赫尔辛基大学,并选读了计算机科学系。在就学期间,因为学业的需要与自己的兴趣,托瓦兹接触到了Unix这个操作系统。当时整个赫尔辛基只有一部最新的Unix系统,同时仅提供16个终端机(terminal)。早期的计算机仅有主机具有运算功能,terminal仅负责提供Input/Output而已。在这种情况下,实在很难满足托瓦兹的需求,因为,光是等待使用Unix的时间,就很耗时。为此,他不禁想到:『我何不自己搞一部Unix来玩?』不过,就如同Stallman当初的GNU计划一样,要写核心程序,谈何容易

不过,幸运之神并未背离托瓦兹,因为不久之后,他就知道有一个类似Unix的系统,并且与Unix完全兼容,还可以在Intel 386机器上面跑的操作系统,那就是谭宁邦教授为了教育需要而撰写的Minix系统! 他在购买了最新的Intel 386的个人计算机后,就立即安装了Minix这个操作系统。Minix这个操作系统是有附上源代码的, 所以托瓦兹也经过这个源代码学习到了很多的核心程序设计的设计概念喔!

对386硬件的多任务测试

事实上,托瓦兹对于个人计算机的CPU其实并不满意,因为他之前碰的计算机都是工作站型的计算机,这类计算机的CPU特色就是可以进行『多任务处理』的能力。什么是多任务呢?理论上,一个CPU在一个时间内仅能进行一个程序,那如果有两个以上的程序同时出现到系统中呢?举例来说,你可以在现今的计算机中同时开启两个以上的办公软件,例如电子电子表格与文字处理软件。 这个同时开启的动作代表着这两个程序同时要交给CPU来处理。

CPU一个时间点内仅能处理一个程序,那怎么办?没关系,这个时候如果具有多任务能力的CPU就会在不同的程序间切换。假设CPU频率为1GHz的话,那表示CPU一秒钟可以进行10的9次方次工作。假设CPU对每个程序都只进行1000次运行周期,然后就要切换到下个程序的话,那么CPU一秒钟就能够切换10的6次方次呢! (当然啦,切换工作这件事情也会花去一些CPU时间,不过这里暂不讨论)。这么快的处理速度下,你会发现,两个程序感觉上几乎是同步在进行啦!

Tips:

为什么有的时候我同时开两个档案(假设为A, B档案)所花的时间,要比开完A再去开B档案的时间还要多?现在是否稍微可以理解?因为如果同时开启的话,CPU就必须要在两个工作之间不停的切换,而切换的动作还是会耗去一些CPU时间的!所以,同时启用两个以上的工作在一个CPU上,要比一个一个的执行还要耗时一点。这也是为何现在CPU开发商要整合两个CPU于一个芯片中!也是为何在运行情况比较复杂的服务器上,需要比较多的CPU的原因!

早期Intel x86架构计算机不是很受重视的原因,就是因为x86的芯片对于多任务的处理不佳, CPU在不同的工作之间切换不是很顺畅。但是这个情况在386计算机推出后,有很大的改善。 托瓦兹在得知新的386芯片的相关信息后,他认为,以性能价格比的观点来看,Intel的386相当的便宜,所以在性能上也就稍微可以将就将就。最终他就贷款去买了一部Intel的386来玩。

早期的计算机效能没有现在这么好,所以压榨计算机效能就成了工程师的一项癖好!托瓦兹本人早期是玩汇编语言的,汇编语言对于硬件有很密切的关系,托瓦兹自己也说:『我始终是个性能癖』。为了彻底发挥386的效能,于是托瓦兹花了不少时间在测试386机器上!他的重要测试就是在测试386的多功效能。首先,他写了三个小程序,一个程序会持续输出A、一个会持续输出B,最后一个会将两个程序进行切换。他将三个程序同时执行,结果,他看到屏幕上很顺利的一直出现ABABAB…… 他知道,他成功了!

Tips:

要达到多任务(multitasking)的环境,除了硬件(主要是CPU)需要能够具有多任务的特性外,操作系统也需要支持这个功能喔!一些不具有多任务特性的操作系统,想要同时执行两个程序是不可能的。除非先被执行的程序执行完毕,否则,后面的程序不可能被主动执行。

至于多任务的操作系统中,每个程序被执行时,都会有一个最大CPU使用时间,若该工作运作的时间超过这个CPU使用时间时,该工作就会先被丢出CPU的运行中,而再度的进入核心工作队列中等待下一次被CPU取用来运行。

这有点像在开记者会啦,主持人(CPU)会问『谁要发问』?一群记者(工作程序) 就会举手(看谁的工作重要!),先举手的自然就被允许发问,问完之后,主持人又会问一次谁要发问,当然,所有人(包括刚刚那个记者)都可以举手! 如此一次一次的将工作给他完成啊!多任务的环境对于复杂的工作情况,帮助很大。

初次释出Linux 0.02

探索完了386的硬件之后,终于拿到Minix并且安装在托瓦兹的386计算机上之后,托瓦兹跟BBS上面一堆工程师一样,他发现Minix虽然真的很棒,但是谭宁邦教授就是不愿意进行功能的加强,导致一堆工程师在操作系统功能上面的欲求不满!这个时候年轻的托瓦兹就想:『既然如此,那我何不自己来改写一个我想要的操作系统?』于是他就开始了核心程序的编写了。

编写程序需要什么呢?首先需要的是能够进行工作的环境,再来则是可以将源代码编译成为可执行文件的编译程序。好在有GNU计划提供的bash工作环境软件以及gcc编译程序等自由软件,让托瓦兹得以顺利的编写核心程序。他参考Minix的设计理念与书上的程序代码,然后仔细研究出386个人计算机的性能优化,然后使用GNU的自由软件将核心程序代码与386紧紧的结合在一起,最终写出他所需要的核心程序。而这个小玩意竟然真的可以在386上面顺利的跑起来,还可以读取Minix的文件系统。真是太好了!不过还不够,他希望这个程序可以获得大家的一些修改建议,于是他便将这个核心放置在网络上提供大家下载,同时在BBS上面贴了一则消息:

他说,他完成了一个小小的操作系统,这个核心是用在386机器上的,同时,他真的仅是好玩,并不是想要做一个跟GNU一样大的计划! 另外,他希望能够得到更多人的建议与回馈来发展这个操作系统!这个概念跟Minix刚好背道而驰呢!这则新闻引起很多人的注意,他们也去托瓦兹提供的网站上下载了这个核心来安装。有趣的是,因为托瓦兹放置核心的那个FTP网站的目录为:Linux,从此,大家便称这个核心为Linux了。(请注意,此时的Linux就是那个kernel。另外,托瓦兹所丢到该目录下的第一个核心版本为0.02呢!)

同时,为了让自己的Linux能够兼容于Unix系统,于是托瓦兹开始将一些能够在Unix上面运作的软件拿来在Linux上面跑。不过,他发现到有很多的软件无法在Linux这个核心上运作。这个时候他有两种作法,一种是修改软件,让该软件可以在Linux上跑,另一种则是修改Linux,让Linux符合软件能够运作的规范!由于Linux希望能够兼容于Unix,于是托瓦兹选择了第二个作法『修改Linux』!为了让所有的软件都可以在Linux上执行,于是托瓦兹开始参考标准的POSIX规范。

Tips:

POSIX是可移植操作系统接口(Portable Operating System Interface)的缩写,重点在规范核心与应用程序之间的接口,这是由美国电器与电子工程师学会(IEEE)所发布的一项标准。

这个正确的决定让Linux在起步的时候体质就比别人优良。因为POSIX标准主要是针对Unix与一些软件运行时候的标准规范,只要依据这些标准规范来设计的核心与软件,理论上,就可以搭配在一起执行了。而Linux的发展就是依据这个POSIX的标准规范,Unix上面的软件也是遵循这个规范来设计的,如此一来,让Linux很容易就与Unix兼容共享互有的软件了!同时,因为Linux直接放置在网络下,提供大家下载,所以在流通的速度上相当的快!导致Linux的使用率大增!这些都是造成Linux大受欢迎的几个重要因素。

Linux 的发展:虚拟团队的产生

Linux能够成功除了托瓦兹个人的理念与力量之外,其实还有个最重要的团队!

  • 单一个人维护阶段

Linux虽然是托瓦兹发明的,而且内容还绝不会涉及专利软件的版权问题。不过,如果单靠托瓦兹自己一个人的话,那么Linux要茁壮实在很困难,因为一个人的力量是很有限的。好在托瓦兹选择Linux的开发方式相当的务实!首先,他将释出的Linux核心放置在FTP上面,并请告知大家新的版本信息,等到使用者下载了这个核心并且安装之后,如果发生问题,或者是由于特殊需求亟需某些硬件的驱动程序,那么这些使用者就会主动回报给托瓦兹。在托瓦兹能够解决的问题范围内,他都能很快速的进行Linux核心的更新与除错。

  • 广大黑客志愿者加入阶段

不过,托瓦兹总是有些硬件无法取得的啊,那么他当然无法帮助进行驱动程序的编写与相关软件的改良。这个时候,就会有些志愿者跳出来说:『这个硬件我有,我来帮忙写相关的驱动程序。』因为Linux的核心是Open Source的,黑客志愿者们很容易就能够跟随Linux的原本设计架构,并且写出兼容的驱动程序或者软件。志愿者们写完的驱动程序与软件托瓦兹是如何看待的呢?首先,他将该驱动程序/软件带入核心中,并且加以测试。只要测试可以运行,并且没有什么主要的大问题,那么他就会很乐意的将志愿者们写的程序代码加入核心中!

总之,托瓦兹是个很务实的人,对于Linux核心所欠缺的项目,他总是『先求有且能跑,再求进一步改良』的心态!这让Linux使用者与志愿者得到相当大的鼓励!因为Linux的进步太快了!用户要求虚拟内存,结果不到一个星期推出的新版Linux就有了!这不得不让人佩服啊!

另外,为因应这种随时都有程序代码加入的状况,于是Linux便逐渐发展成具有模块的功能!亦即是将某些功能独立出于核心外,在需要的时候才加载到核心中。如此一来,如果有新的硬件驱动程序或者其他协议的程序代码进来时,就可以模块化,大大的增加了Linux核心的可维护能力!

Tips:
核心是一组程序,如果这组程序每次加入新的功能都得要重新编译与改版的话会变成如何?想象一下,如果你只是换了显示适配器就得要重新安装新的Windows操作系统,会不会傻眼?模块化之后,原本的核心程序不需要更动,你可以直接将他想成是『驱动程序』即可!

  • 核心功能细分工发展阶段

后来,因为Linux核心加入了太多的功能,光靠托瓦兹一个人进行核心的实际测试并加入核心原始程序实在太费力。结果,就有很多的朋友跳出来帮忙这个前置作业!例如考克斯(Alan Cox)、与崔迪(Stephen Tweedie)等等, 这些重要的副手会先将来自志愿者们的修补程序或者新功能的程序代码进行测试,并且结果上传给托瓦兹看,让托瓦兹作最后核心加入的源代码的选择与整并!这个分层负责的结果,让Linux的发展更加的容易!

特别值得注意的是,这些托瓦兹的Linux发展副手,以及自愿传送修补程序的黑客志愿者,其实都没有见过面,而且彼此在地球的各个角落,大家群策群力的共同发展出现今的Linux,我们称这群人为虚拟团队!而为了虚拟团队数据的传输,于是Linux便成立的核心网站: http://www.kernel.org

而这群素未谋面的虚拟团队们,在1994年终于完成的Linux的核心正式版!version 1.0。这一版同时还加入了X Window System的支持呢!更于1996年完成了2.0版。此外,托瓦兹指明了企鹅为Linux的吉祥物。

Tips:
奇怪的是,托瓦兹是因为小时候去动物园被企鹅咬了一口念念不忘,而正式的2.0推出时,大家要他想一个吉祥物。他在想也想不到什么动物的情况下,就将这个念念不忘的企鹅当成了Linux的吉祥物了

Linux由于托瓦兹是针对386写的,跟386硬件的相关性很强,所以,早期的Linux确实是不具有移植性的。不过,大家知道Open source的好处就是,可以修改程序代码去适合作业的环境。因此,在1994年以后,Linux便被开发到很多的硬件上面去了!目前除了x86之外,IBM、HP、Sun等等公司出的硬件也都有被Linux所支持呢!

Linux的核心版本

Linux的核心版本编号有点类似如下的样子:

如前所述,因为对于Linux核心的开发者太多了,以致于造成Linux核心经常性的变动。但对于一般家庭计算机或企业关键应用的话,常变动的核心并不适合的。因此托瓦兹便将核心的发展趋势分为两股,并根据这两股核心的发展分别给予不同的核心编号,那就是:

  • 主、次版本为奇数:发展中版本(development)
    如2.5.xx,这种核心版本主要用在测试与发展新功能,所以通常这种版本仅有核心开发工程师会使用。如果有新增的核心程序代码,会加到这种版本当中,等到众多工程师测试没问题后,才加入下一版的稳定核心中;
  • 主、次版本为偶数:稳定版本(stable)
    如2.6.xx,等到核心功能发展成熟后会加到这类的版本中,主要用在一般家庭计算机以及企业版本中。重点在于提供使用者一个相对稳定的Linux作业环境平台。

至于释出版本则是在主、次版本架构不变的情况下,新增的功能累积到一定的程度后所新释出的核心版本。而由于Linux核心是使用GPL的授权,因此大家都能够进行核心程序代码的修改。因此,如果你有针对某个版本的核心修改过部分的程序代码,那么那个被修改过的新的核心版本就可以加上所谓的修改版本了。

Linux核心版本与distribution的版本并不相同,很多朋友常常上网问到:『我的Linux是9.x版,请问….』之类的留言,这是不对的提问方式,因为所谓的Linux版本指的应该是核心版本,而目前最新的核心版本应该是2.6.30(2009/08) 才对,并不会有9.x的版本出现的。

你常用的Linux系统则应该说明为distribution才对!因此,如果以CentOS这个distribution来说, 妳应该说:『我用的Linux是CentOS这个 distribution,版本为5.x 版,请问….』才对喔!

Tips:
当你有任何问题想要在Linux论坛发言时,请务必仔细的说明你的distribution版本, 因为虽然各家distributions使用的都是Linux核心,不过每家distributions所选用的软件以及他们自己发展的工具并不相同, 多少还是有点差异,所以留言时得要先声明distribution的版本才行喔!

Linux distributions

经过上面的说明,我们知道了Linux其实就是一个操作系统最底层的核心及其提供的核心工具。他是GNU GPL授权模式,所以,任何人均可取得源代码与可执行这个核心程序,并且可以修改。此外,因为Linux参考POSIX设计规范,于是兼容于Unix操作系统,故亦可称之为Unix Like的一种。

  • 可完全安装的Linux发布套件

Linux的出现让GNU计划放下了心里的一块大石头,因为GNU一直以来就是缺乏了核心程序,导致他们的GNU自由软件只能在其他的Unix上面跑。既然目前有Linux出现了,且 Linux也用了很多的GNU相关软件,所以Stallman认为Linux的全名应该称之为GNU/Linux呢!不管怎么说,Linux实在很不错,让GNU软件大多以Linux为主要操作系统来进行开发,此外,很多其他的自由软件团队,例如sendmail, wu-ftp, apache等等也都有以Linux为开发测试平台的计划出现!如此一来,Linux除了主要的核心程序外,可以在Linux 上面运行的软件也越来越多,如果有心,就能够将一个完整的Linux操作系统搞定了!

虽然由Torvalds负责开发的Linux仅具有Kernel与Kernel提供的工具, 不过,如上所述,很多的软件已经可以在Linux上面运作了,因此,『Linux + 各种软件』就可以完成一个相当完整的操作系统了。 不过,要完成这样的操作系统……还真难。因为Linux早期都是由黑客工程师所开发维护的,他们并没有考虑到一般使用者的能力……

为了让使用者能够接触到Linux,于是很多的商业公司或非营利团体,就将Linux Kernel(含tools)与可运行的软件整合起来,加上自己具有创意的工具程序,这个工具程序可以让用户以光盘/DVD或者通过网络直接安装/管理Linux系统。 这个『Kernel + Softwares + Tools的可完全安装』的东西,我们称之为Linux distribution,一般中文翻译成可完全安装套件,或者Linux发布商套件等。

Tips:
由于Linux核心是由黑客工程师写的,要由原始码安装到x86计算机上面成为可以执行的binary档案,这个过程可不是人人都会的~所以早期确实只有工程师对Linux有兴趣。一直到一些社群与商业公司将Linux核心配合自由软件,并提供完整的安装程序, 且制成光盘/DVD后,对于一般使用者来说,Linux才越来越具有吸引力!因为只要一直『下一步』就可以将Linux安装完成啊。

由于GNU的GPL授权并非不能从事商业行为,于是很多商业公司便成立来贩卖Linux distribution。而由于Linux的GPL版权宣告,因此,商业公司所贩卖的Linux distributions通常也都可以从Internet上面来下载的! 此外,如果你想要其他商业公司的服务,那么直接向该公司购买光盘来安装,也是一个很不错的方式的!

  • 各大Linux Distributions的主要异同:支持标准!

不过,由于发展Linux distributions的社群与公司实在太多了,例如在台湾有名的Red Hat, SuSE, Ubuntu, Fedora, Debian等等,所以很多人都很担心,如此一来每个distribution是否都不相同呢?这就不需要担心了,因为每个Linux distributions使用的kernel都是http://www.kernel.org所发行的,而他们所选择的软件,几乎都是目前很知名的软件,重复性相当的高,例如网页服务器的Apache,电子邮件服务器的Postfix/sendmail,文件服务器的Samba等等。

此外,为了让所有的Linux distributions开发不致于差异太大,且让这些开发商在开发的时候有所依据,还有Linux Standard Base (LSB)等标准来规范开发者,以及目录架构的File system Hierarchy Standard (FHS)标准规范! 唯一差别的,可能就是该开发者自家所开发出来的管理工具,以及套件管理的模式吧! 所以说,基本上,每个Linux distributions除了架构的严谨度与选择的套件内容外,其实差异并不太大。大家可以选择自己喜好的distribution来安装即可!

  • FHS: http://www.pathname.com/fhs/
  • LSB: http://www.linuxbase.org/

Tips:
事实上鸟哥认为distributions主要分为两大系统,一种是使用RPM方式安装软件的系统,包括Red Hat, Fedora, SuSE等都是这类;一种则是使用Debian的dpkg方式安装软件的系统,包括Debian, Ubuntu, B2D等等。

到底是要买商业版还是社区版的Linux distribution呢?如果是要装在个人计算机上面做为桌面计算机用的,建议使用社区版,包括Fedora, Ubuntu, OpenSuSE等等。如果是用在服务器上面的,建议使用商业版本,包括Red Hat, SuSE等。这是因为社区版通常开发者会加入最新的软件,这些软件可能会有一些bug存在。至于商业版则是经过一段时间的磨合后,才将稳定的软件放进去。

举例来说,Fedora出来的软件套件经过一段时间的维护后,等到该软件稳定到不容易发生错误后,Red Hat才将该软件放到他们最新的发行版本中。所以,Fedora的软件比较经常改版,Red Hat的软件就较少更版。

  • 选择适合你的Linux distribution

那我到底应该要选择哪一个distributions?就如同我们上面提到的,其实每个distributions差异性并不大!不过,由于套件管理的方式主要分为Debian的dpkg及Red Hat系统的RPM方式,目前鸟哥的建议是,先学习以RPM套件管理为主的RHEL/Fedora/SuSE/CentOS等台湾使用者较多的版本,这样一来,发生问题时,可以提供解决的管道比较多。如果你已经接触过Linux了,还想要探讨更严谨的Linux版本,那可以考虑使用Debian,如果你是以效能至上来考虑,那么或许Gentoo是不错的建议!

总之,版本很多,但是各版本差异其实不大,建议你一定要先选定一个版本后, 先彻头彻尾的了解他,那再继续玩其他的版本时,就可以很快的进入状况。鸟哥的网站仅提供一个版本,不过是以比较基础的方式来介绍的,因此,如果能够熟练俺这个网站的话,哪一个distributions对你来说,都不成问题啦!

不过,如果依据计算机主机的用途来分的话,在鸟哥会这样建议:

  • 用于企业环境:建议使用商业版本,例如Red Hat的RHEL或者是Novell的SuSE都是很不错的选择! 毕竟企业的环境强调的是可持续的经营,你可不希望网管人员走了之后整个机房的主机都没有人管理吧!由于商业版本都会提供客户服务,所以可以降低企业的风险喔!
  • 用于个人或教学的服务器环境:要是你的服务器所在环境如果当机还不会造成太大的问题的话, 加上你的环境是在教学的场合当中时(就是说,唔!经费不足的环境啦!)那么可以使用『号称』完全兼容商业版RHEL的CentOS。 因为CentOS是抓RHEL的源代码来重新打包起来的一个Linux distribution,所以号称兼容于RHEL。 这一版的软件完全与RHEL相同,在改版的幅度较小,适合于服务器系统的环境;
  • 用于个人的桌面计算机:想要尝鲜吗?建议使用很炫的Fedora/Ubuntu等Desktop(桌面环境)使用的版本! 如果不想要安装Linux的话,那么Fedora或CentOS也有推出Live CD了!也很容易学习喔!

Linux的特色

那么这个系统有什么特异功能呢?简单的说:

  • 自由与开放的使用与学习环境:

由于Linux是基于GPL的授权之下,因此他是自由软件,也就是任何人都可以自由的使用或者是修改其中的源代码的意思!这种开放性架构对科学界来说是相当重要的!因为很多的工程师由于特殊的需求,常常需要修改系统的源代码,使该系统可以符合自己的需求!而这个开放性的架构将可以满足各不同需求的工程师!因此当然就有可能越来越流行。

  • 配备需求低廉:

Linux可以支持个人计算机的x86架构,系统资源不必像早先的Unix系统那般,仅适合于单一公司所出产的设备!单就这一点来看,就可以造成很大的流行啰!不过,如果你想要在Linux下执行X Window系统, 那么硬件的等级就不能太低了!

  • 核心功能强大而稳定:

而且由于Linux功能并不会输给一些大型的Unix工作站,因此,近年来越来越多的公司或者是团体、个人投入这一个操作系统的开发与整合工作!例如IBM与升阳公司都有推出x86的Linux服务器呢!

  • 独立作业:

另外,由于很多的软件套件逐渐被这套操作系统拿来使用,而很多套件软件也都在 Linux这个操作系统上面进行发展与测试,因此,Linux近来已经可以独力完成几乎所有的工作站或服务器的服务了,例如 Web, Mail, Proxy, FTP…..。

目前Linux已经是相当成熟的一套操作系统,而且不耗资源又可以自由取得!可以说造成微软相当大的压力呀!此外,由于他的系统硬件要求很低,加上目前很多的人由于『Intel 的阴谋』而造成手边有相当多的淘汰掉的硬件配备,Linux在这些被淘汰的硬件中就可以执行的相当的顺畅与稳定!因此也造成相当多朋友的关注啰!

Linux的优缺点

那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点:

  • 稳定的系统:

Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Unix系统相似的程序接口跟操作方式,当然也继承了Unix稳定并且有效率的特点。常听到安装Linux的主机连续运做一年以上而不曾当机、 不必关机是稀松平常的事;

  • 免费或少许费用:

由于Linux是基于GPL授权下的产物,因此任何人皆可以自由取得Linux, 至于一些『安装套件』的发行者,他们发行的安装光盘也仅需要些许费用即可获得!不同于Unix需要负担庞大的版权费用,当然也不同于微软需要一而再、 再而三的更新你的系统,并且缴纳大量费用。

  • 安全性、漏洞的快速修补:

如果你常玩网络的话,那么你最常听到的应该是『没有绝对安全的主机』! 没错!不过Linux由于支持者日众,有相当多的热心团体、个人参与其中的开发,因此可以随时获得最新的安全信息,并给予随时的更新,亦即是具有相对的较安全!

  • 多任务、多使用者:

与Windows系统不同的,Linux主机上可以同时允许多人上线来工作, 并且资源的分配较为公平,比起Windows的单人多任务系统要稳定的多啰! 这个多人多任务可是Unix-Like上面相当好的一个功能,怎么说呢?你可以在一部 Linux主机上面规划出不同等级的用户,而且每个用户登入系统时的工作环境都可以不相同,此外,还可以允许不同的使用者在同一个时间登入主机,同时使用主机的资源。

  • 使用者与群组的规划:

在Linux的机器中,档案的属性可以分为『可读、可写、可执行』 等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类,分别是『档案拥有者、档案所属群组、其他非拥有者与群组者』。这对于项目计划或者其他计划开发者具有相当良好的系统保密性。

  • 相对比较不耗资源的系统:

Linux只要一部P-III以上等级的计算机就可以安装并且使用愉快啰!还不需要到P-4或AMD K8 等级的计算机呢!不过,如果你要架设的是属于大型的主机(服务上百人以上的主机系统),那么就需要比较好一点的机器了。不过,目前市面上任何一款个人计算机均可以达到这一个要求。

  • 适合需要小核心程序的嵌入式系统:

由于Linux只要几百K不到的程序代码就可以完整的驱动整个计算机硬件并成为一个完整的操作系统,因此相当适合于目前家电或者是小电子用品的操作系统呢!那就是当红炸子鸡『嵌入式』系统啦!Linux真的是很适合例如手机、数字相机、PDA、家电用品等等的微计算机操作系统。

  • 整合度佳且多样的图形用户接口(GUI):

自从1994年Linux 1.0后就加入的X Window系统,在众多黑客的努力之下终于与Linux有高度整合,且主要的绘图卡公司(Intel, NVidia, ATI等)都有针对Linux推出最新的驱动程序, 因此Linux的GUI已经有长足的进步了!另外,Linux环境下的图形接口不只有一种呢! 包括大家耳熟能详的KDE(http://www.kde.org/)以及GNOME(http://www.gnome.org)都是很常见的!

反正Linux好处说不完啦!不过虽然Linux具有这样多的好处,但是他先天上有一个足以致命的地方,使他的普及率受到很大的限制,就是Linux需要使用『指令列』的终端机模式进行系统的管理!虽然近年来有很多的图形接口开发使用在Linux上面,但毕竟要熟悉Linux还是以指令列来使用是比较好的,因此要接受Linux的玩家必须比较要能熟悉对计算机下指令的行为,而不是用鼠标点一点icon就行了!Linux 还可以改进的地方:

  • 没有特定的支持厂商:

因为在Linux上面的所有套件几乎都是自由软件,而每个自由软件的开发者可能并不是公司团体,而是非营利性质的团体。如此一来,在你Linux主机上面的软件若发生问题,该如何是好?好在由于目前Linux商业界的整合还不错,目前在台湾比较具名的Red Hat与SuSE 均有设立了服务点。你可以经由这个服务点来直接向他们购买/咨询相关的软硬件问题呢! 不过,如果你并非选择有专门商业公司的Linux distributions时?怎么办? 没有专人到府服务,这点倒是还不需要太担心, 因为拜网络风行之赐,你要问的问题几乎在网络上都可以找到答案喔!看你有没有用心去找就是了!

  • 游戏的支持度不足:

在现代这个时候,敢说你们家的桌面计算机里面完全没有游戏的小朋友应该不多了!游戏软件也是个应用程序,所以它与操作系统的关系就相当密切了。可惜的是目前很多游戏开发商并没有在Linux平台上面开发大型游戏,这间接导致Linux无法进入一般家庭说。

  • 专业软件的支持度不足:

这是鸟哥到学校教书后才发现的一件事,目前很多专业绘图软件公司所推出的专业软件并不支持Linux操作系统,这让同学很难在不同的平台上面操作相同的软件!唉!很伤脑筋~

  • 教育训练作的还不够好:

如果能够在国小就教导小朋友使用自由软件,那么长大自然就会使用自由软件了!在台湾目前政策方面还是相当的摇摆不定,希望未来能够给自由软件一些机会。

老实说,这些缺点绝大部分都不是Linux本身的问题,倒是一些政策面与商业方面的考虑,才是最大的困扰。不过,Linux与其他的操作系统一样,就是一个工具而已!希望大家能够在快乐中学习到Linux的精髓。

关于授权

  • Open Source (开放源码)

软件以Open Source的方式释出时,表示除了可执行的软件本身外,一定伴随着源代码的释出喔!通常Open Source的软件有几个好处:

  1. 程序设计师通常会等到程序成熟之后才会发行,所以通常程序在雏形的时候,就已经具有相当的优良体质;
  2. Open Source的精神,相信当程序原设计人将程序源代码释出之后,其他的程序设计师接受这份源代码之后,由于需要将程序改成自己所需的样式,所以会经由本身的所学来加以改良,并从中加以改良与除虫,所以程序的debug功能会比传统的close source来的快!
  3. 由于程序是伴随源代码的,因此,系统将会不易存在鲜为人知的木马程序或一些安全漏洞,相对而言,会比较更加的安全!

Open source的代表授权为GNU的GPL授权及BSD等等,底下列出知名的Open Source授权网页:

  • GNU General Public License:
    http://www.gnu.org/licenses/licenses.html#GPL
    目前有version 2, version 3两种版本,Linux使用的是version 2这一版。 鸟哥也有收集一份GPL version 2 的中文化条文,您可以参考:http://cn.linux.vbird.org/linux_basic/1010appendix_A.php
  • Berkeley Software Distribution (BSD):
    http://en.wikipedia.org/wiki/BSD_license
    使用BSD source code最常接触到的就是BSD授权模式了!这个授权模式其实与GPL很类似, 而其精神也与Open Source相呼应呢!
  • Apache License, Version 2.0:
    http://www.apache.org/licenses/LICENSE-2.0
    Apache是一种网页服务器软件,这个软件的发布方式也是使用Open source的。只是在apache的授权中规定, 如果想要重新发布此软件时(如果你有修改过该软件),软件的名称依旧需要定名为Apache才行!
  • Close Source

相对于Open Source的软件会释出源代码,Close source的程序则仅推出可执行的二进制程序(binary program)而已。 这种软件的优点是有专人维护,你不需要去变动他;缺点则是灵活度大打折扣,用户无法变更该程序成为自己想要的样式! 此外,若有木马程序或者安全漏洞,将会花上相当长的一段时间来除错!这也是所谓专利软件(copyright)常见的软件出售方式。

虽然专利软件常常代表就是需要花钱去购买,不过有些专利软件还是可以免费提供大众使用的!免费的专利软件代表的授权模式有:

  • Freeware:
    http://en.wikipedia.org/wiki/Freeware
    不同于Free software,Freeware为『免费软件』而非『自由软件!』虽然它是免费的软件,但是不见得要公布其源代码, 要看发行者的意见啰!这个东西与Open Source毕竟是不太相同的东西喔!此外,目前很多标榜免费软件的程序很多都有小问题!例如假借免费软件的名义,实施用户数据窃取的目的!所以『来路不明的软件请勿安装!』
  • Shareware:
    http://en.wikipedia.org/wiki/Shareware
    共享件这个名词就有趣了!与免费软件有点类似的是,Shareware在使用初期,它也是免费的,但是,到了所谓的『试用期限』之后,你就必须要选择『付费后继续使用』或者『将它移除』的宿命。通常,这些共享件都会自行编写失效程序,让你在试用期限之后就无法使用该软件。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注