字體:  

如何學習 Linux "一篇不錯的文章"

adj 發表於: 2008-1-02 21:25 來源: ADJ網路控股集團


這篇文章粉久了...不過還是跟大家分享!^^


來源www.linux.org.tw Edited on 5/10/2002 by Kirk



看到網路上有許多新手,在使用 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 才得以擁有漂亮的圖形操作介面。

關於這部份的介紹,就在這裡打住,想要詳細的全文,請到這個網址:

http://www.europa.idv.tw/UNIX/AKFdoc/UNIX-history/UNIX_History.html

當讀者有了大型伺服器的概念之後,討論第二個重點:什麼是多人多工,才是
比較有意義的事情。

多人多工並不是在一個桌面上開啟多個視窗,就叫做多工。

微軟的 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 帳號登入
系統,一旦把系統搞壞就弄不回來了。即使一般帳戶把桌面弄得亂七八糟,
砍掉後再重設,一切又回復原樣了。

最新回復

icejeff at 2009-6-10 13:52:10
不錯歐對剛學習linux很有參考價值
szen at 2009-6-13 14:37:51
此文章看起來只是在介紹Linux作業系統,比較不偏向「如何學習」
標題應該是介紹何謂Linux比較恰當
didimaster at 2009-6-22 23:03:33
感覺沒學到 還是買一本書來研究
oscargtc at 2009-6-23 15:12:31
謝謝大大的的分享..
這提供入門者的一大福音
shared at 2009-7-12 18:26:47
对于了解Linux来说这是篇不错的文章,最近正在学习Ubuntu。谢谢楼主了
shared at 2009-7-12 18:27:23
对于了解Linux来说这是篇不错的文章,最近正在学习Ubuntu。谢谢楼主了
shared at 2009-7-12 18:27:45
对于了解Linux来说这是篇不错的文章,最近正在学习Ubuntu。谢谢楼主了
wild at 2009-12-16 07:03:18
謝謝大大的分享,最近剛開始在學Linux...雖然覺得起步有點晚,但是這一切是值得的
wild at 2009-12-16 07:03:42
謝謝大大的分享,最近剛開始在學Linux...雖然覺得起步有點晚,但是這一切是值得的
wild at 2009-12-16 07:04:13
謝謝大大的分享,最近剛開始在學Linux...雖然覺得起步有點晚,但是這一切是值得的
shin211183 at 2010-2-04 01:54:25
謝謝分享,最近有想學linux,可是不知道他是什麼
janet6232003 at 2010-2-26 00:59:07
GOOD!!HIGH!!
janet6232003 at 2010-2-26 00:59:31
VERY GOOD! YES
jslin at 2010-3-05 13:19:32
Thanks a lot !!
jslin at 2010-3-05 13:20:15
good Thanks a lot
MaxTaxi at 2011-2-18 16:45:18
謝謝分享! Thanks.