開放源代碼

開放源代碼

軟件發布模式
開放源代碼(Open source code)也稱為源代碼公開,指的是一種軟件發布模式。一般的軟件僅可取得已經過編譯的二進制可執行檔,通常隻有軟件的作者或著作權所有者等擁有程序的原始碼。有些軟件的作者會将原始碼公開,此稱之為“源代碼公開”,但這并不一定符合“開放源代碼”的定義及條件,因為作者可能會設定公開原始碼的條件限制,例如限制可閱讀原始碼的對象、限制衍生品等。[1]
  • 中文名:開放源代碼
  • 外文名:Open source code
  • 别名:開源軟件
  • 屬性:軟件發布模式
  • 應用學科:計算機科學與技術
  • 依據:在開放源代碼許可證

簡介

開放源代碼軟件源于自由軟件開源運動,簡稱開源軟件。是指那些源代碼公開,可以被自由使用、複制、修改和再發布的一系列軟件的集合。開源軟件許可證,是對開源軟件進行規範的授權合同,也可以稱為授權協議書。其類别繁多,在選擇适用上,了解彼此的權利讓渡程度是其關鍵因素。

開放源代碼軟件就是在開放源代碼許可證下發布的軟件,以保障軟件用戶自由使用及接觸源代碼的權利。這同時也保障了用戶自行修改、複制以及再分發的權利。簡而言之,所有公布軟件源代碼的程序都可以稱為開放源代碼軟件。開放源代碼有時不僅僅指開放源代碼軟件,它同時也是一種軟件開放模式的名稱。使用開放源代碼開放模式的軟件代表就有GNU/Linux操作系統。

嚴格地說來,開放源代碼軟件與自由軟件是兩個不同的概念,隻要符合開源軟件定義的軟件就能被稱為開放源代碼軟件(開源軟件)。自由軟件是一個比開源軟件更嚴格的概念,因此所有自由軟件都是開放源代碼的,但不是所有的開源軟件都能被稱為“自由”。但在現實上,絕大多數開源軟件也都符合自由軟件的定義。比如,遵守GPL的軟件都是開放的并且是自由的。

定義

開放原始碼的定義由Bruce Perens(Debian創始人之一)定義如下:

(1)自由的再散布

符合開放源代碼定義的授權,不得限制任何一方銷售或讓予已成為其中一部份的開放性源代碼,即使該聚合性軟件中包含多種不同來源的程序。此一授權不得要求權利金或其它費用。

(2)程序源代碼

程序散布時必須包括源代碼與其所編譯的形式。假若程序在散布時并未附加源代碼,其必須以一公開方式,在不超過合理的複制成本下,讓人得以取得源代碼,例如可以在不收取費用的情況下在網絡上供入下載。這裡所謂的“源代碼”,必須是程序設計者最易于修改程序的形式,故意混亂源代碼或是以所謂的中間形式,如預處理器、或編譯程序所處理後的結果是不被允許的。

(3)衍生作品

符合開放源代碼定義的授權,必須允許程序的修改與衍生作品”的産生.并且此授權必須允許在相同條件下,對于衍生作品加以散布。

(4)原創作者程序源代碼的完整性

符合開放源代碼定義的授權,可以禁止他人以修改的形式散布源代碼,除非此一授權允許基于修改程序的目的,而采取“附加檔案”的方式以區别此一部分非原創作者所創作。此一授權必須明确允許被授權人對于所修改的軟件有加以散布的權利。此外,授權内容得要求衍生作品必須附加不同于原軟件的名稱或版本編号。

(5)不得歧視任何個人或團體

符合開放源代碼定義的授權,不得對任何人或任何團體有歧視陛的規定。由于有些國家,包含美國在内,對于特定類型的軟件進行出口管制,因此此類軟件通常會有警告的标語,揭示此管制規定;但是在符合開放源代碼定義的授權本身,并不包含此種警告标語在内。

(6)不得歧視程序在任何領域内的利用

符合開放源代碼定義的授權,不得禁止任何人在特定領域使用此程序。例如,其不得禁止程序在商業上的使用,或者在基因研究上的利用。

(7)授權的散布

開放源代碼授權内的權利,于所有再散布的程序均有适用,而無須透過其它授權加以行使。換言之,符合開放源代碼定義的授權,必須有适用于所有衍生作品的延續性,以避免被授權人間接藉由附加其它授權的方式影響軟件的開放性。

(8)授權不得專屬于特定産品

附着于程序上的權利,不得僅限于特定軟件散布的需要。所有程序的被授權人,均與原程序于散布時的狀态一樣,享有相同的權利。

(9)授權不得對其他軟件加以限制

符合開放源代碼定義的授權,不得對其他随同此一軟件散布的其它軟件,附加任何的限制。例如,不得規定在相同媒體L散布的其它軟件,接受此一授權條款所拘束而須開放源代碼。

(10)授權必須是科技中性的

任何條款規定不可基于任何獨特的科技或接12型式。例如,不得限制于使用點選包裡(Clik-Wrap)的方式來下載,否則将有礙透過檔案傳輸協議、CD-ROM或網站映射等方式再下載使用源代碼的可能。

産生

知識産權模式在很大程度上促進了軟件産業的迅猛發展,對軟件産品的獨占權給許多的軟件公司(尤其是規模大的軟件公司)帶來了豐厚的商業利潤,微軟就是最好的例證。但是随着軟件業的發展,傳統的知識産權模式已經越來越顯出其不足之處。主要表現以下兩個方面:

1、軟件成果獨占權帶來的弊端

基于知識産權保護的獨占權,就阻礙了他公司進入此類市場的“商業壁壘”,無相關産品接應,無市場競争,從而形成了壟斷。

2、軟件的源代碼保密帶來的危害

由于知識産權保護,各個公司對軟件源代碼保密,隻有公司内部流通交流,軟件技術專家和學者無法進行學習和研究,造成了軟件的重複開發和使用,浪費社會勞動力。并且,軟件的安全性和改進完善受到了限制。

由于軟件行業的壟斷,造成了學術界的強烈不滿,因此開源運動和自由運動産生了。開放源代碼軟件源于自由軟件運動。

優缺點

優勢

其主要的長處表現在長期可信賴性、平行除錯、平行研發、完美應用程序接口、版本釋出速等方面上。就長期可信賴性而言,隻要企業在短期之中不會被排除于競争市場外就可以稱為具有長期可信賴性。由于在開放源代碼的軟件開發模式下,源代碼是可以很輕易地于許多地方獲得,并且可以自行使用、修改源代碼,因此即使軟件不再開發,自己也可以進一步利用源代碼。此外,透過因特網科技的發展,開放源代碼軟件開放模式可以采取平行除錯、平行研發的做法,将網絡上潛在的無限開發者,免費的加以運用,并且可以同時進行,不受時間、地域的限制,最後隻要選擇适合的方案即可,所以隻要參與的人數夠多,其源代碼釋放速率通常也較快;就完美的應用程序接口來說,開放源代碼軟件開發模式将的建立于源代碼的開放上,使得使用者能夠透過源代碼來驗證,不像傳統封閉源代碼的電腦軟件隻能将其信心建立在軟件公司的形象上。開放源代碼的軟件開發模式最大的優點在于其可得到大量的開放源代碼社群的支持,如同擁有大量免費的軟件開發及測試人員。這樣将世界各地的優秀人才納為己用,卻又不須支付高額的薪水,這是傳統封閉源代碼的軟件開發模式所無法獲得的。

劣勢

當然,開放源代碼軟件開發模式也有其缺點,主要表現為管理成本、設計程序議題以及組織可信賴性等。首先就管理成本而言,主要是因為一旦計劃發展到一定程度,其創新、修正的質量必然變大,參與人數衆多,當然也會造成一定的管理成本,另外,整合、決策架構都會增高管理的成本;其次就設計程序議題來看,其不斷釋出新版本,将造成消費者需要不斷重新安裝的困擾,并且由于其設計上通常較不關心友善的界面,會增加使用者的接近使用的難度;最後就組織可信賴性而言,使用者會在意其使用的計算機軟件可從開發組織中獲得如何的支持和關心軟件的未來發展方向。但是,由于開放源代碼軟件是由不同社群成員所貢獻而成,并且不負質量擔保的責任,因此相對于傳統的軟件企業,确實有可能無法獲得完善的支持,也無法保證軟件未來的發展方向。另外,雖然新的開放源代碼市集式的開發模式,目前已在世界各地展開運行一段時間,并有許多諸如Linux典型的成功案例,可以說已對計算機軟産業産生一定的沖擊。但是其與傳統開發模式相比亦有其缺點。

放棄權利

開放源代碼軟件放棄了以下著作權人所享有的權利:

1、作品複制權:

接受某種開放源代碼軟件公共許可協議的用戶,對于初始軟件作品可以自由複制,也放棄了自己對初始軟件作品修改完善以後衍生版本軟件的複制限制權利。

2、作品修改權:

接受某種開放源代碼軟件公共許可協議的用戶,在依照協議複制了原軟件作品的目标代碼和源代碼以後,可以對原軟件作品在源代碼上進行修改,并且對修改後的衍生軟件作品,又要遵循先前已有的公共許可協議向後續的用戶明确放棄修改權,賦予後續用戶繼續修改的權利。

3、作品傳播權:

接受某種開放源代碼軟件公共許可協議的用戶,在自由地獲取了依照該協議發布的軟件作品,并進行了相關的修改完善之後,有依照該協議繼續無條件向後續用戶發布初始軟件作品以及修改後軟件作品的義務。

上一篇:

下一篇:神通

相關詞條

相關搜索

其它詞條