-
開放源代碼
鎖定
- 中文名
- 開放源代碼
- 外文名
- Open source code
- 應用學科
- 計算機科學與技術
- 又 稱
- 開源軟件
- 屬 性
- 軟件發佈模式
- 依 據
- 在開放源代碼許可證
開放源代碼簡介
開放源代碼軟件源於自由軟件開源運動,簡稱開源軟件。是指那些源代碼公開,可以被自由使用、複製、修改和再發布的一系列軟件的集合。開源軟件許可證,是對開源軟件進行規範的授權合同,也可以稱為授權協議書。其類別繁多,在選擇適用上,瞭解彼此的權利讓渡程度是其關鍵因素。
[1]
開放源代碼軟件就是在開放源代碼許可證下發布的軟件,以保障軟件用户自由使用及接觸源代碼的權利。這同時也保障了用户自行修改、複製以及再分發的權利。簡而言之,所有公佈軟件源代碼的程序都可以稱為開放源代碼軟件。 開放源代碼有時不僅僅指開放源代碼軟件,它同時也是一種軟件開放模式的名稱。使用開放源代碼開放模式的軟件代表就有GNU/Linux操作系統。
嚴格地説來,開放源代碼軟件與自由軟件是兩個不同的概念,只要符合開源軟件定義的軟件就能被稱為開放源代碼軟件(開源軟件)。自由軟件是一個比開源軟件更嚴格的概念,因此所有自由軟件都是開放源代碼的,但不是所有的開源軟件都能被稱為“自由”。但在現實上,絕大多數開源軟件也都符合自由軟件的定義。比如,遵守GPL的軟件都是開放的並且是自由的。
[2]
開放源代碼定義
開放原始碼的定義由Bruce Perens(Debian創始人之一)定義如下:
(1)自由的再散佈
(2)程序源代碼
程序散佈時必須包括源代碼與其所編譯的形式。假若程序在散佈時並未附加源代碼,其必須以一公開方式,在不超過合理的複製成本下,讓人得以取得源代碼,例如可以在不收取費用的情況下在網絡上供入下載。這裏所謂的“源代碼”,必須是程序設計者最易於修改程序的形式,故意混亂源代碼或是以所謂的中間形式,如預處理器、或編譯程序所處理後的結果是不被允許的。
(3)衍生作品
符合開放源代碼定義的授權,必須允許程序的修改與衍生作品”的產生.並且此授權必須允許在相同條件下,對於衍生作品加以散佈。
(4)原創作者程序源代碼的完整性
符合開放源代碼定義的授權,可以禁止他人以修改的形式散佈源代碼,除非此一授權允許基於修改程序的目的,而採取“附加檔案”的方式以區別此一部分非原創作者所創作。此一授權必須明確允許被授權人對於所修改的軟件有加以散佈的權利。此外,授權內容得要求衍生作品必須附加不同於原軟件的名稱或版本編號。
(5)不得歧視任何個人或團體
符合開放源代碼定義的授權,不得對任何人或任何團體有歧視陛的規定。由於有些國家,包含美國在內,對於特定類型的軟件進行出口管制,因此此類軟件通常會有警告的標語,揭示此管制規定;但是在符合開放源代碼定義的授權本身,並不包含此種警告標語在內。
(6)不得歧視程序在任何領域內的利用
符合開放源代碼定義的授權,不得禁止任何人在特定領域使用此程序。例如,其不得禁止程序在商業上的使用,或者在基因研究上的利用。
(7)授權的散佈
開放源代碼授權內的權利,於所有再散佈的程序均有適用,而無須透過其它授權加以行使。換言之,符合開放源代碼定義的授權,必須有適用於所有衍生作品的延續性,以避免被授權人間接藉由附加其它授權的方式影響軟件的開放性。
(8)授權不得專屬於特定產品
附着於程序上的權利,不得僅限於特定軟件散佈的需要。所有程序的被授權人,均與原程序於散佈時的狀態一樣,享有相同的權利。
(9)授權不得對其他軟件加以限制
符合開放源代碼定義的授權,不得對其他隨同此一軟件散佈的其它軟件,附加任何的限制。例如,不得規定在相同媒體散佈的其它軟件,接受此一授權條款所拘束而須開放源代碼。
(10)授權必須是科技中性的
任何條款規定不可基於任何獨特的科技或接12型式。例如,不得限制於使用點選包裏(Clik-Wrap)的方式來下載,否則將有礙透過檔案傳輸協議、CD-ROM或網站映射等方式再下載使用源代碼的可能。
[2]
開放源代碼產生
知識產權模式在很大程度上促進了軟件產業的迅猛發展,對軟件產品的獨佔權給許多的軟件公司(尤其是規模大的軟件公司)帶來了豐厚的商業利潤,微軟就是最好的例證。但是隨着軟件業的發展,傳統的知識產權模式已經越來越顯出其不足之處。主要表現以下兩個方面:
1、軟件成果獨佔權帶來的弊端
2、軟件的源代碼保密帶來的危害
開放源代碼優缺點
開放源代碼優勢
其主要的長處表現在長期可信賴性、平行除錯、平行研發、完美應用程序接口、版本釋出速等方面上。就長期可信賴性而言,只要企業在短期之中不會被排除於競爭市場外就可以稱為具有長期可信賴性。由於在開放源代碼的軟件開發模式下,源代碼是可以很輕易地於許多地方獲得,並且可以自行使用、修改源代碼,因此即使軟件不再開發,自己也可以進一步利用源代碼。此外,透過因特網科技的發展,開放源代碼軟件開放模式可以採取平行除錯、平行研發的做法,將網絡上潛在的無限開發者,免費的加以運用,並且可以同時進行,不受時間、地域的限制,最後只要選擇適合的方案即可,所以只要參與的人數夠多,其源代碼釋放速率通常也較快;就完美的應用程序接口來説,開放源代碼軟件開發模式將的建立於源代碼的開放上,使得使用者能夠透過源代碼來驗證,不像傳統封閉源代碼的電腦軟件只能將其信心建立在軟件公司的形象上。開放源代碼的軟件開發模式最大的優點在於其可得到大量的開放源代碼社羣的支持,如同擁有大量免費的軟件開發及測試人員。這樣將世界各地的優秀人才納為己用,卻又不須支付高額的薪水,這是傳統封閉源代碼的軟件開發模式所無法獲得的。
[2]
開放源代碼劣勢
當然,開放源代碼軟件開發模式也有其缺點,主要表現為管理成本、設計程序議題以及組織可信賴性等。首先就管理成本而言,主要是因為一旦計劃發展到一定程度,其創新、修正的質量必然變大,參與人數眾多,當然也會造成一定的管理成本,另外,整合、決策架構都會增高管理的成本;其次就設計程序議題來看,其不斷釋出新版本,將造成消費者需要不斷重新安裝的困擾,並且由於其設計上通常較不關心友善的界面,會增加使用者的接近使用的難度;最後就組織可信賴性而言,使用者會在意其使用的計算機軟件可從開發組織中獲得如何的支持和關心軟件的未來發展方向。但是,由於開放源代碼軟件是由不同社羣成員所貢獻而成,並且不負質量擔保的責任,因此相對於傳統的軟件企業,確實有可能無法獲得完善的支持,也無法保證軟件未來的發展方向。另外,雖然新的開放源代碼市集式的開發模式,已在世界各地展開運行一段時間,並有許多諸如Linux典型的成功案例,可以説已對計算機軟產業產生一定的衝擊。但是其與傳統開發模式相比亦有其缺點。
[2]
開放源代碼放棄權利
1、作品複製權:
2、作品修改權:
接受某種開放源代碼軟件公共許可協議的用户,在依照協議複製了原軟件作品的目標代碼和源代碼以後,可以對原軟件作品在源代碼上進行修改,並且對修改後的衍生軟件作品,又要遵循先前已有的公共許可協議向後續的用户明確放棄修改權,賦予後續用户繼續修改的權利。
3、作品傳播權: