作者:陳柏菁 E-mail
第一章   Linux 簡 介

索引:
1.1 Linux 名稱的由來
1.2 Linux 的發行版本 (整合套件) --- Linux distributions
1.3 Linux 的特色、優點



1.1 Linux 名稱的由來

要了解 Linux 這套作業系統的產生,那可能要從早期的 Multics 作業系統談起。話說當初 Multics OS 是由貝爾實驗室 (AT&T 公司的一個部門)、麻省理工學院 (MIT) 及奇異電子公司 (GE) 所共同參與研發的,是一套安裝在大型主機上多人多工的作業系統,不過後來因為一些因素導致 Multics 計劃駐足不前,最後終究遭裁撤的命運。而在 Multics 計劃停止後,由貝爾實驗室的兩位軟體工程師 Thompson 與 Ritchie 為主導,然後根據他們當初發展 Multics 時期的一些心得,並以 C 語言為基礎而發展出 UNIX OS ; 又由於 C 語言具備高、低階語言的特性,使得 UNIX 可以讓程式設計師依他們所使用硬體裝置的不同而加以修改,以方便移植到其他主機上面來運作,而不會被侷限在特定的主機平台上。

1973 年,UNIX 正式對外發表,不過在此之前也經過了幾次的改版。UNIX 發展初期,AT&T 是採取較為開放的政策,允許讓全世界各地的玩家分享他們的成果,並且可以針對原始碼 (source code) 部分進行修正,也正因為如此,才能夠便於將 UNIX 移植到不同平台上 ; 而 UNIX 其中一個重要的分支 -- BSD,就是在這種情況下產生,BSD 是在 1978 年由加州柏克萊大學 (Berkeley) 的 Bill Joy 為主導,所研發出來的作業系統,而 Bill Joy 這位大人物正是後來美國昇陽公司 (Sun Microsystem) 的創辦者 ; 該公司之後又發展出一套 Sun OS (Solaris 前身)。

到了 1983 年,AT&T 也自行研發了另一個 UNIX 的分支 -- System V,而在當時來說,BSD 及 System V 即是 UNIX 中最重要的兩個分支。

AT&T 最初原本對 UNIX 是採取開放的態度,但到了後來,因為基於商業利益的考量,而開始宣稱 UNIX 的版權為 AT&T 所有,在當時來說是引起了不小的震撼,畢竟這種做法是與當初自由軟體的精神相互違背的。不過話雖如此,還是有許多企業或個人對 UNIX 強大的功能情有獨鍾,但卻又因為 AT&T 的態度轉變,而不再能夠自由取得 UNIX 的原始碼,於是乎一些具有研發能力的公司或個人,乾脆就自己發展出一套與 UNIX 功能差不多,但並未抄襲 UNIX 原始碼的作業系統,並且可以運作在 x86 電腦上,這就是一般我們常聽到的 UNIX-Like,而早期最出名的一套 UNIX-Like 就是在 1984 年誕生的 Minix。

在 Minux 誕生的那一年,另外一件重大的事情就是 Richard Stallman (自由軟體之父) 所發起的 GUN 計劃,此計畫的最終目標是在發展一個 Unix-Like 且為自由軟體的完整作業系統,但畢竟此項工程過於浩大,所以在草創初期,Stallman 就自己設計一些模擬在UNIX 上面執行的程式,而為了加速 GNU 計劃的推動,Stallman 就與其他愛好自由軟體的夥伴建立起 FSF ( Free Software Foundation : 自由軟體基金會 )。  

GNU 設計了很多的自由軟體來提供大家使用,並且以 GPL (GNU General Public License) 的方式來對外發行。GPL 是一種軟體的授權模式,只要軟體是以 GPL 來對外發行,這就代表任何人可以自由免費的取得該軟體與原始碼,您可以複製這個軟體,也可以修改其中的原始碼,修改過後還可以用 GPL 的方式再對外發表,讓別人分享您修改的成果。不過這裡可要注意一個問題,原始碼修改過後,您不能任意改變 GPL 的授權模式,因為版權本來就不是您的。像 Mandrake 及大陸的紅旗 Linux 就是修改自 RedHat,這也是最典型的 GPL 代表。

1990 年時,GNU 就已經把一套 GNU 作業系統所需的一些軟體設計得差不多了,但唯獨欠缺核心 (kernel) 這部分,就在此時,還在芬蘭的赫爾辛基大學資訊系就讀的一位高材生,名字叫做 Linus-Torvalds,那時候他選修了一門 UNIX 的課程,就這樣學著學著而迷上了這套作業系統,但由於在課堂上所能使用的資源有限,所以那時候他就花了一筆錢,買了一台 386 的電腦,並且在此個人 PC上安裝 Minix OS,但因 Minix 無法滿足 Linus 使用上的須求,於是便開始自己撰寫核心程式,並於 1991 年於網路上釋出第一個 核心版本 0.0.2 版,並將其命名為 Linux (Linus' Minux)。

不過要構成一套完整的作業系統,光是只有核心是不行的,尚須要有操作介面、系統程式及應用程式的存在才行,這樣整個作業系統才能運作。就在 1992 年,Linux 與 GNU 計劃中的很多軟體程式做結合,而正式成為一套 GNU/Linux 作業系統。

1994 年時,1.0 版的核心被發表出來,到了 2005 年的七月,已發展出 2.6.12 版的核心。或許您還不清楚核心在作業系統中所扮演的角色,簡單的說明一下好了,核心可以說是作業系統最底層的東西,舉凡使用者在圖形介面或文字介面下所欲執行的程式都需要透過核心來幫您作處理 ; 比如現在使用者想要啟用印表機來列印文件,而當核心接收到這個需求後,首先要先看看核心本身認不認得這項列印裝置,如過認得的話,當然就能應付您的需求了。一般說來,核心負責的主要工作有電腦硬體管理、檔案系統管理、行程管理、記憶體管理、網路管理等等,所以可以說是作業系統的心臟部分。 

或許各位會覺得說光靠 Torvalds 一個人怎麼有辦法維護這麼複雜的核心,其實 Linux 的發展模式算是比較特殊的,核心程式是其負責沒有錯,但這不代表只有他一人在進行核心研發的工作,因為核心原始碼每個人都可以在網路上自由免費的下載,所以幾乎在全世界各地的玩家都會自動找 Bug (臭蟲:意指軟體研發之時,可能因一時疏忽或設計的錯誤,造成此軟體的缺失或安全性漏洞),並將修正的結果傳給 Torvalds,甚至於有些新硬體設備所需的 driver 也都是透過這種方式而來的。

1.2 Linux 的發行版本 (整合套件) --- Linux distributions

前面已提到過完整作業系統的構成要件只要您能組成一套完整的作業系統,就算是 Linux distrubution。目前一些發行 Linux distribution 的廠商或機構其 kernel 都是使用 Linux kernel,而其軟體程式大都是從 GNU 而來,另外發行公司可能會自行研發一些能夠表現這套 distrobution 特色的工具來搭配使用。

目前存在的 Linux Distributions 有數十種版本,最常見者有 RedHat、Mandrake、OpenLinux ( Caldera )、Debian ( GNU )、Slackware、SuSE、Turbo Linux 、Fedora … 等等。看得真是給他有點眼花撩亂,或許您心中開始會有疑問,這麼多的 distritutions 要學哪一套好呢 ? 如果我已經學會了一套,想學另外一套時會很吃力嗎 ? 其實這個倒不用太擔心,因為剛說過,各家公司所推出的 distribution 都是使用 linux 的 kernel,且軟體程式大部分是從 GNU 取得,所以基本架構都是差不多的,只要您好好學會其中一套,之後您再學習其他的 distributions 時,相信一定能夠駕輕就熟的。

1.3 Linux 的特色、優點
˙ 穩定性:
較 Windows 穩定,且不易當機。如您曾經為公司使用 Linux 架設伺服器的話,應該能夠認同這個特色,且有可能您主機連續運作個一整年都還不太容易出問題呢 !
˙ 多人多工:
可讓不同的使用者於同一時間來操作系統,且可以執行相同的或不同的多項應用程式。
˙ 多平台:
在 Linux 正式發表之後,其發展速度可說是非常迅速的 ; 大約在 1995 年前後,Linux 已可在非 intel 處理器上執行。
˙ 具行程間記憶體保護:
出問題的程式並不影嚮整個系統。
˙ 開放原始碼 ( Open Source):
在 Linux 下,大部份程式原始碼公開,並允許程式設計師依須要而修改,可說是非常具有彈性。
˙ 具卓越的網路能力:
Linux 是以 TCP/IP 為主要的通訊協定,由於其所表現的高穩定性,使得一些企業紛紛以 Linux 來架設各式的伺服器。
˙ 提供完整的程式開發工具:
可讓程式設計師以 Linux 為平台而去發展各式軟體,可支援的程式語言眾多,如 C、C++、Perl、Python、… 等等。

 

copyright © 2005 by barry ( 柏青哥 )