共找到2條詞條名為開放源代碼的結果 展開

開放源代碼

軟體發布的模式

開放源代碼(Open source code)也稱為源代碼公開,指的是一種軟體發布模式。一般的軟體僅可取得已經過編譯的二進位可執行檔,通常只有軟體的作者或著作權所有者等擁有程序的原始碼。有些軟體的作者會將原始碼公開,此稱之為“源代碼公開”,但這並不一定符合“開放源代碼”的定義及條件,因為作者可能會設定公開原始碼的條件限制,例如限制可閱讀原始碼的對象、限制衍生品等。

簡介


開放源代碼軟體源於自由軟體開源運動,簡稱開源軟體。是指那些源代碼公開,可以被自由使用、複製、修改和再發布的一系列軟體的集合。開源軟體許可證,是對開源軟體進行規範的授權合同,也可以稱為授權協議書。其類別繁多,在選擇適用上,了解彼此的權利讓渡程度是其關鍵因素。
開放源代碼軟體就是在開放源代碼許可證下發布的軟體,以保障軟體用戶自由使用及接觸源代碼的權利。這同時也保障了用戶自行修改、複製以及再分發的權利。簡而言之,所有公布軟體源代碼的程序都可以稱為開放源代碼軟體。開放源代碼有時不僅僅指開放源代碼軟體,它同時也是一種軟體開放模式的名稱。使用開放源代碼開放模式的軟體代表就有GNU/Linux操作系統。
嚴格地說來,開放源代碼軟體與自由軟體是兩個不同的概念,只要符合開源軟體定義的軟體就能被稱為開放源代碼軟體(開源軟體)。自由軟體是一個比開源軟體更嚴格的概念,因此所有自由軟體都是開放源代碼的,但不是所有的開源軟體都能被稱為“自由”。但在現實上,絕大多數開源軟體也都符合自由軟體的定義。比如,遵守GPL的軟體都是開放的並且是自由的。

定義


Open Source[開放源碼]
Open Source[開放源碼]
開放原始碼的定義由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、作品傳播權:
接受某種開放源代碼軟體公共許可協議的用戶,在自由地獲取了依照該協議發布的軟體作品,並進行了相關的修改完善之後,有依照該協議繼續無條件向後續用戶發布初始軟體作品以及修改後軟體作品的義務。