從 Unix 到 Linux 這一段歷史

爲什麼大家常常會說,Linux是很穩定的一套操作系統呢?這是因爲,Linux他有個老前輩,那就是Unix家族!有這個前輩的提攜,讓Linux這個小老弟很快的就成爲一套穩定而優良的操作系統啦!所以,底下我們來談一談Unix到Linux的這一段歷史吧!

早在Linux出現之前的二十年(大約在1970年代),就有一個相當穩定而成熟的操作系統存在了!那就是Linux的老大哥『Unix』是也!怎麼這麼說呢?!他們這兩個傢伙有什麼關係呀?這裏就給他說一說!衆所皆知的,Linux的核心是由Linus Torvalds在1991年的時候給他開發出來的,並且丟到網絡上提供大家下載,後來大家覺得這個小東西(Linux Kernel)相當的小而精巧,所以慢慢的就有相當多的朋友投入這個小東西的研究領域裏面去了!但是爲什麼這的小東西這麼棒呢?!然而又爲什麼大家都可以免費的下載這個東西呢?!聽我慢慢的道來!

  • 一個沒有完成的夢想:Bell, MIT與GE的『Multics』系統

早期的計算機並不像現在的個人計算機一般,他可不是一般人碰的到的玩意兒,除非是軍事或者是高科技用途纔有可能接觸到這類的Computer!而如前面所言,有計算機硬件還需要操作系統的配合才能夠發揮計算機的效能,不過,在那個年代,由於計算機算是『奢侈品』,喔~應該說是『貴重物品』,所以,可能一間學校就只有一部大型主機當然,那個年代所謂的大型主機仍然無法提供適度的運算能力的。不過,既然只有一部大型主機,然而有許許多多的教師、學生要想要來使用,怎麼辦呢?爲了解決這個問題,在1960年代初期,麻省理工學院(MIT)發展了所謂的『兼容分時系統(Compatible Time-Sharing System,CTSS)』,就字面上的意義來看,他主要讓大型主機可以提供多個終端機聯機進入主機使用主機的資源,(附帶一提,當時的終端機(Terminal)本身並沒有軟件或者可供使用的資源,這些終端機要能使用,一定必需要聯機登入主機之後,才能夠使用主機的資源來工作!)當時可以讓約30位使用者聯機使用主機。而爲了讓這個分時系統更加的強大,所以,在1965年前後由貝爾研究室(Bell)、麻省理工學院(MIT)及奇異電器公司(GE)開始來共同開發一個名爲Multics的大型計劃,目標是想讓大型主機可以聯機300位以上的使用者。不過,在奮鬥了四年之後,該計劃仍然宣告不治...喔!是失敗啦!(注:Multics有複雜、多數的意思。

  • 一個小型檔案系統的產生:1969年Ken Thompson的小型file server system

在複雜的Multics系統的計劃失敗後,貝爾研究室當然就退出該計劃。就在這個計劃解散之後,曾經參與Muitics的貝爾研究室的成員KenThompson由於自己工作上的需求,需要一套檔案存取的小型操作系統,便在1969年的時候以DEC公司(Digital Equipment Corporation)的計算機PDP-7爲硬件基準,設計了一個適合自己工作環境的小型檔案系統,其中也含有他自行開發的一些小工具。那個系統就是最早期的Unix的源頭!當初Ken設計這個檔案系統時,主要是爲了自己的存取方便所設計的簡單OS,因此將原有的Multics系統大幅度的簡化,不過,在當時還並沒有Unix這個名詞的出現!

  • Unix的正式誕生:1973年Ritchie等人以C語言寫出第一個正式Unix核心

由於Thompson寫的那個操作系統實在太好用了,所以在Bell研究室內部廣爲流傳,並且數度經過改版。到了1973年,Bell研究室的Dennis Ritchie等人爲了讓這個系統的執行效能更佳化,所以使用編譯效能更好的C語言將原有的1969年的那個系統之核心大幅度的改寫過,並且確定該操作系統名稱爲Unix,呵呵!那就是最早的Unix操作系統!不過,由於這個操作系統是由這一羣工程師所開發完成的,而且使用者也大多是這方面的工程師,因此造成了後來Unix系統接口較難被一般使用者接受的情況@_@(注:相對於Multics,Unix具有單一的意思!)

  • 重要的Unix分支:1977年BSD的誕生

在Unix早期的發展中,有一件相當重要的事情,那就是BSD的誕生!由於C語言是一種高級語言,他可以被應用在不同的硬件架構上面,而Unix本身就是C語言寫成的!在Unix發表之後,柏克萊大學(Berkeley)的教授對於這個操作系統相當的有興趣,在經過取得Unix的原始碼,並且幾經修改之後,終於在1977年發表了第一代的Berkeley Software Distribution(BSD)。這個BSD是Unix的一個分支,他的發展對於Unix有相當大的影響,例如後來的Sun公司就是使用BSD發展的核心進行自己商業的Unix版本的發展的!


  • 百家齊鳴的Unix版本

由於C語言是一個相當高階的程序語言,他與硬件沒有很直接的相關性,例如你的Windows也可以執行C程序語言!而由於Unix是由C語言寫成的,因此,也就是說,你只要經過稍微的原始碼修改程序,就可以在不同的硬件架構上面執行這個操作系統!後來,由於Unix的方便性,因此很多的商業公司及學術機構就加入這個操作系統的研發。不過,也由於Unix的便利性與改寫容易,因此就造成了很多的不同版本的Unix,例如ATT的System V、加州大學的BSD版、IBM的AIX等等。


由於『操作系統的核心(Kernel)必須要跟硬件配合,以提供及控制硬件的資源進行良好的工作!』,而在早期每一家生產計算機硬件的公司還沒有所謂的『協議』的概念,所以每一個計算機公司出產的硬件自然就不相同!因此他們必須要爲自己的計算機硬件開發合適的Unix系統,所以,他們自行開發的Unix當然只能配合本身的硬件配備!例如在學術機構相當有名的Sun、Cray與HP就是這一種情況,他們開發出來的Unix並沒有辦法在其它的硬件架構下工作的!(我們都稱呼這種系統與配備爲『超級計算機』)!由於沒有廠商針對個人計算機設計Unix系統,因此,在早期並沒有支持個人計算機的Unix操作系統的出現(當然,這是由於早期的個人計算機並沒有現在這樣風行就是了!),每一家公司自己出的Unix雖然在架構上面大同小異,但是卻真的僅能支持自身的硬件,所以,早先的Unix只能與服務器(Server)或者是大型工作站(Workstation)劃上等號


此外,由於版本太多了,而大家都是同樣來自於Unix這個老祖宗,當然也都稱自己是Unix,好了,如此一來,許多商業公司自然就會有類似的軟件發表,喝!那麼自然就有些許的商業糾紛!真是傷腦筋~

                              

  • 1984年的GNU與Free Software Foundation

Unix在商業上面的問題讓許多對於Unix喜好者感到相當的憂心,其中一個就是有名的Richard M. Stallman先生。他認爲,Unix是一個相當好的操作系統,在這個系統上面,如果大家能夠將自己所學的貢獻出來,那麼這個系統將會更加的優異!Stallman先生認爲最大的快樂就是讓自己發展的良好的軟件讓大家來使用了!而且,由於每個人的工作環境(指軟硬件平臺)可能都不太相同,所以,他也強調應該要有Open Source的概念,讓大家都能夠分享這一份的心得!他認爲,有了Open Source之後,你的程序將有很多的人可以幫忙檢驗,將使得Unix社羣更佳的茁壯。爲了自己的理想,Stallman在1984年實際創立了GNU與自由軟件基金會(Free Software Foundation, FSF),並創作了許多『自由軟件』供大衆來使用,此外,對於其作品以自由(free)的GNU General Public License(GPL)的授權模式提供大衆使用。這個FSF的核心觀念是『版權制度是促進社會進步的手段,版權本身不是自然權力。』而且,Stallman的GNU General Public License一直強調Free這個字眼!

他是這樣說的:『"Free software" is  a matter of liberty, not price. To understand the concept, you should think of "free speech", not "free beer"."Free software" refers to the users freedom to run, copy, distribute,study,change, and improve the software』大意是說,自由軟件並不是指『免費』的,而是指具有『自由度,freedom』的軟件,什麼是自由度呢?也就是你在取得這個軟件之後,可以進行修改、進一步發表與複製在不同的計算機平臺上面。這無疑是個好消息!因爲如此一來,你所拿到的軟件可能原先只能在Unix上面跑,但是經過原始碼的修改之後,你將可以拿他在Linux或者是Windows上面來跑!Stallman先生更直接對自由度下了這樣的說明:

    • 你可以根據任何你想要的提議(purpose)來跑這個Free的程序;

    • 你可以在理解了這支Free的程序的運作之後,將他修改成你所想要的樣式與功能;

    • 你可以將你自己修改過的Free的程序再次的發表,以幫助你的朋友們;

    • 你可以將這支Free的程序進行改良,並將改良過的程序公開發表,以造福社羣!

簡單的來說,GPL授權具有幾個特點:

    • 任何軟件掛上GPL授權之後,即爲自由的軟件,任何人均可取得,同時,亦可取得其原始碼(Source Code);

    • 取得GPL授權之軟件後,任何人均可進行修改原始碼,以符合自己的喜好;

    • 除此之外,經過修改的Source Code應回報給網絡社會,提供大家來參考!


但請特別留意,並非掛上GPL之後的軟件就不可販賣,這個是不同的兩回事!舉個例子來說,在RedHat的官方網站上面提供RedHat釋出的Linux安裝光盤提供大衆下載,但是RedHat本身依然有在賣Linux的套件,而且還賣的『很不便宜!』爲何可以如此呢?呵呵!因爲RedHat他們賣的數據當中,含有相當大量經過整了的文件數據,這些數據雖然在網絡上面可以下載,然而花了這麼多的時間來整理這些數據,當然應該要給予相當程度的報酬!您說是吧!所以,請留意喔!並非GPL不可用來營利


這個GNU對於後來的Linux有相當深遠的影響,由於Stallman先生髮展了GNU這個計劃中,主力在推出各種方便而優異的工具軟件,例如廣爲大家所知的Emacs文書編輯器、GCC,BASH..然而沒有作業平臺怎麼使用這些軟件呢?然而,由於他倡導的自由軟件,讓後來的心血能很快的接觸原始碼來發展軟件,這就是後來的Linux的故事....這是後來的故事,等一下來說~

  • 1988年的圖形接口X-Free86project

有鑑於圖形使用者接口(Graphical User Interface,GUI)的需求日益加重,在1984年由MIT與其它協力廠商首次發表了X Window System,並且更在1988年成立了非營利性質的XFree86這個組織。所謂的XFree86其實是X window system與Free及x86系統架構的整合名稱呢!而這個XFree86的GUI接口更在Linux的核心1.0版於1994年釋出時,整合於Linux操作系統當中!


  • 1991年芬蘭大學生Linus Torvalds的一則簡訊:

在後來的幾年內,由於計算機硬件工業的強力運作,以intel主導的x86系統架構的個人計算機大行其道,所以個人計算機算是相當流行的一個機器了!但在此時,人們使用的大多還是舊舊而且需要吃很多系統資源的DOS系列或其它的操作系統。此時,有個芬蘭的郝爾辛基大學(Helsinki)Linus Torvalds學生做了件不尋常的事情!

Linus手邊有個 Minix系統(這也是Unix的分支),他對這個操作系統相當的有興趣!此外,由於當時他正好買了一部386的計算機,所以他就想說,咦!這個Unix這麼棒!這麼穩定,那我可不可以將他移植到個人計算機(X86架構)來使用呢?!好在由於Stallman提倡的Open Source風氣,他得以接觸到一些source code,而就經由這樣的一個想法,呵呵!他就很有心的讀取Unix的核心,並且去除較爲繁複的核心程序,將他改寫成可以適用於一般個人計算機的x86系統上面,到了1991年,他終於將0.02版的hobby放到網絡上面供大家下載,並且由於hobby受到大家的肯定,相當多的朋友一起投入這個工作中!終於到了1994年將第一個完整的核心Version1.0釋出!並且造成目前的大流行.....由於Linux kernel的發展是由『虛擬團隊』所達成的,大家都是透過網絡取得Linux的核心原始碼,經由自己精心改造後再回傳給Linux社羣,進而一步一步的發展完成完整的Linux系統,至於Torvalds先生是這個集團中的發起者。由於這個羣策羣力的緣故,Torvalds先生將Linux定爲同樣造福大家的GNU授權模式!


  • 企鵝的來源

1994年發表Linux正式核心1.0的時候,大家要Linus Torvalds想一隻吉祥物,怪怪的Torvalds突然想到小時候去動物園被一隻企鵝追着滿地打滾~還被咬了一口!既然想不到其它的吉祥物了,乾脆就以這支企鵝來當吉祥物算了!所以,呵呵!目前我們常常看到這一隻企鵝就是這麼來的咯! 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章