搜尋

關 於 本 書

‧內容簡介
‧得獎記錄

線 上 試 閱

前言
書摘 1
書摘 2
書摘 3
書摘 4
書摘 5
書摘 6

譯 者 作 品

戰之華:美國帝國主義大戰略
基因騙術
後人類未來:基因工程的人性浩劫
基因、女孩、華生:雙螺旋二部曲
死亡原因:法醫之神奇案祕錄
天使墜落的城市
正宗CIA詐騙術

企業成功案例

【類別最新出版】
服務革命:美國運通的百年從心哲學,打造高價值團隊的39堂課
ChatGPT:AI革命
台積電為什麼神?:揭露台灣護國神山與晶圓科技產業崛起的祕密
家的夢想,無限大:大家房屋的經營哲學
熱賣行銷學:促銷實戰SOP一次上手(熱賣新裝版)


Linux 傳奇(DH0102)──讓比爾‧蓋茲坐立難安的天才
Rebel Code: Linux and the Open Source Revolution

類別: 行銷‧趨勢‧理財>企業成功案例
叢書系列:BIG系列
作者:葛林‧穆迪
       Glyn Moody
譯者:杜默
出版社:時報文化
出版日期:2001年05月08日
定價:330 元
售價:261 元(約79折)
開本:25開/平裝/360頁
ISBN:9571333638

已絕版

 轉 寄 給 朋 友

 發 表 書 評 

 我 要 評 等 

Share/Bookmark

線 上 試 閱

 

前言書摘 1書摘 2書摘 3書摘 4書摘 5書摘 6



  書摘 6

另外兩個大計畫是,創作系統殼(shell)程式和 C 語言程式庫(C library)。系統殼程式提供作業系統基本介面:「要鍵入指令,首先必須要有系統殼程式,」史托曼說。 GNU 的系統殼程式叫 Bash ,這是Bourne Again Shell的縮寫,也是文字遊戲,因為 Unix 的系統殼程式就叫 Bourne Shell。

C 語言程式庫是一大群別的程式可以呼叫的輔助碼。以這種方式分割出一套通用的功能,可以大幅縮小使用者程式。因此,要讓 GNU 作業系統能執行使用者程式和有效執行,先決條件就是替 GNU 創作一個 C 語言函式庫。

C 語言函式庫和 Bash 連同 Unix 作業系統其他元件,都已在 1990 年左右一起完成,但仍然少了從各方面來說都是最為重要的程式:核心程式(kernel)。顧名思義,核心程式位居作業系統中心,作用有如管家(處理螢幕和鍵盤之類的工作)和法官(確保從使用者程式中叫出的程式都能正確處理)。雖然還有很多別的程式,例如 C 語言程式庫和系統殼程式,對全功能作業系統而言也是不可或缺的,但界定系統根本要素的卻是核心程式。

以核心程式的核心特質來說,史托曼把它擺到最後好像有點奇怪。部分原因是由於他跟譚寧邦不睦分了心,以及他矢言給 GNU 系統寫的第一批程式一定要有 C 語言編譯器。此外,他先開發程式設計工具,以便創作核心程式使用,也不無道理。

不過,還有一個理由。「我想繞過最困難的部分,」史托曼說。除錯的核心程式很棘手,因為,標準的設計工具全靠功能完整的核心程式。為了繞過這個問題,史托曼再次找尋可以改造的合適軟體。他心裡已經有個譜:「我要找的是微核心程式(microkernel)。」

微核心程式把具有審判作用的核心小軟件觀念,帶到它邏輯結論上,只需以終端使用者的應用程式如文字處理和表格程式等,即可控制常見於核心程式的管家任務(housekeeping tasks)。鑑於典型的整體核心程式(習稱單一核心)觀念,贊成和反對這個方法的人各有支持者,形成了駭客所謂的「宗教戰爭」,一直持續至今。

史托曼鍾情於微核心,不是出於教條因素,而是「如此即可省去在純機器(硬體)上執行的軟體除錯的工作﹂。他依舊著眼於節省時間和力氣,設法採用已經處理過較棘手問題的現成程式碼。此外,他還認為這種設計可以提供一些「好功能」。

史托曼很幸運──或者說,當時他是這麼認為。「我們終於找到一個本以為已開發和在運作中的微核心,」他說。「我們只須以部分核心程式寫使用者程式」,即可創作 GNU 作業系統 GNU Hurd 還缺少的心臟。

遺憾的是,他發現找到的微核心跟他所想的不同,「並不是已經可以完全無誤地運作」。不僅如此,要消除程式碼上所有的錯誤也比預期困難許多。「我們遭遇到很棘手的除錯環境,」他解釋道。

其實,「回想起來,開發單一核心程式可能更快更容易,或許這才是正途」。不過,Hurd 第一個工作版雖然遲至 1996 年才發表,史托曼卻是看得很開。「所有個別的軟體計畫都只是 GNU 計畫中的一件, GNU 基本上不是要開發這一件或那一件軟體。 GNU 跟所有的作業系統一樣,是集許多程式之大成,我們寫一點,再從別的地方拿一點,後來就達成了完成自由系統的目標。」

史托曼開始寫作和發表 GNU 作業系統組件時,他的主要關切點之一,是要確保他和撰寫程式碼的同伴所創作的程式,在使用者間自由和公開地流傳;有心人很輕易便可在過程中把 GNU 程式當成專利產品販賣,因此,單是把它們放在公共領域上還不夠。史托曼必須以嶄新和非常的手段防微杜漸,也就是說,起草一種旨在保護而不是限制使用者權利的軟體授權書。

他在 1985 年就以GNU/Emacs「通用公共許可證」(GPL: General Public License)處理這個問題。「我跟律師共同起草,」他說;此舉保障他所要確立的自由軟體在法律上無懈可擊。在這新的「反版權」(copyleft)──相對於版權(copyright)──觀念之下,使用者可以複製、修改和出售原版本或修正版本,但不能修正反版權賦予使用的權益。舉例來說,根據他們的程式所發展出來的軟體也應供自由使用,同樣的,他們對反版權程式所做的修正,也須視同反版權,所以也應供眾人自由取得。再者,若依GNU GPL公布的軟體與專利(非自由)的程式碼結合,最後結合產品也應依 GPL 公布。換句話說,GNU GPL以本身的授權「改裝」所使用的軟體,在倡導自由軟體上確是極為高明的方法。

第一個 GNUGPL 之後緊跟著是 GCCGPL ,以及好幾個類似的 GNU 授權。不過,史托曼發現,這種零碎的做法有礙若干應用,非僅不俐落(駭客圈的大罪之一),也極為不便。舉例而言,你不能拿一個(依 GPL 授權公布的程式)程式碼,用在別的程式上,」史托曼解釋道。「所以,我決定最好是有個可以一體適用的單一授權。」這就是 GNUGPL──史托曼稱之為「子程式」,因為「你可以把它逐字地丟進任何程式,它都適用」,這就如同程式設的子程式可以丟到別的程式碼裡,以節省時間。

自由修正 GNUGPL 程式,意謂反版權軟體的原始碼也應被自由使用,若只是提供二進位制碼──0和1的排列──修改程式便不可行,屬違反授權行為。因此,GNUGPL 的效應之一即是確保原始碼永遠可供程式使用,這在別人要修改(特別是改良)程式時極為重要。此外,GNU GPL 也確認這類改良應該連同原始碼供人自由使用,讓所有人同享使用者共同提升的利益。
它亦具事半功倍之效。具有某種特定功能的程式依反版權原則公布後,別人在寫類似的程式時可以順理成章地取而用之,不必像商務軟體一樣,每寫一次特定的程式,都得重新發明一套。

史托曼的 GNUGPL 形同為駭客世界創造了一部成文憲法,詺記著他們的團體應該如何運作的基本假設,從而使得駭客世界的發展,比以前沒有明訂這些「法律」的時候更有效率。GNUGPL 的應用越普及,力量也越大,因為反版權程式越多,日後可供利用的程式數量也越大,便於駭客創作,並使 GPL 軟體更進一步成長茁壯。

這過人效率乃是促成自由軟體計畫在 90 年代取得驚人成就的主要動力,單憑這個因素,加上他致力於整合 GNU 作業系統的努力,電腦界可謂受惠良多。

然而,對史托曼而言,強調一貫效率卻有漏失 GNU 計畫和 GNUGPL 要義之虞。他關心的是自由,因此 GNU 計畫本身並不是目的,而是達成目的的手段而已。

「總目標是給使用者自由軟體,讓他們自由,以及以完全自由的軟體,盡可能地拓展疆界。」史托曼說。「 GNU 的觀念就是讓人可以在不必接受別人支配的情況下,利用電腦來做事。不讓軟體界所有人說,『我不讓你知其所以然,要繼續讓你無可奈何地依賴我,要是你跟朋友共用,我會告你盜版,把你關到牢裡。』。」