Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10804033
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-06-02 01:32:59

看到网路上有许多新手,在使用 Linux 的过程中遇到很多问题,当然也有
不少热心的老手很愿意照顾这些新手们,只是看看新手们 po 出来的问题,
有的内容很笼统,有的则是不知所云,这样会增加许多老手在回答问题方面
的困难度,因為反覆看了半天也找不出问题的核心究竟在那裡。
当然,能够自己去找出问题的答案是很好的,只是对於非资讯科学系出身的
人来说,网路上一大堆专业文件也很难看得懂,了解 Linux 的人会觉得它
比 Windows 好,不了解的人也许连开机都成问题。
在这裡有一个很重要很重要的观念必须要强调:Linux 的核心架构完完全全
不同於 Windows,因此千万不要抱著使用 Windows 的心态来研究 Linux,
否则会遭遇到很严重的挫折。
Linux 是一个 32 位元的多人多工的大型企业用伺服器作业系统。Windows
只有 NT 的系列產品才可以勉强算是 32 位元的產品,然而一直到了 XP 的
时代,NT 系列的核心架构才算是追上了 Linux 的水準。
Linux 最大的缺点就是桌面环境的整合度不像 Windows 那麼好,然而伺服
器若採用 XP 產品,其稳定性还可以,但是效率上却不如 Linux。
在以下的文章裡面,有三个重点要详加讨论一下:
第一,什麼是伺服器?
第二,什麼是多人多工作业系统?
第三,Linux 的核心架构究竟跟 Windows 有什麼不同的地方?
以上三个重点谈完了,最后就以各发行版的比较及常见问题做结束。
首先来谈谈伺服器。在一般人的观念裡,伺服器很可能只是拿来架网路的,但
事实上,古早的伺服器是一种“性能和价格都比一般终端机更可怕的电脑”,
而且这样的概念一直到今天也还是一样。
伺服器的特点就是多个 CPU 同时进行资料处理以及运算的工作,而且体积庞
大,发出的热量也高,因此一套大型企业用伺服器必须要花上不少成本去运作
,去维护。也正因為大型的企业用伺服器价格昂贵,所以古早时期的企业,有
一套这样的机房设备就很了不起了。像这样的设备当然是要给全公司的人使用
的,因此企业内部的区域网路概念就这样成形了。
想使用这套大型伺服系统的人,只要在自己的办公室裡,透过“终端机”这样
的设备,就可以使用伺服器的储存设备,以及处理器的运算资源。终端机的原
始概念并不是一台电脑,只是一个萤幕,它的目的是要让使用者透过网路接收
来自伺服器的讯息。也许它有中央处理器,但是功能也很简单,只是单纯地处
理 I/O 等资料输出入的工作而已。而且重点是,它很便宜。
自从终端机有了中央处理器,也就是 CPU 之后,终端机才摇身一变而成為个人
电脑,也就是 PC (Personal Computer)。当时个人电脑的代名词就是 Apple,
也就是现今的 Mac。
当年的 Apple 刚推出的时候,只有单色萤幕,而且价格昂贵。所使用的储存
设备是磁带机,而不是磁碟机。伺服器系统所使用的储存设备也是磁带机,
Linux 有一个指令:tar,就是将资料打包之后,存进磁带机用的指令。
当时的大型企业用伺服器,所使用的作业系统,是由 AT&T 的贝尔实验室所
研发的 UNIX,是一套售价极為昂贵的作业系统。后来為了教学用途,AT&T
提供了 UNIX 的“部份”原始码给柏克莱大学,也就是 BSD (Berkley
Software Distribution),现今所谓的 Free BSD,绝对不是免费的意思!
而是指“开放原始码”的意思。
UNIX 当年是一套需要收费的大型伺服器作业系统,Sun Microsystem 的创
办人裡面,有一位 Bill Joy 就是柏克莱大学的研究生。微软的掘起是在个
人电脑的领域方面,当时的个人电脑尚无法运作 UNIX 这样的大型电脑作业
系统,因為当时的个人电脑只有 8 位元。而微软的 DOS 產品,严格来说也
不算是作业系统,而是一套“磁碟操作系统”,因此 DOS 的主要功能是在於
资料的 I/O 上头,这也是為什麼採用 DOS 作业系统的个人电脑大多被拿来
用作文书处理的缘故。
令人讶异的是,个人电脑在很短的时间内急速发展,功能也有著突飞猛进的
发展,使得微软作业系统横扫全世界的个人电脑市场,甚至威胁到了
Sun Microsystem 的伺服器市场,这也是為什麼 Sun 一直视微软為最大竞
争对手的缘故。
既然当年的 UNIX 是要钱的,那麼免费的 Linux 是怎麼来的?原来柏克莱大
学的教授将学术研究用的部份 UNIX 原始码以自由的形式公开,这使得拥有
版权的 AT&T 很不高兴,控告了柏克莱大学,但因為 AT&T 后来因為独佔的
罪名被法院拆解成七家子公司,最后卖给了 Novell,因此这场官司最后也就
不了了之。
UNIX 的原始码后来被一名麻省理工学院的人工智慧实验室教授
Richard M. Stallman 所发展的 GNU 计画给散播到了全世界。这位教授希
望让全世界的人都来使用这有史以来最棒的作业系统,所谓的 GNU 就是一套
全新的大眾化 UNIX 作业系统,跟原先的 UNIX 已经不一样了,因此由他所
创办的自由软体基金会有一个很有名的宣言: GNU is Not Unix。
原本的 UNIX 核心 (kernel),并不适合一般的个人电脑使用,它是一个像恐
龙一样庞大而又笨重的家伙,因此有了微核心的概念,接著又有了 Minix,
这是 Andrew Tanenbaum 教授為教学目的撰写的作业系统。在教育界可算是一
套学习 UNIX 基础的好范本。
然而採用微核心的 UNIX,其实只是功能严重缩水的 UNIX,不但没有原本
UNIX 的特点,甚至还更糟糕。当年已经是 386 个人电脑的时代,正是微软
DOS 作业系统横行无阻的年代, UNIX 可以说是几乎快要被淘汰了。然而,
这时却有一位芬兰赫尔辛基大学资讯系二年级的学生 Linus Benedict Torvalds
,因為疯狂爱上 UNIX 这套作业系统,但是却不满意自己的 386 执行 Minix
有许多差劲的地方,因此他兴起了一个念头:重做一个核心吧!
他花了很多时间做出了一个核心,并且发表在网路上,当时他贴出了一份如下
的公告:
Hello everybody out there using minix:
I'm doing a (free) operation system.....(以下的内容省略)
他所发展出来的核心,初期并没有引起很大的轰动,直到人们发觉它是一套
可以在 386 个人电脑上运作的 UNIX,并且可以轻易地将个人电脑变成伺服
器,很快地 Linux 就席卷了整个自由软体的世界。后来并且有了 X 视窗操
作介面,以及 Gnome 、 KDE 等桌面操作环境,以及 XFree 这样的设备驱
动函式库,Linux 才得以拥有漂亮的图形操作介面。
关於这部份的介绍,就在这裡打住,想要详细的全文,请到这个网址:
当读者有了大型伺服器的概念之后,讨论第二个重点:什麼是多人多工,才是
比较有意义的事情。
多人多工并不是在一个桌面上开啟多个视窗,就叫做多工。
微软的 Windows 在这方面的技术还比不上 Linux。所谓的多人多工,真正的
意义是:让不同的使用者,在同一时间内,使用同一部伺服器的资源。
比方说,有一个使用者想连上这伺服器听 mp3,另外一个使用者也想连上伺服
器玩 game,作业系统可以分配资源给连接到伺服器的电脑,同时进行两种完
全不同的工作,这就是资源共享。想要顺利达成这样的工作,伺服器又不能出
现错误,而且也不能有安全上的漏洞,可想而知这技术有多麼难以达成。
那麼有人会觉得说,我的电脑又不用来当做伺服器,為什麼要用 Linux?当然
以 Linux 做為工作站,也可以享有稳定多工的环境,但最垂要的是,现今的
宽频愈来愈普及,个人电脑的运算能力也愈来愈强,未来的网际网路就不再是
伺服器对工作站的架构 ( server-client ),而是伺服器对伺服器了。
(server-server)
最后一点,Linux 的核心架核究竟跟微软的 Windows 有什麼不一样的地方?
首先来看看它的档案系统,為了符合大型电脑的需求,Linux 将所有的储存
装置都视為一个目录,这是达成无限的扩充需求。例如说,可以将多个硬碟
合成一个目录,就像是 RAID 架构,也可以一个磁碟掛载成不同的目录,每
个目录都有各自的功能。
因此“掛载”是 Linux 一个非常重要的概念。理论上,Linux 可以将任何储
存媒体,不论是什麼样的档案系统,掛载成目录的形式来使用。
目录在 Linux 的概念上并不是资料夹,这是 Windows 裡的概念。有一
个地方可以用来说明这个不同点。对Windows 来说,根目录就是安装
Windows 的磁区,比方说 C:。但是 Linux的根目录就不一定是一个主磁区,
很可能是大量储存媒体的集合体。
也可以说,一部大型电脑伺服器,若有需要加装更多的记忆体,更多的硬碟,
更多的 CPU,Linux 都可以轻易接受。甚至 Linux 的核心或是开机档案都可
以放在不同的目录、不同的储存装置,不同的磁区,照样能够运作正常。
但是 Windows 就不行,甚至硬碟的分割都必须合乎微软的标準。这是相当白
痴的做法,只要一个档案不见了,Windows 就无法开机,甚至造成严重损毁。
企业可能会因為一次当机造成无可弥补的损失。
微软的 Windows 只适合个人电脑的单 CPU、单硬碟。Windows 没办法从“任
意一个磁区”来啟动,硬碟的分割,也只能符合主开机区加上延伸磁区的概
念,甚至主开机磁区也有磁柱、数量的限制。
不仅如此,Linux 的核心能够接受套件来加强功能。有一个概念必须要弄清楚
,套件其实并不完全是应用程式。凡是跟核心有关的套件一但安装了,它就跟
Linux 的核心融為一体,功能变得更加强大,但是微软的 Windows 核心是
“钉死的”,它没有办法增加功能,因此每年都要换新一次微软的產品。微软
每年都要将他们的作业系统大幅度地改版一次,因此投下了大量的研发经费,
然而 Linux 只要安装更新套件就行了。
这种概念就像是做了一个机器人,你可以任意加强它的功能,装上手臂就可以
举重物,装了双脚它就可以走路,装上翅膀甚至可以飞上天!
究竟 Linux 跟 Windows 的核心那裡不一样?简单地说就是:
Linux 的核心具有无限扩充的可能性,Windows 却是钉死的。
在可预见的未来,微软每年投下的作业系统研发经费会呈现等比级数的成长,
并且推出的產品限制会愈来愈多。也许微软会加进很多新功能,但也就是这麼
多而已,使用者也许可以藉由应用程式来增加功能,但是旧有的应用程式并无
法用在微软的新作业系统上面。
从很多方面来分析,Linux 不但功能强大,而且拥有无限的发展潜力。但是它
并没有办法以“商业利益”来推动它的发展。事实上,Linux 的发展主要是靠
著“虚拟团队”,也就是网际网路上的高手来发展,这也是為什麼,Linux 一
直到了网际网路发达的今天,才有突破性发展的缘故。
然而“无限”是一个很笼统的概念,因此 Linux 才会冒出一大堆不同的发行
版。以现今市场占有率最大的 Red Hat 以及 Mandrake 来说,Mandrake 的硬
体相容性比较好,安装时比较不会遇到困难,然而在函式库方面,Mandrake
时常出现连结错误的现象,因此比较不稳定,也较容易当机。新推出的 9.0
版本在稳定性方面提昇不少,值得嘉奖。
Red Hat 就比较专业,这也是长期耕耘专业伺服器的成果,用来开发程式很
不错。然而在安装方面较為不易,除非将整个硬体环境配置成為接近伺服器的
环境。最近推出的 8.0 版本已经将 Mandrake 的亲和力以及硬体相容性放进
去,未来鹿死谁手还很难说。
微软的產品,最大的优势在两个方面:一是因為封闭原始码带来的巨额商业利
益,一是利用广大的市场佔有率制定各种不同的标準。尤其是后者,因為版权
的问题,Linux 无法使用微软的 DirectX 函式库,因此硬体的相容性比较差。
早年微软制定出 DirectX 的时候,并不是一个绘图函式库,而是一个 API,
也就是应用程式介面。当一个程式设计师所设计出来的应用程式,呼叫
DirectX 函式库,只要电脑的硬体设备符合 DirectX 标準,那麼这个应用
程式就可以运作正常。
早在 DOS 时代,没有 DirectX 函式库,程式设计师必须要亲自撰写装置的
驱动程式。然而有了 DirectX,装置的驱动交由它来负责就行了,程式设计
师只要负责核心程式码的部份就好了,大大减少开发程式的困难度。
然而这却无法弥补微软 Windows 本身的缺陷,因此当应用程式出错的时候,
程式设计师要花更多的时间去找出错误,有许多作业系统本身的错误并无法
被程式设计师修正,因此也只能期待微软推出修补程式。然而微软每修补一个
漏洞,就產生更多的漏洞,直到最后不得不重新推出一个作业系统。
目前硬体部份是由 XFree 团队来负责的。所谓 XFree 的意思是,让所有的硬
体都能在 X Window 环境下顺利运作,而且不需要使用者亲自撰写驱动程式。
因此使用者在购买硬体时,最好能够考虑 XFree 的相容性。在 Red Hat 或是
Mandrake 的官方网站都可以看到完整的硬体相容性列表。
以我的经验,购买主机板最好能选择有生產伺服器专用主机板的厂商,这样在
Linux 下也能运作无误。我的主机板採用艾崴的產品,就很稳定,不论是 98
或是 Linux。
由於市面上大部份的显示卡都是 DirectX 标準,只有 NVIDIA 的显示卡有专属
的驱动程式。另外由於创巨公司的音效卡是专為 DirectX 量身订做的,因此在
Linux 的环境下只有两声道。
以我的经验,台湾自製的產品大多会考虑到 Linux 的相容性,尤其是驊讯公司
的音效处理晶片 C-Media 8738 有专属的 Linux 驱动程式,大多的主机板都有
内建。
购买硬体,有一件事很重要,就是客户服务。其他的公司怎麼样我不知道,但
是华硕就很糟糕,写去的 e-mail 从没有回过。但是艾崴就很好,有专门的工
程师回答你的问题。安装 Linux 碰到问题,有时候写信去问公司的工程师会
比较好。
另外在磁区的分割方面,安装 Linux 的人常犯的错误就是将 Linux 安装在
Windows 分割出来的磁区裡面。Linux 无法开机大多是这个原因,例如,将
Linux 安装在 Windows 的延伸磁区裡面。这样做当然可以,但是多重开机
程式的运作会出现问题,倘若使用者坚持这样做,就準备一张 Linux 开机用
的磁片吧。
最好的方法是,在硬碟裡割出一块主开机区,不要把硬碟所有的空间都分配
进去。安装好 Windows 之后,再用 Linux 开机光碟开机,并且割出 Linux
专属的磁区。Windows 看不到 Linux 的磁区,但 Linux 却可以将 Windows
的磁区掛载上去,因此使用上并不会发生衝突。
XP 的磁区一样可以看到,使用者在安装时设定一个掛载点给它就好了,只
是多重开机程式的设定值必须要修改一下。
由於 X Window 只是一个图形操作介面,它并没有像 Windows 一样用桌面环
境取代了主控台,因此任何对 X Window 的操作,都会转成相对应的 Linux
指令。因此,一本详尽的指令手册也是必须的,可以从网路上下载,也可以
到书店去购买。甚至有许多设定值,必须亲自动手去修改,不能经由
X Window 去设定。
然而这一点在 KDE 环境已经改善很多了,总有一天 Linux 会变得像 Windows
一样好用,期待这一天赶紧到来。
最后一点,安装时最好能设定一个一般用户帐号,因為使用 root 帐号登入
系统,一旦把系统搞坏就弄不回来了。即使一般帐户把桌面弄得乱七八糟,
砍掉后再重设,一切又回复原样了。
阅读(1128) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~