Linux是Torvalds先生所开发出来的,基于GPL的版权宣告之下,可以在x86的架构下运作,也可以被移植到其他的大型主机上面。 由于开发的相关理念与兼容的问题,因此,我们也可以称Linux为Unix Like操作系统的一种。
其实Unix-Like可以说是目前服务器类型的操作系统的统称啦! 因为,不论是FreeBSD, BSD, Sun Unix, HP Unix, Red Hat Linux, Mandrake Linux等等,都是由同一个祖先Thompson所写的『Unix』来的, 因此,这些咚咚都被统称为Unix-Like的操作系统啰!
1、Linux的特色
那么这个系统有什么特异功能呢?简单的说:
(1)自由与开放的使用与学习环境
由于Linux是基于GPL的授权之下,因此他是自由软件, 也就是任何人都可以自由的使用或者是修改其中的原始码的意思! 这种开放性架构对科学界来说是相当重要的! 因为很多的工程师由于特殊的需求,常常需要修改系统的原始码, 使该系统可以符合自己的需求!而这个开放性的架构将可以满足各不同需求的工程师! 因此当然就有可能越来越流行啰!以鸟哥来说,目前环境工程界的空气质量模式最新版 Models-3/CMAQ 就是以Linux为基准平台设计的呢!
(2)配备需求低廉
Linux可以支持个人计算机的x86架构,系统资源不必像早先的Unix系统那般,仅适合于单一公司所出产的设备! 单就这一点来看,就可以造成很大的流行啰!不过,如果你想要在Linux下执行X Window系统, 那么硬件的等级就不能太低了!
(3)核心功能强大而稳定
而且由于Linux功能并不会输给一些大型的Unix工作站,因此,近年来越来越多的公司或者是团体、 个人投入这一个操作系统的开发与整合工作!例如IBM与升阳公司都有推出x86的Linux服务器呢
(4)独立作业
另外,由于很多的软件套件逐渐被这套操作系统拿来使用,而很多套件软件也都在 Linux这个操作系统上面进行发展与测试,因此,Linux近来已经可以独力完成几乎所有的工作站或服务器的服务了,例如 Web, Mail, Proxy, FTP.....
目前Linux已经是相当成熟的一套操作系统啰!而且不耗资源又可以自由取得!呵呵, 可以说造成微软相当大的压力呀!此外,由于他的系统硬件要求很低, 加上目前很多的人由于『Intel 的阴谋』而造成手边有相当多的淘汰掉的硬件配备, Linux在这些被淘汰的硬件中就可以执行的相当的顺畅与稳定!因此也造成相当多朋友的关注啰!
这也是造成Linux成为最近几年来最受瞩目的操作系统之一,如前所述, 他会受到瞩目的原因主要是因为他是『free』的,就是可以自由取得的操作系统啦! 然后他是开放性的系统,也就是你可以随时的取得程序的原始码,这对于程序开发工程师是很重要的! 而且,虽然他是Free的自由软件,不过功能却很强大!另外, Linux对于硬件的需求是很低的,这一点更造成它流行的主因,因为硬件的汰换率太快了, 所以很多人手边都有一些很少在用的零件,这些零件组一组就可以用来跑Linux了, 反正做一个工作站又不用使用到屏幕(只要主机就可以啰),因此Linux就越来越流行啰!
也就是因为Linux具有 1.硬件需求低、 2.架构开放、 3.系统稳定性及保密性功能够强、 4.完全免费,所以造成一些所谓『反微软联盟』的程序设计高手不断的开发新软件!以与Microsoft进行抗衡!
2、Linux的优缺点
(1)Linux优点
那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点:
1. 稳定的系统:
Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Unix系统相似的程序接口跟操作方式, 当然也继承了Unix稳定并且有效率的特点。常听到安装Linux的主机连续运做一年以上而不曾当机、 不必关机是稀松平常的事;
2.免费或少许费用:
由于Linux是基于GPL授权下的产物,因此任何人皆可以自由取得Linux, 至于一些『安装套件』的发行者, 他们发行的安装光盘也仅需要些许费用即可获得!不同于Unix需要负担庞大的版权费用,当然也不同于微软需要一而再、 再而三的更新你的系统,并且缴纳大量费用啰!
3.安全性、漏洞的快速修补:
如果你常玩网络的话,那么你最常听到的应该是『没有绝对安全的主机』! 没错!不过Linux由于支持者日众,有相当多的热心团体、个人参与其中的开发, 因此可以随时获得最新的安全信息,并给予随时的更新,亦即是具有相对的较安全!
4.多任务、多使用者:
与Windows系统不同的,Linux主机上可以同时允许多人上线来工作, 并且资源的分配较为公平,比起Windows的单人多任务系统要稳定的多啰! 这个多人多任务可是Unix-Like上面相当好的一个功能,怎么说呢?你可以在一部 Linux主机上面规划出不同等级的用户,而且每个用户登入系统时的工作环境都可以不相同, 此外,还可以允许不同的使用者在同一个时间登入主机,同时使用主机的资源。
5.使用者与群组的规划:
在Linux的机器中,档案的属性可以分为『可读、可写、可执行』 等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类, 分别是『档案拥有者、档案所属群组、其他非拥有者与群组者』。 这对于项目计划或者其他计划开发者具有相当良好的系统保密性。
6.相对比较不耗资源的系统:
Linux只要一部P-III以上等级的计算机就可以安装并且使用愉快啰!还不需要到P-4或AMD K8 等级的计算机呢!不过,如果你要架设的是属于大型的主机(服务上百人以上的主机系统), 那么就需要比较好一点的机器了。不过,目前市面上任何一款个人计算机均可以达到这一个要求啰!
7.适合需要小核心程序的嵌入式系统:
由于Linux只要几百K不到的程序代码就可以完整的驱动整个计算机硬件并成为一个完整的操作系统, 因此相当适合于目前家电或者是小电子用品的操作系统呢!那就是当红炸子鸡『嵌入式』系统啦! Linux真的是很适合例如手机、数字相机、PDA、家电用品等等的微计算机操作系统呢!
8.整合度佳且多样的图形用户接口(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就行了!
(2)Linux 缺点
Linux还可以改进的地方:
1.没有特定的支持厂商:
因为在Linux上面的所有套件几乎都是自由软件,而每个自由软件的开发者可能并不是公司团体, 而是非营利性质的团体。如此一来,在你Linux主机上面的软件若发生问题,该如何是好? 好在由于目前Linux商业界的整合还不错,目前在台湾比较具名的Red Hat与SuSE 均有设立了服务点。你可以经由这个服务点来直接向他们购买/咨询相关的软硬件问题呢! 不过,如果你并非选择有专门商业公司的Linux distributions时?怎么办? 没有专人到府服务呢~这点倒是还不需要太担心, 因为拜网络风行之赐,你要问的问题几乎在网络上都可以找到答案喔!看你有没有用心去找就是了!
2.游戏的支持度不足:
在现代这个时候,敢说你们家的桌面计算机里面完全没有游戏的小朋友应该不多了! 游戏软件也是个应用程序,所以它与操作系统的关系就相当密切了。 可惜的是目前很多游戏开发商并没有在Linux平台上面开发大型游戏,这间接导致Linux无法进入一般家庭说。
3.专业软件的支持度不足:
这是鸟哥到学校教书后才发现的一件事,目前很多专业绘图软件公司所推出的专业软件并不支持Linux操作系统, 这让同学很难在不同的平台上面操作相同的软件!唉!很伤脑筋~
4.教育训练作的还不够好:
如果能够在国小就教导小朋友使用自由软件,那么长大自然就会使用自由软件了! 在台湾目前政策方面还是相当的摇摆不定,希望未来能够给自由软件一些机会。
老实说,这些缺点绝大部分都不是Linux本身的问题,倒是一些政策面与商业方面的考虑,才是最大的困扰。
3、关于授权 现在市面上有好多的软件,有的是自由软件,有的是专利软件。有的专利软件免费,有的自由软件要钱~ 啊!好烦啊!怎么分辨这些东西?其实,鸟哥并不是律师,对于法律也不十分懂,不过, 还是有几个授权模式可以来谈一谈~ (1)Open Source软件 软件以Open Source的方式释出时,表示除了可执行的软件本身外,一定伴随着原始码的释出喔!通常Open Source的软件有几个好处: - 程序设计师通常会等到程序成熟之后才会释出(免得被笑, ^_^),所以通常程序在雏形的时候,就已经具有相当的优良体质;
- Open Source的精神,相信当程序原设计人将程序原始码释出之后,其他的程序设计师接受这份原始码之后, 由于需要将程序改成自己所需的样式,所以会经由本身的所学来加以改良,并从中加以改良与除虫, 所以程序的debug功能会比传统的close source来的快!
- 由于程序是伴随原始码的,因此,系统将会不易存在鲜为人知的木马程序或一些安全漏洞, 相对而言,会比较更加的安全!
Open source的代表授权为GNU的GPL授权及BSD等等,底下列出知名的Open Source授权网页:
(2)Close Source 相对于Open Source的软件会释出原始码,Close source的程序则仅推出可执行的二进制程序(binary program)而已。 这种软件的优点是有专人维护,你不需要去更动他;缺点则是灵活度大打折扣,用户无法变更该程序成为自己想要的样式!
此外,若有木马程序或者安全漏洞,将会花上相当长的一段时间来除错!这也是所谓专利软件(copyright)常见的软件出售方式。 虽然专利软件常常代表就是需要花钱去购买,不过有些专利软件还是可以免费提供大众使用的! 免费的专利软件代表的授权模式有: 不同于Free software,Freeware为『免费软件』而非『自由软件!』虽然它是免费的软件,但是不见得要公布其原始码, 端看释出者的意见啰!这个东西与Open Source毕竟是不太相同的东西喔!此外,目前很多标榜免费软件的程序很多都有小问题! 例如假藉免费软件的名义,实施用户数据窃取的目的! 所以『来路不明的软件请勿安装!』
共享件这个名词就有趣了!与免费软件有点类似的是,Shareware在使用初期,它也是免费的,但是, 到了所谓的『试用期限』之后,你就必须要选择『付费后继续使用』或者『将它移除』的宿命~ 通常,这些共享件都会自行撰写失效程序,让你在试用期限之后就无法使用该软件。
重点回顾
- 计算机主要以二进制作为单位,而目前常用的磁盘容量单位为bytes,其单位换算为1Byte = 8bits, 其他的以1024为其倍数,如 1GByte=1024MBytes等等。
- 操作系统(Operation System)主要在管理与驱动硬件,因此必须要能够管理内存、管理装置、 负责行程管理以及系统呼叫等等。因此,只要能够让硬件准备妥当(Ready)的情况, 就是一个阳春的操作系统了。
- 最阳春的操作系统仅在驱动与管理硬件,而要使用硬件时,就得需要透过应用软件或者是壳程序(shell) 的功能,来呼叫操作系统操纵硬件工作。因此,目前称为操作系统的, 除了上述功能外,通常已经包含了日常工作所需要的应用软件在内了。
- Unix的前身是由贝尔实验室(Bell lab.)的Ken Thompson利用汇编语言写成的, 后来在1971-1973年间由Dennis Ritchie以C程序语言进行改写,才称为Unix。
- 1977年由Bill Joy释出BSD (Berkeley Software Distribution),这些称为Unix-like的操作系统。
- 1984年由Andrew Tanenbaum制作出Minix操作系统,该系统可以提供原始码以及软件;
- 1984年由Richard Stallman提倡GNU计划,倡导自由软件(Free software), 强调其软件可以『自由的取得、复制、修改与再发行』,并规范出GPL授权模式, 任何GPL(General Public License)软件均不可单纯仅贩卖其软件,也不可修改软件授权。
- 1991年由芬兰人Linus Torvalds开发出Linux操作系统。简而言之,Linux成功的地方主要在于: Minix(Unix), GNU, Internet, POSIX 及虚拟团队的产生。
- Linux本身就是个最阳春的操作系统,其开发网站设立在http://www.kernel.org,我们亦称Linux操作系统最底层的数据为『核心(Kernel)』。
- 目前Linux核心的发展分为两种版本,分别是稳定版本的偶数版,如2.6.X,适合于商业与家用环境使用; 一种是发展中版本的奇数版如2.5.X 版,适合开发特殊功能的环境。
- Linux distributions的组成含有:『Linux Kernel + Free Software + Documentations(Tools) + 可完全安装的程序』所制成的一套完整的系统。
本章习题
(要看答案请将鼠标移动到『答:』底下的空白处,按下左键圈选空白处即可察看)
实作题部分:
- 请依据本章内容的说明,下载 Fedora 最新版本的 Live CD ,并将该 Live CD 刻录成为光盘 (或 DVD) 后, 调整你的主机 BIOS 成为使用光驱开机,在开机时放入刚刚刻录的 Live CD ,使用该光驱开机。在开机后你应该能够进入系统。 请进入该系统,尝试打开终端机、浏览器等,并尝试操作一下该系统。由于该系统并不会影响到你的硬盘数据, 请尽量玩玩!
- 承上题,打开终端机并且输入『 uname -r 』这个指令,出现的核心版本为何?是稳定还是发展中版本?
- 请上网找出目前 Linux 核心的最新稳定版与发展中版本的版本号码,请注明查询的日期与版本的对应。
- 请上网找出 Linux 的吉祥物企鹅的名字,以及最原始的图档画面。(提示:请前往 http://www.linux.org 查阅)
简答题部分:
- 你在你的主机上面安装了一张网络卡,但是开机之后,系统却无法使用,你确定网络卡是好的,那么可能的问题出在哪里?该如何解决?
因为所有的硬件都没有问题,所以,可能出问题的地方在于系统的核心(kernel) 不支持这张网络卡。解决的方法,(1)到网络卡的开发商网站,(2)下载支持你主机操作系统的驱动程序, (3)安装网卡驱动程序后,就可以使用了。
- 我在一部主机上面安装Windows操作系统时,并且安装了显示适配器的驱动程序,他是没有问题的。但是安装Linux时,却无法完整的显示整个X Window。请问,我可不可以将Windows上面的显示适配器驱动程序拿来安装在Linux上?
不行!因为核心不同,针对硬件所写的驱动程序也会不相同,编译程序也不同,当然,驱动程序也无法在两个操作系统间兼容。 这也是为何开发商在他们的网站上面,都会同时提供许多不同操作系统的驱动程序之故。
- 一个操作系统至少要能够完整的控制整个硬件,请问,操作系统应该要控制硬件的哪些单元?
根据硬件的运作,以及数据在主机上面的运算情况与写入/读取情况,我们知道至少要能够控制: (1)input/output control, (2)device control, (3)process management, (4)file management. 等等!
- 一个GBytes的硬盘空间,等于几个KBytes?
1GBytes = 1024 MBytes * 1024 KBytes/MBytes = 1048576 KBytes
- 我在Windows上面玩的游戏,可不可以拿到Linux去玩?
当然不行!因为游戏也是一个应用程序 (application),他必须要使用到核心所提供的工具来开发他的游戏, 所以这个游戏是不可在不同的平台间运作的。除非这个游戏已经进行了移植。
Linux本身仅是一个核心与相关的核心工具而已,不过,他已经可以驱动所有的硬件, 所以,可以算是一个很阳春的操作系统了。经过其他应用程序的开发之后,被整合成为Linux distribitions。
- 请问众多的distributions之间,有何异同?
相同:
(1)同样使用 http://www.kernel.org 所释出的核心; (2)支持同样的标准,如 FHS、LSB 等; (3)使用几乎相同的自由软件 (例如 GNU 里面的 gcc/glibc/vi/apache/bind/sendmail... ); (4)几乎相同的操作接口 (例如均使用 bash/KDE/GNOME 等等)。
不同:
使用的 kernel 与各软件的版本可能会不同;各开发商加入的应用工具不同,使用的套件管理模式不同(dpkg 与 RPM)
- Unix 是谁写出来的? GNU 计划是谁发起的?
Unix 是 Ken Thompson 写的,1973 年再由 Dennis Ritchie 以 C 语言改写成功。 至于 GNU 与 FSF 则是 Richard Stallman 发起的。
GNU 是 GNU is Not Unix 的简写,是个无穷循环! 另外,这个计划是由自由软件基金会 (Free Software Foundation, FSF) 所支持的! 两者都是由 Stallman 先生所发起的!
- 何谓多人 ( Multi-user ) 多任务 ( Multitask )?
Multiuser 指的是 Linux 允许多人同时连上主机之外,每个用户皆有其各人的使用环境,并且可以同时使用系统的资源!
Multitask 指的是多任务环境,在 Linux 系统下, CPU 与其他例如网络资源可以同时进行多项工作, Linux 最大的特色之一即在于其多任务时,资源分配较为平均!
- 简单说明 GNU General Public License ( GPL ) 与 Open Source 的精神:
1. GPL 的授权之软件,乃为自由软件(Free software),任何人皆可拥有他; 2. 开发 GPL 的团体(或商业企业)可以经由该软件的服务来取得服务的费用; 3. 经过 GPL 授权的软件,其属于 Open source 的情况,所以应该公布其原始码; 4. 任何人皆可修改经由 GPL 授权过的软件,使符合自己的需求; 5. 经过修改过后 Open source 应该回馈给 Linux 社群。
- 什么是 POSIX ?为何说 Linux 使用 POSIX 对于发展有很好的影响?
POSIX 是一种标准规范,主要针对在 Unix 操作系统上面跑的程序来进行规范。 若你的操作系统符合 POSIX ,则符合 POSIX 的程序就可以在你的操作系统上面运作。 Linux 由于支持 POSIX ,因此很多 Unix 上的程序可以直接在 Linux 上运作, 因此程序的移植相当简易!也让大家容易转换平台,提升 Linux 的使用率。
主要分为奇数的发展中版本(develop),如 2.5 ,及偶数的稳定版本,如 2.6 。
从以下几点入手:
1.藉Minix 操作系统开发的 Unix like ,没有版权的纠纷;
2.藉助于 GNU 计划所提供的各项工具软件, gcc/bash 等;
3.藉由 Internet 广为流传;
4.藉由支持 POSIX 标准,让核心能够适合所有软件的开发;
5.托瓦兹强调务实,虚拟团队的自然形成!
参考数据与延伸阅读
维基百科:http://en.wikipedia.org/wiki/POSIX
IEEE POSIX标准:http://standards.ieee.org/regauth/posix/
|