1-2 Unix/Linux 系統簡介
『Unix 作業系統』(Unix Operating System)是目前網路伺服器最『夯』的工作平台,許多網站和網路設備皆利用它來架設,它的誕生與成長過程真是一件迷人的話題。本書利用一些篇幅來介紹 Unix 系統的緣由,接著再來探討 Linux 是在何種情況下被發展成最通用的自由軟體。這早已分流的兩大系統,在何種因緣底下再度整合成 Unix/Linux 系統,其過程發展如何?以下分別說明之。 1-2-1 Unix 系統的緣由 我們回顧一下作業系統的功能,它負責管理整個電腦系統的運作程序,甚至主宰一部電腦的功能強弱與否。早期電腦製造廠商都將作業系統的開發,視為最高秘密的技術,絕不輕易洩漏。當時各家廠商多自行開發作業系統,既不會也不願意與其他廠商交流。在電腦資源昂貴的時代裡,是以執行時間計算費用,為了減少計算時間,幾乎都屬於『批次處理』(Batch Processing)模式。早期電腦的處理速度非常緩慢(但是比人工作業快很多),通常也僅是某些特殊單位,處理特定工作才具有的設備,大多從事於與計算(computing)有關的工作(因此稱為 computer)。直到 1960 年末期,美國奇異(General Electric, GE)公司希望能建立一部『交談式處理』(Interactive Processing)作業系統,以提高其電腦的處理效益(不再是批次處理)。於是,它結合麻省理工學院(MIT)與 AT&T 公司的貝爾實驗室(Bell Laboratories)共同開發一個實驗性的作業系統,稱之為 Multics(Multiplexed Information and Computing System)。Multics 建立之初預定是在 GE 645 大型主機上執行,並具有交談、保密與資源互享的功能,但因該計畫延遲太久而被放棄。到了 1970 年初期,才由貝爾實驗室的 Multics 成員 Ken Thompson 與 Dennis Ritchie兩人,共同將 Multics 移植到 PDP-7 系統上執行,因為剛移植到 PDP-7 的交談式作業系統僅能提供兩個使用者登入,因此被戲稱為 UNICS(Uniplexed Information and Computing System),後來才被改名為 Unix ,且一直沿用至今。 1972 年 ken Thompson 與 Dennis Ritchie 將 Unix 移植到 DEC PDP-11/20 系統,並開發一套稱之為 runoff 的文書處理系統,此為有史以來的第一套電子排版軟體,後來改版成 troff。當時無論作業系統或是套裝軟體都是利用『組合語言』(Assembly Language)所撰寫完成的,大多隨著硬體主機銷售,很難移植到其他主機上執行。剛發展出來的 Unix 系統也不例外。 次年(1973),Ritchie 與 Thompson 利用 C 語言改寫 Unix 的核心程式,不但增加 Unix 系統的可攜性,也造成資訊產業的大變革。因為 C 語言是一套高階程式語言,只要透過不同主機系統的 C 編譯器,將它重新編譯再安裝於該主機上,便可在不同的主機系統上執行。在此之前,因為作業系統都是利用各自主機的組合語言來開發,當然開發出來的作業系統也僅能使用於該主機上,無法移植到其他廠牌的主機上。利用 C 語言所發展的『可攜性』Unix作業系統,可說是歷史上的頭一遭,之後也奠定 Unix 統一作業系統的基礎。從此之後,無論發展作業系統或套裝軟體,各廠商也多儘量利用 C 語言開發,不但軟體銷售不再侷限於某些特定主機,修正或更新也將更容易。 在當時(1970 年代),電腦環境可以說完全是賣家市場,幾乎由幾家大廠所掌控,這些大廠對於 AT&T 所發展出來的 Unix 興趣缺缺,原因是各家的應用軟體都在自家系統上發展(組合語言所編寫的),要移植到其他系統是不太可能的。另一方面,每家廠商也都將自己主機系統的技術列為最高機密,豈可讓您安裝 Unix 系統(如此則需公開主機內部資料)。由此可見,當時Unix 系統前途真是黯淡無光的,僅能在貝爾實驗室裡自行玩弄。AT&T 試圖要讓 Unix 系統有更大的發展空間,決定來個『放長線釣大魚』,將其免費送給各大學當作作業系統教材,並將核心程式完全公開,好讓學生與教授可以自由在 Unix 上發展更多軟體工具,並修正核心程式的缺點。當時以 Ethernet 為基礎的 TCP/IP 網路(即是 ARPANET 網路)已被發展出來,也與 Unix 面臨同樣的問題,AT&T 索性將 TCP/IP 網路附加在 Unix 系統上,作為 Unix 主機之間的通訊使用,也一併分送各大學使用。無形之中,Unix 系統與 TCP/IP 網路漸成為許多大學與研究單位不可或缺的工具。 當 Unix 的羽翼漸豐後,AT&T 立即將 Unix 申請註冊商標為自己所擁有,別家公司不再允許使用 Unix 名稱。另一方面,AT&T 又以較低的價格將 Unix 授權給其他公司發行,如HP 公司的 HP-UX、Sun 公司的 Solaris,大多宣稱為 Unix-based 系統。從此,不同版本的 Unix 系統也就如雨後春筍般的被發展出來,各種 Unix-based 版本大致上都能夠相容。亦即所發展的應用軟體可在不同版本 Unix- based 系統之間輕易移植。這可是幾十年來電腦發展的大變革,之前在某一系統上發展出來的軟體,實在不容易移植到其他系統,更別說許多公司都將自己的作業系統技術列為最高機密,想移植更是難上加難。目前較常見的授權 Unix 系統有:AIX(IBM 公司)、HP-UX(HP 公司)、IRIX(Silicon)、Solaris(Sun)、TRU64(Digital Unix)、A/UX(Apple)、MacOS X(Macintosh Intel Platform)。 各家廠商有了 Unix-based 版本作業系統之後,在任何 Unix-based 上開發的軟體套件,可容易的移植到其他 Unix-based 系統上執行。如此一來,軟體的銷售管道拓寬了,產生更多軟體公司發展並銷售各式各樣的應用系統。主機安裝 Unix-based 系統後,不但容易購買到所需的軟體(不需要自己開發),價錢也比其他系統下的軟體便宜,也讓更多客戶喜歡使用。 1-2-2 Linux 系統的緣由 使用 Unix 需要收費了!!這在學術界可是擎天霹靂的大震撼,學校再也不能免費使用 Unix,必須購買使用版權才可以。自從利用 Unix 作為教材之後,普遍上大學教授對於 Unix 都有相當的認識,也都已準備許多相關教材,要他們立刻停止使用,真讓教授們感到錯愕。當時荷蘭 Andrew S, Tanenbaum 教授(即是 Computer Network的作者,Prentice Hall)便利用 Unix 的相關技術,發展一個稱之為 Minix 的作業系統,它的雛型是 Unix-like 作業系統。Tanenbaum 將 Minix 系統隨著作業系統教科書(Operating Systems: Design and Implementation,Prentice Hall)免費贈送,各大學又恢復利用免費版本的Unix 作為教材。一時之間,類似 Minix 系統也不斷地被發展出來,但都統稱之為 Unix-like 系統。Minix 內的程式大多是利用 C 語言所發展出來,但也可重新編譯再植入多種硬體主機上執行,尤其是當時最普遍的 intel-80386/80486 主機,這也是 386 系統版本的濫觴。 在 1980 年代裡網際網路並不風行,Minix 系統大多儲存於磁帶或磁片上,再利用郵寄方式流傳。學生拿到 Minix 後,可直接安裝 intel/386 主機上執行,當作學習 Unix 系統工具。甚至可直接利用 Minix 原始程式(Source file),修改或增加系統功能,再重新編譯成另一個新的作業系統,許多教授都喜歡利用此方法考驗學生。一直到 1990 年,在芬蘭的 Helsinki 大學裡,有一位叫 Linus Torvalds 的大學生也如同一般學生一樣,將 Minix 系統安裝於 80486 電腦,並作為作業系統的實習教材。當時 Minix 系統已算完備,Unix 系統上應有的功能它幾乎都有,而且網路功能也很強。Torvalds 重新編寫 Minix 並增加某些功能,作為他的碩士學位論文,完成之後,Torvalds便將新的作業系統掛在網路上以供他人下載,整個檔案被儲存於名為 Linux 的目錄之下。很幸運地,當時網際網路已漸漸風行,許多人便到 Helsinki 大學 FTP 網站 Linux 目錄下載新的作業系統,從此大家便將這新的作業系統稱之為『Linux 作業系統』。 Linux 目錄不但允許任何人下載,也允許他人將研究成果上傳到該目錄上,以便分享給其他人。從此造成很大的震撼,各大學除了可將 Linux 系統下載使用,又可將研究改善的成果上傳,從此 Linux 目錄成為各大學之間研究交流的園地,它的名號也流傳得更快速;之後類似 Linux 目錄的交流園地也快速地被建構出來。雖然許多人將所研究的成果,與所開發出來的系統工具或軟體,廣泛的在各個交流園地上流通,但到底還是缺乏其組織性。因此,工業社會上便出現許多以 Linux 為基礎的公司,出面整合這些已發展出來的工具,甚至這些公司同時也參與研究發展 Linux。基本上,這些公司會將所歸納整理的 Linux 系統也免費發行,其中主要的收益多半仰賴販售使用手冊與訓練課程(或發行證照)。如此一來,就產生許多 Linux 發行版本(Linux Distribution)。 其實,『分時系統』的 Unix 並不適合商業用途,商業電腦需要『即時/分時系統』(Real-time/Time-sharing system)。在分時系統下,系統輪流服務已登入的使用者,分配給每位登入使用者最長可操作時間,逾時未完成工作則需釋放資源,轉讓給其他使用者。如果主機 CPU 執行速度過快,或登入使用者數量並不多情況下,大多能滿足使用者所需;但上述條件不存在的話,可能出現總經理與工友同樣都在等待系統回應,而他們被服務的機會是相等的。真實環境裡,總是希望有服務等級之分(例如,經濟艙與商務艙),總是有些較急迫事件(或高級使用者),需要較『即時性』的服務。因此,系統必須將使用者的身份分級,較高等級者,享有較優先服務的機會;較低等級者,可能需要等高優先者服務完後,才會輪到它,這就是『即時系統』(Real-time System)的特性。如此還不是很理想,將兩大特性整合起來,就是『即時/分時系統』,無論優先權高低,使用系統資源的時間都將限制,並輪流被服務(當然高優先權者輪流完後,再換到等級低者輪流)。 許多公司修改 Unix 系統核心,使其具有即時系統的功能,但此類型的系統發行也不多,這也是早期 Unix 大多應用於 CAD/CAM 領域的主要原因。在 Unix 系統上有一套非常完善的圖形介面,即是X-window 視窗,再加上許多多軟體發展工具被發展出來,自然而然成為工廠自動化設計不可或缺的環境。在當時還是 IBM、Digital 系統佔大部分,儘管有許多商業用途採用 Unix 系統,但還並不普遍。 Unix 的網路功能在 1990 年以後被突顯出來後,再加上網際網路的盛行,許多網路伺服器也因此建構在 Unix 系統上。此時的Unix 與 Linux 系統便大放異彩,儼然成為網際網路上不可或缺的夥伴;尤其免費的 Linux 系統及其諸多自由軟體,如 Apache、Bind、Sendmail、WU-FTP 與 MySQL 等等,更助長網際網路的發展。正當這些軟體被廣泛使用的同時,工業界漸漸希望更穩定且安全性更高的作業系統,尤其系統的支援更需要專家的隨時輔助。雖然 Linux 功能非常強大,但到底是免費軟體,因此缺乏廠商的系統奧援,此時 Linux 發行廠商開始思索如何提供一個安全性更高,並隨時提供系統支援的服務,因此,企業版的 Linux開始發行販售,如 RedHat Linux 系統。 有一個重要的觀念值得認識:並非建構一套功能強大的系統、安裝完成各式軟體套件之後,管理系統的工作就已完成。其實所有資訊系統的管理工作,安裝完成之後才算開始。如何能讓這套系統順利的運作,並保證資料不會遺失、系統不會當機,這可不是一件容易的工作。管理者不但需要擁有深厚的維護技術外,還需要廠商不停的技術奧援才行。就好像修理汽車的技師一樣,除了需要有高超的技術外,也需要原製造商提供相關的技術資料,維護完成後的汽車才不致於出現問題。由此可見,公司或組織單位採用沒有技術支援的自由軟體是非常危險的,還是購買有技術廠商保證的企業版軟體較為安全。 隨著工業環境的需求,企業版的 Linux 也誕生了,我們相信未來會有更多追求高支援性、高穩定性的企業版陸續推展。由以上的簡述,我們可以瞭解整個Unix/Linux的發展過程是:首先Unix 由免費使用變成需要版權,再來是Linux 由自由軟體變成企業版發行販售,最後Linux 幾乎快要成為 Unix 的替身。尤其近十年來,在 Linux 發展出來的許多自由軟體,多半能在 Unix 系統上安全執行,也造成目前 Unix 系統上許多應用軟體係來自 Linux,所以Unix 與 Linux 幾乎已可看成 Unix/Linux 系統了。 |
翻轉工作室:粘添壽
Linux 伺服器系統管理 - CentOS:
翻轉電子書系列:
|