開源

從 华夏文化百科
於 2014年8月1日 (五) 01:36 由 Test 32(對話 | 貢獻) 所做的修訂 (1個修訂:HDwiki 数据迁移 - 批次 583)
跳到: 導覽、 搜尋

基本簡介

開源 開放源碼軟件通常是有版權 ( copyright ) 的,它的許可證可能包含這樣一些限制:着意地保護它的開放源碼狀態,著者身份的公告,或者開發的控制。實際上,開源軟件同時涉及源碼本身和開發過程,涵蓋了三個方面的意義:免費分發的原始碼、模塊化的體系和集市式的開發--在這種開發方式中,任何地方的任何人都可以參與最終產品的製造,三個方面互相之間有密切的聯繫,集市式的開發過程給開源軟件以強大的改錯能力,因為它將程序中的錯誤公開給了數量巨大的觀眾,他們都是潛在的改錯者。另一方面,任何人都可以復用和發行開源軟件的代碼這一事實又支持了公眾利益,因為創新的觀念被整個集市所共享。另外,「open source」這一術語還被延伸到其他智力團體中,指那些可通過公開手段獲得的智力資源,比如報紙、教學課件等。 美國在像網絡這樣的虛擬環境中,驅動系統的底層代碼,尤其是廣為人知的那些應用程式之間的通信協議,它們在某種意義上很像現實社會中的法規。換句話說,這些代碼對網上的行為給出了一些規範,它鼓勵某些行為,而限制其他行為,就像現實社會的法律一樣。因此,開放源碼帶來了一個更民主的開發方式,在這種方式下,好的主意將被集體分享,而不是作為智力資本被個人秘藏着。在這種意義上,開放源碼實質上成為一種政治哲學。 開放源碼的精神在於使用者可以使用、複製、散佈、研究、改進軟件。最早可以回朔到1960 年代。當時,售賣大型計算機的廠商如IBM,把一些軟件及原始碼一併送給客戶,讓客戶能夠因不同需求而自行更改軟件。在 1991-1992 年期間,住在芬蘭的Linus Torvald製造了第一版的 Linux 作業系統。在一群熱心的程序人員努力下,把 Linux 作業系統以及外圍的應用程式逐一打造。 出名的作品除了趨於成熟的Linux 作業系統外,還有Apache網頁服務器、Perl 程序語言、MySQL 數據庫、Mozilla 瀏覽器、Open Office等等。近來,在政府的推動及各軟件大廠(如IBM、Redhat、Apple 等)的推動下,預料這股旋風將會掀起新的軟件革命。原始碼開放是信息技術發展引發網絡革命所帶來的面向未來以開放創新、共同創新為特點的、以人為本的創新2.0模式在軟件行業的典型體現和生動註解。

版本版權

開源開放原始碼軟件是以全世界有抱負有理想的工程師為研發團隊,持續不斷的創造及改進新一代的軟件產品。 它的精神不在於收取軟件的使用費用,而在於分享,所以不收費,但是使用者需要尊重原著作者的創作以及相對應開放原始碼的版權問題。

開放原始碼軟件就是正版軟件,隨着使用者的增加,開放原始碼軟件趨於精緻產品化,功能接口甚至不輸給高價位的商用軟件。

全世界有超過幾萬套開放原始碼軟件,從網頁瀏覽器、文書處理工具、作業系統以至於企業應用程式等一應俱全。

版權常見問題


常見問題

ASF

BSD

CPL

GPL

LGPL

LGPL*

MIT

得到這些原始著作後, 散佈(distribute) 時是否可收取高於散佈成本之費用

是

是

是

否*

否*

否*

是

散佈時是否必須連同原始碼一起散佈

否

否

是

是

是

是

否

是否可再授權

否

否

是

否

否

否

是

是否得與非自由軟件整合

是

是

是

否

否

否

是

把原始著作放在自創的軟件里,是否必須使用與原著作完全一致的授權條款

否

否

否

是

是

是

否

是否必須公開原始碼

否

否

是

是

是

否

否

是否必須附加原著作之著作權聲明

是

是

是

是

是

是

是

是否必須附加說明文件 例如,說明所修改的範圍與修改時間

否

否

否

是

是

是

否


定義標準

開源關於開放原始碼的定義

開放原始碼並不僅僅意味着對原始碼的訪問權。開放原始碼軟件的發佈條款必須滿足以下條件:

1、自由地再發佈

如果被發佈的軟件是由不同來源的程序組成的,許可證不得限制任何當事人或組織(party)銷售或贈送作為被發佈軟件成分之一的開放源碼軟件。許可證不得從此項銷售中索取使用費或其它任何費用。

2、原始碼

程序必須包括原始碼,必須允許以原始碼方式發佈、還必須允許以編譯後的形式發佈。如果產品的某個部分沒有與原始碼一同發佈,那麼必須提供通行的、不需要支付合理範圍之外的任何費用的手段以獲得原始碼――從網絡上免費下載是一種可取的方式。原始碼必須是程式設計師對其進行修改的最佳形式。故意地使原始碼變得含混晦澀是不允許的。也不允許給出預處理器或翻譯器處理的中間結果。

3、派生作品

許可證必須允許修改軟件和派生軟件,並且必須允許它們按照原軟件的許可證的條款進行發佈。

4、作者的原始碼的完整性

只有在許可證允許與原始碼一同發佈「補丁文件」(該「補丁文件」以在創建時對程序進行修改為目的)時,許可證才能限制對修改形式的原始碼的發佈。許可證必須明確地允許發佈由修改後的原始碼生成的程序。許可證可以要求派生的作品採用不同的名稱或不同的版本號以區別於原來的軟件。

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

許可證不得歧視任何個人或者由多人組成的團體。

6、不得歧視任何應用領域(fieldsofendeavor)

許可證不得限制任何人把程序應用於任何領域。例如,不得規定程序不能應用於商業領域或基因研究領域。

7、許可證的發佈

與程序有關的權利必須適用於該程序的任何使用者,並且程序的使用者也不需要為了使用該程序而獲得其它許可證的許可。

8、許可證不能針對於一個產品

與程序有關的權利不能由該程序是否作為某個軟件產品的一部分來決定。如果程序從那個發佈中被抽出來,並且按照程序的許可證的條款進行使用和發佈,那麼得到該程序的當事人或組織將獲得與得到原程序的使用者相同的權利。

9、許可證不能影響其它軟件

許可證不得向與採用它的軟件一同發佈的其它軟件提出任何限制。例如,許可證不能堅持要求在同一媒體上發佈的其它程序都是開放原始碼軟件。


定義原理

開源本開放原始碼定義涵蓋了由絕大多數軟件團體使用的術語「開放原始碼」的最初含義和當前含義。然而,該術語被廣泛地應用,並且它的含義變得不精確了。OSICertified標誌是某個軟件發佈許可證是否服從開放原始碼定義的OST認證方式。一般的術語「開放原始碼」並不提供這種擔保,但仍然鼓勵使用「開放原始碼」這一術語以表明它符合「開放原始碼定義」。關於OSICertified標誌的信息,以及已經通過了OSICertified、符合「開放原始碼定義」的許可證。

開放原始碼定義之原理:給出開放原始碼的定義的目的是:把所確信的、由軟件開發團體所公認的「開放原始碼」的含義作為一組具體的準則寫下來---該準則確保按照開放原始碼許可證發佈的軟件可以得到與其它軟件同樣認真的評審、使軟件可以不斷地得到改良和遴選,從而提供非開放軟件所難以提供的可靠性與能力。

為了使此項工作持續發展,必須抵制人們為了短期利益而中止為軟件開發做出貢獻。這意味着,許可證的條款必須防止人們藏匿(lockup)原始碼從而導致只有很少的人才能夠閱讀和修改它。當軟件的開發者按照由OSI認證的許可證發佈他們的軟件時,他們可以在軟件中使用「OSICertified」標誌。這種認證標誌告知用戶,該軟件所採用的許可證符合開放原始碼定義。

開放原始碼軟件的發佈者有權為他們自己的軟件做出選擇。GPL滿足這條要求。按GPL發佈的庫只影響(contaminate)在運行時與之連接的軟件,於僅僅和它一同發佈的軟件無關。


標誌綱要

開源開放原始碼定義給出了開放原始碼軟件的基本性質。不幸的是,術語「開放原始碼」遭到了濫用,並且由於它的描述性,它不能作為一個商標被保護。由於社團需要一種可靠的方式以確定一份軟件是否真正是開放原始碼軟件。OSI為此目的而註冊了一個認證標誌,OSICertified。如果你在一份軟件上看到了該標誌,那麼該軟件就是必定是按照遵從開放原始碼定義的許可證發佈的,否則,該發行人就是在濫用該標誌而且違反了法律。

OSI Certified標誌被用於軟件而不是許可證:人們需要知道的是組成軟件的包和它們的許可證是開放的原始碼。此外,單獨的許可證可能不是「貨物」,它由美國專利和商標局註冊認證標誌。但是軟件的作者顯然必須能夠在不詢問情況下(自我認證)、在適當的時刻確認他們的軟件是按照OSICertified的開放原始碼方式發佈的。所以認證按照兩步進行:

OSI提供一個滿足開放軟件原始碼定義的開放原始碼許可證表。這些許可證經過公眾的詳細審查並且被所批准。如果你有一個希望加入該列表的許可證,請與license-approval@opensource.org聯繫,它啟動了獲得許可證批准的程序。

如果你希望在你的軟件上設置OSICertified標誌,你可以從列表中選擇一個獲得批准的許可證並根據它發佈軟件,並且適當地為軟件做標誌。上面僅僅是一個概括。下面給出申請批准許可證和把OSICertified標誌應用在你的軟件上的詳細說明。


許可審批

開源1、通過電子郵件把許可證發送給license-approval@opensource.org。在電子郵件中說明你是否願意以你的簽名或者匿名地把許可證發送到許可證討論列表中。(願意考慮那些根本不希望被發送的許可證,但由於社團的評審是批准的一個重要組成部分,將不得不把該許可證私下地發送給評審者:因此,對沒有被發送到許可證討論列表中的許可證的批准,要花費更長的時間,並且通常要更多地與你交流。)

2、如果發現你的許可證不符合開放原始碼的定義,將與你一同解決這個問題。

3、同時,將關注許可證論壇列表,並且與你一同工作以解決大家提出的任何未包含的問題。

4、作為該過程的一部分,還將就許可證問題向外界尋求法律上的建議。

5、一旦許可證符合了開放原始碼定義,並且在許可證論壇上經過了充分的討論或者其它的評審者沒有提出認為重要的問題,將通知你,許可證已經被批准了,同時它被複製到網站上,並且被加入以下的許可證列表。


標識聲明

開源可以在這兩種軟件的發行上使用OSI Certified標誌。該軟件的發佈包括並且達到了被批准的許可證列表中某個許可證的要求,或者該軟件的原始碼已經被明確地放到公眾可以得到的位置。為了表明你的軟件是按照OSI Certified發佈的,你必須不加任何修改地把下面兩者之一,按照下述方式加入你的軟件。 完整的聲明是:This software is OSI Certified Open Source Software。OSI Certified is a certification mark of the Open Source Initiative。

較簡短的聲明是:OSI Certified Open Source Software

軟件的每種發佈形式都有自身的要求:

如果軟件以電子的形式發佈(而不是實物(tangible)的形式),你必須把完整的聲明放在README文件或者類似的、人類用戶將首先閱讀的文件中。如果軟件以實物形式發佈,你必須完成以下所有可行的任務:如果軟件的發佈包括印刷品,你必須把完整的聲明加入該印刷品。如果軟件發佈在可擦寫的媒體(例如軟磁盤)、CD-ROM、磁帶等媒體上,它們在物理上可以添加能夠被人的裸眼所閱讀的簡短聲明,而不影響它們的功能,你必須把完整的聲明或簡短的聲明標註在該媒體上。如果軟件的發佈是一個包,從而使其中的聲明不能被閱讀。你必須在包的外面放置完整的聲明。

獲得批准的許可證

以下許可證滿足開放原始碼的定義,並且已經被批准用於OSI Certified的開放原始碼軟件。沒有給出批准日期的許可證是在1999年1月1日以前批准的。The GNU General Public License(GPL);The GNU Library(Lesser) General Public License(LGPL);The BSD License;The X Consortium License;The Artistic License;The Mozilla Public License(MPL);The QPL;

其它符合定義的許可證包括:libpng許可證、zlib許可證、IJGJPEG許可證和OPL(Open LDAP Public License)許可證。