第一章 緒論
第五節 開放原始碼簡介
開放原始碼中可探討的議題不少,為避免失之龐雜,在此擇要從底下幾個角度切 入,做為簡介。
第一項 何謂原始碼
原始碼(source code)是程式設計師創作的成果,形式上一般以人工可閱讀的高階電 腦語言所組成,所謂「寫程式」,即是設計師以特定語言描述電腦執行功能的創作過程。
相對於原始碼的是「目的碼」(object code),目的碼是電腦硬體據以執行的指令,形式上 以晶片可讀取的二元碼所組成,非人工所能閱讀,目的碼透過「編譯」(compile)的步驟 產生,不同的電腦語言透過不同的編譯器(compiler)將原始碼編譯轉換成目的碼。軟體的 改良原則上必須透過原始碼的修改才能達成,因此,是否取得原始碼便成為能否修改軟 體的關鍵。
根據複雜度的不同,一個軟體的原始碼可能由單一個檔案到上百個檔案所組成,甚 至更多,軟體中的細部功能往往也不是全部自己開發,而是藉助外部的函式庫(library),
函式庫通常同樣以目的碼形式存在,由其他人或底層的作業系統所提供。原始碼、目的 碼及函式庫彼此之間的關係可由下圖表示:
圖一 原始碼、目的碼及函式庫的關係4
透過圖示,一則瞭解資訊技術的細節,一則有助於後續探討開放原始碼的法律議 題。例如,可執行的軟體通常由數個原始碼構成,個別的原始碼可能採取開放模式或專 屬模式,或者具備不同的授權條款,各個原始碼的所有人可能並不相同,而且原始碼編 譯成目的碼之後,可能採取不同的授權方式供他人使用,加上自己的軟體如何與他人提 供的函式庫連結,必須受到函式庫本身授權條款的限制等。以這些問題為例,如果對應 到圖示本身,基本上可以視為圖中的每個物件依據所有權人及授權條款的不同,可能與 其他物件形成不同的法律關係。將不同關係或狀態的組合套到圖上,開放原始碼下法律 議題的複雜度將跟著增加,除此之外,實務上也會衍生出一些需要探討的問題。例如,
原始碼如果公開,應該透過何種機制確保達到公開的目的?公開後是否允許他人修改、
散布衍生的原始碼?允許他人修改、散布時,可否要求他人繼續公開衍生的創作?如果 原始碼並非同一人所有,可否合併?各個原始碼的授權條款相異時,該如何處裡?使用 他人開放的目的碼,是否自己的原始碼必須跟著公開?類似這些問題,如果事先能對原 始碼與目的碼之間的關係具備一定的瞭解,將有助於解決技術實務上真正碰到的法律問 題。
第二項 如何開放
4 關係圖參考 http://www.webopedia.com/TERM/L/link.html 而來。
就字義解釋,「開放」表示揭露原始碼之意。一般傳統專屬軟體模式,原始碼保持 在廠商手中,以著作權、營業秘密的方式保護,消費者拿到的是可執行的目的碼。所謂 購買軟體,消費者取得的是使用軟體的授權,授權標的多半不包括取得原始碼在內。取 得原始碼等於取得軟體廠商大部分的智慧財產,對軟體廠商有害而無利,一般無法閱讀 高階電腦語言的使用者,多了原始碼也沒有太大用處。因此,專屬軟體模式多半等同於
「封閉」原始碼模式。
對於封閉原始碼模式,部分程式設計師有不同的想法,認為封閉的模式應該打破,
程式設計師如能自由閱讀、修改、散布自己或他人的原始碼,將可促進資訊科技的進步。
開放原始碼運動在這樣的精神下,出現許多程式設計師及團體參與其中,與特別重要的 首推「自由軟體基金會」(Free Software Foundation, FSF)5與「開放原始碼協會」(Open Source Initiative, OSI)6。本文所謂「開放原始碼軟體」,簡言之,可以視為符合自由軟體 基金會定義的「自由軟體」(Free Software)或符合開放原始碼協會標準的軟體,兩個單 位在理念上雖有不同,但重疊相容之處較多,無礙於本文研究,故等同看待7。
對自由軟體基金會來說,自由軟體具備幾項特徵,其中重要值得提出者如:軟體散 布時必須揭露原始碼、不得對原始碼本身收費等。為確保自由軟體的延續,自由軟體基 金會採取特殊的 GPL (General Public License)公眾授權8,其中規定對自由軟體,使用者 可自行複製、修改、散布其原始碼,但必須附上並遵守 GPL 授權條款的規定。散布衍 生著作時,必須採用相同的 GPL 條款再公開原始碼,除非衍生著作只供自己使用,則 無需公開原始碼。如果違反 GPL 規定,將自動喪失 GPL 條款賦予的權利。因為使用者 不需要簽名,使用者可以選擇接受或不接受 GPL 條款及 GPL 軟體,如果使用者選擇修 改或散布了自由軟體,則表示同意接受 GPL 條款的規範。另外,由於程式設計師無償
5 See Free Software Foundation, at http://www.fsf.org (visited May. 3, 2004).
6 See Open Source Initiative, at http://www.opensource.org (visited May 3, 2004).
7 理念上的不同仍造成負面影響,有礙於開放原始碼運動的推展。See generally Teresa Hill, Fragmenting the Copyleft Movement: The Public Will Not Prevail, 1999 UTAH L.REV.797 (1999).
8 See GNU, General Public License, at http://www.gnu.org/licenses/licenses.html#GPL (visited May 7, 2004).
提供原始碼,在 GPL 授權下不提供任何擔保,所有風險由使用者自負。
圖 1-1 提到函式庫的使用,在 GPL 的規定下,如果函式庫以 GPL 條款授權,其他 專屬軟體連結到函式庫時,也構成軟體的使用,必須跟著開放其原始碼。這樣的規定對 許多軟體來說,可能過於嚴苛,因此,自由軟體基金會提出強制性較弱的 LGPL (Lesser GPL)9。以軟體的目的,大部分函式庫努力的目標是增加使用的人數,以擴大其影響力,
影響力越大,越可能成為業界的典範或標準,通常,如果函式庫位於系統架構較為基礎 的層次,受到其他軟體使用的可能性也相對增加。在這些特性下,如果開放原始碼的函 式庫要求相關者一律開放,反而可能劃地自限,降低專屬軟體採用的意願,因此,LGPL 的提出,剛好解決這個問題。
根據跨平台軟體最大集散地 freshmeat 網站的統計10,其所公布的各類軟體中,GPL 佔有率約為百分之七十,LGPL 排名第二,佔有率略超過百分之五,其餘則由數十種不 同的授權模式瓜分,由此可以看出 GPL 與 LGPL 在開放原始碼議題中的代表性。GPL 與 LGPL 的差異,另外可參考下圖。
9 See GNU, Lesser General Public License, at http://www.gnu.org/licenses/licenses.html#LGPL (visited May 7, 2004).
10 See Freshmeat, License breakdown, Nov. 2003, at
http://www.dwheeler.com/frozen/freshmeat-stats-20031110.html (visited May 3, 2004).
圖二 GPL 與 LGPL 的比較11
所謂開放原始碼,另外可以從「開放原始碼定義」(Open Source Definition)12加以瞭 解。開放原始碼協會創立於自由軟體基金會之後,之所以另闢蹊徑,主要用意在於透過 重新定義,吸引並廣納包含商業團體在內的各方人士,一同在傳統專屬軟體模式外開創 新的可能。該協會採用開放原始碼運動做為整個產業模式轉變的代名詞,並提出「開放 原始碼定義」,定義中包含十項標準,凡公眾授權模式符合全部規定者,即可稱為開放 原始碼授權模式,目前符合者有五十二種授權13,在這些授權條款下公開的軟體則稱為 開放原始碼軟體。其十項定義分別為:(1)免費散布軟體,(2)要求散布原始碼,(3)衍生 著作採原著作的相同授權,(4)維持原作者的人格權與著作完整性,(5)不得歧視任何團 體或個人,(6)不得歧視任何領域,(7)授權本身足以賦予所述之權利,(8)授權不得針對 特定產品,(9)授權不得限制其他軟體,(10)授權必須技術中立。其中第一、二、三項與 本文研究相關,與自由軟體的規範也類似,事實上,GPL 公眾授權符合上述開放原始碼
11 MARTIN FINK,THE BUSINESS AND ECONOMICS OF LINUX AND OPEN SOURCE 46-47(2002).
12 See OSI, The Open Source Definition Version 1.9, at http://www.opensource.org/docs/definition.php (visited May 3, 2004).
13 See OSI, The Approved Licenses, at http://www.opensource.org/licenses (visited May 3, 2004).
定義下的規定,因此,GPL 授權的自由軟體亦可視為開放原始碼軟體。
第三項 開放原始碼的重要性
從統計數字中14,可以觀察到開放原始碼的佔有率不斷提升,這一點除了反應開放 原始碼影響的層面擴大外,在開放原始碼模式的重要性中有兩點值得提出。首先是軟體 的安全性與穩定性;開放社群認為:「對原始碼注視的目光如果夠多,臭蟲將無所遁形。」
15臭蟲是軟體的瑕疵,通常是程式設計師的無心之過,或是軟體複雜度升高後不可避免 的副產品。雖是無心之過,後果可能十分嚴重,例如,1996 年六月,歐洲太空總署發射 無人巨型火箭 Ariane 5,升空後不到四十秒爆炸。該火箭造價七十億美金,歷時十年,
爆炸原因是火箭內部軟體誤將一個 64 位元數值塞到 16 位元資料,結果釀成大禍16。 網路普及之後,電腦病毒與木馬程式逐漸取代臭蟲,成為資訊安全的主要威脅。例 如,2004 年五月,網路病毒 Sasser 蔓延並波及國內郵政系統,全國三分之一郵局的電 腦受害,儲匯繳款作業全面停擺,據估計,該病毒在全球造成百萬電腦中毒17。無獨有 偶,約於同一時間,刑事警察局偵九隊經過相當期間的監控後公開表示,國內資訊安全 已出現大規模的「木馬屠城記」,並呼籲企業與民眾自行檢查電腦是否遭到駭客入侵。
據估計,總共約有上百家企業受害,其中包括四家以上網路銀行遭盜領,金額達二、三 千萬,不少高科技業者則有機密資料外流之虞18。不論軟體的瑕疵是有心還是無意,開
14 See David A. Wheeler, Why Open Source Software/Free Software (OSS/FS)?, at http://www.dwheeler.com/oss_fs_why.html (visited May 4, 2004).
15 由開放原始碼協會(Open Source Initiative)創始人 Eric Raymond 所提出之概念:「Given enough eyeballs, all bugs are shallow.」。See Eric S. Raymond, The Cathedral and the Bazaar, at
http://www.firstmonday.dk/issues/issue3_3/raymond (visited June 20, 2004).
16 See James Gleick, A bug and a crash, Dec. 1, 1996, available at http://www.around.com/ariane.html (visited May 4, 2004).
17 該病毒針對微軟公布的 MS04-011 漏洞攻擊,是有史以來漏洞公布後最快出現的病毒,未更新系統者
幾乎難以倖免。有人認為,微軟定期公布系統弱點,如同燈塔般向駭客指出自己要害。參見 93 年 5 月 4 日中國時報、聯合報。
18 參見 93 年 5 月 4 日工商時報。
放模式如同陽光法案,讓原始碼公諸於世,將有助於提高軟體的穩定性與安全性。原始
放模式如同陽光法案,讓原始碼公諸於世,將有助於提高軟體的穩定性與安全性。原始