開源軟件即開放源代碼軟件,其定義首先起源於自由軟件(Free Software)。自由軟件出現以前的規則是軟件開發商擁有軟件源代碼的專用權,他們緊緊控制了源代碼,只有他們纔有特權訪問源代碼,用戶和其餘程序員沒法查看、改動和完善,使用戶沒法真正融入計算機環境之中。Richard Stallman 倡導自由軟件運動,就是要開發出一系列完整的軟件,由原做者對本身的一些知識產權的權利進行放棄,具體說應該是向公衆的許可,贊成不但開放源代碼,並且鼓勵用戶之間互相拷貝,經過網絡在線服務,電子公告板(BBS)的發佈,或者從一個用戶的手裏傳給另外一個用戶等途徑自由地傳播,並藉此得到學術上和技術上的交流,讓別人修正和改進源代碼並接受自由軟件運做規則,再從新發布。用這種模式去激發世界各地的軟件開發人員投入到自由軟件的開發中,軟件開發人員的集體智慧獲得充分發揮,人們能夠及時發現並解決程序中存在的問題,減小大量沒必要要的重複勞動。程序員
自由軟件是指容許任何人使用、拷貝、修改、分發(免費/少量收費)的軟件。尤爲是這種軟件的源代碼必須是可獲得的。從某種意義上說,「沒有源代碼,就稱不上是(自由)軟件。」自由軟件不多標價出售,能夠理解爲必定程度的免費。但有時軟件公司在說起價格時使用「free software」這個字眼,他們的意思多是你能夠免費得到一份二進制代碼的拷貝,也多是在你所購買的機器中已經包含了一份拷貝。可是,這種說法與在GNU 計劃中「free software」的意義是不一樣的。因爲在操做中極易混淆,所以一旦軟件公司說他們的軟件是自由軟件,您必定要檢查您是否獲得了自由軟件所應包括的一切。有時,您獲得的是自由軟件,有時不是。算法
這兩個名詞實質是從兩個角度看待一樣一類事物,對同一類軟件的不一樣叫法,突出不一樣的價值取向和精神。兩者的差異在於給出定義的角度不一樣。「開放源代碼軟件」(Open Source Software,也有譯爲「公開源代碼軟件」)的定義是從技術層面上講,而「自由軟件」則是從被許可的權利層面上講。至於自由軟件和開放源代碼軟件的區別,實際體現的就在於許可證對權利義務的規定的嚴與緊的程度上,有學者認爲,開放源代碼軟件許可證中那部分對被許可人權利限制比較嚴的許可證是自由軟件許可證,也就是說,開放源代碼軟件的範圍要稍寬一些,自由軟件的許可證中不容許被許可人將本許可證許可的源代碼的修改版本、演繹版本以其餘的許可證方式再許可或者保留起來不準可,只能按此許可證明施再許可,像自由軟件聯盟GNU 下適用GPL開放源代碼軟件許可證的軟件。而開放源代碼軟件的許可證則容許以其餘許可證的方式實施再許可。瀏覽器
「商業軟件」(Business Software)是指經過交易或貿易方式面向社會公衆發行的各類商品化的軟件。做爲商業軟件,其功能、性能一般已通過嚴格測試於是至關可靠,其使用方法應該至關便利。供應商不只應該向用戶提供程序(一般是目標碼文本)和使用說明(一般是安全
手冊的形式),並且應該向用戶提供包括版本更新在內的技術服務。網絡
商業軟件由商業公司開發,經過收取使用費而牟利。「商業」和「私有」不是一回事。大多數商業軟件是「私有的」,但也有商業自由軟件,也有非商業、非自由的軟件。dom
例如,GNU Ada 永遠在GNU GPL條款下進行分發,並且,每個拷貝都是免費的,但它的開發者卻有付費支持合同。當推銷員對用戶這樣說,有時用戶回說,「咱們以爲商業編譯器比較安全一些。」,推銷員則回答,「GNU Ada是商業軟件,只不過碰巧它也是一個自由軟件。」分佈式
對「商業」的含義可能存在不一樣理解,但能夠肯定的雖然開源軟件自己可能不會帶來很大的收益,可是利用開源軟件的商業模式的確能夠實現商業利益,提供了源代碼之外的服務等客戶所需的要素就能夠得到持續、穩定的商業利益。函數
「私有軟件」(即Proprietary Software,或稱「專有軟件」),是FSF 將其做爲「自由軟件」和「非自由軟件」 的對立面而對軟件做出的分類。 FSF 對私有軟件的解釋爲:工具
私有軟件不是自由及非自由軟件,對它的使用、傳播、或修改是禁止的,要麼須要你申請許可,要麼它限制你不能充分自由地使用它。自由軟件基金遵照規定,不在計算機中安裝任何私有軟件,除非爲了編寫那個程序的替代品而暫時安裝到計算機上。除此以外,咱們找不到其餘藉口要安裝私有程序。性能
例如,在80 年代,咱們認爲在計算機安裝Unix 是正當的,由於咱們要編寫一個Unix 的免費替代品。如今,因爲有了自由操做系統,所以這個藉口就再也不使用了;咱們消除了全部的非自由操做系統,任何新計算機上安裝的都是自由操做系統。咱們不能強迫GNU 的用戶或GNU 的貢獻者必須依此規則行事;它只是給咱們本身制定的規則,但咱們但願你能下決心聽從它。
所謂「公有軟件」(Public Domain Software,也可譯成「公有領域軟件」)是指著做權中的經濟權利(包括複製權、修改改編權、發行權等專有權利)有效期已經屆滿的軟件,以及權利人因爲不許備使之商品化而已經明確聲明放棄著做權的軟件。須要指出,公有軟件不一樣於開放源代碼軟件,由於對於開放源代碼軟件而言,其著做權仍然由其權利人享有,受到著做權法規保護。對於公有軟件,其特色在於:(1)人們能夠任意複製、傳播;(2)人們也能夠對公有軟件進行反彙編或者反編譯,能夠進行反向工程;(3)人們能夠使用、改編、甚至將之歸入爲贏利目的而開發的商業軟件,但不得限制其餘人也這樣作。這類軟件的知識產權被用盡的或放棄任何知識產權的軟件,因其進入了公有領域(public domain),沒有任何人能夠對其請求任何的權利。
試用軟件(Share ware,國內也每每譯成「共享軟件」)。它比普通的商業軟件要便宜得多。所謂「試用軟件」,是指其複製品也能夠經過網絡在線服務、電子公告板(BBS)或者從一個用戶的手裏傳給另外一個用戶等途徑自由地傳播。這種軟件的使用說明一般也以文本文件的形式同程序一塊兒提供。這種試用軟件一般附有一個用戶注意事項,其內容是說明權利人保留對該軟件的權利,所以試用軟件受著做權保護;本軟件居於試用軟件,用戶經過兩個階段試用以後,若是但願繼續使用,就應該向供應者辦理使用註冊手續。用戶注意事項中一般包含一份註冊表格,並說明如何以及向何處辦理註冊手續,在辦理註冊手續時可能會要求用戶交納必定費用,實際上就是使用許可費,須要交付的使用許可費的款額一般是很低的(幾美圓或者幾十美圓)。
對免費軟件一般的理解是沒必要支付費用就能夠免費得到使用權的軟件。而恰巧開源軟件在多數場合被稱做「Free software」。在許多語言中,「free」一詞有兩種意義:一是自由,二是免費。如法語的「libre」和「gratuit」,英語的「gratis」都明白無誤地指價格(免費),但沒有明
白無誤地說明「自由」的意義。這是不幸的,由於若是有這個詞,在此處它將很是有用。
開源軟件一般以避免費方式發佈,大部分開源軟件能夠免費得到。可是隻要開源軟件的許可人或再許可人願意,能夠收取費用。開源是不排斥收費行爲的,而免費軟件必定是免費得到的。同時免費軟件多是專有軟件,只受權無償使用,但不開放供源代碼。所以,開源軟件與免費軟件是兩個不一樣層面的概念,須要區別對待。
這裏的Free有兩個含義:
第一層含義是自由。自由軟件模式爲開發者提供了將我的智力成果以不一樣傳統的方式貢獻給公衆的自由,並保證這種自由符合法律的要求;同時自由軟件沒有妨礙而且爲公衆提供了額外的、選擇的自由。開發者自願地將其對於軟件的自由權利受權給其餘人,保證了更多人享受到使用軟件的自由。
第二層涵義是必定條件下的免費。因爲自由軟件的受權模式不強制免費許可也不強制收費許可,所以,對於已經進入社區(流通領域)的開源軟件而言,得到這些軟件大都沒必要付費。瞭解哲學觀念中「沒有絕對的自由」是理解這個概念的一把鑰匙,開發者和用戶的「自由」都是創建在符合法律和協議要求的前提下的自由;「天下沒有不要錢的午飯」這句話的道理不在於這個午飯是否是必定要付錢,而是說是否是要有代價,「免費」得到開源軟件也是同樣道理。
總之,「自由」和「免費」都是附有條件的,這個條件就是協議(合同)規定的「對價」,自願地履行開源協議的「對價」不存在對合同任何一方形成損害,不過能夠肯定的是,若是不履行「對價」,合同就可能不成立,這顯然對合同雙方都沒有好處,不能實現訂立合同的宗旨。
OSI 給出開放源代碼的定義的目的是:把所確信的、由軟件開發團體所公認的「開放源代碼」的含義做爲一組具體的準則寫下來。該準則確保按照開放源代碼許可證發佈的軟件能夠獲得與其餘軟件一樣認真的評審、使軟件能夠不斷地獲得改良和遴選,從而提供非開放軟件所難以提供的可靠性與能力。OSI 認爲本開放源代碼定義涵蓋了由絕大多數軟件團體使用的術語「開放源代碼」的最初含義和當前含義。然而,該術語被普遍地應用,而且它的含義變得不精確了。
以微軟爲表明的「共享源代碼」(Shared Source)的實質是僅僅公開源代碼(且非所有公開)。這是微軟爲應對「開放源代碼運動」而提出的新策略,它與OpenSource最大的不一樣在於,微軟向他的大客戶拷貝其絕對機密的Windows 源代碼,但用戶只能看或提出修改意見,而不能對它有任何修改。
開放源代碼與公開源代碼的相同之處是兩者都保證源代碼被公開,即源代碼以某種方式爲人所知悉。但「開源」與「公開」源代碼存在根本的查差異。開源軟件的許可人不只僅提供源代碼以供其餘人蔘考,同時還許可其餘人能夠將軟件運行、修改和再受權。更直白的解釋就是「公開」源代碼只能「看」,「不能用、不能改、更不能再發布」;而「開放」源代碼不只能看,還「能用、能改、能再發布」。
知識產權是法律賦予人們對智力勞動成果所享有的民事權利。知識產權對軟件的創造者而言,能夠將知識產權理解爲開發者能夠在必定期限內對軟件享有的獨佔權或專有權和軟件開發者依法享有的其它權利。顯然,開發者對成果的獨佔使用權能夠帶來各類收益,所以軟件不只是程序員所創造出來的成果,並且是企業的一筆財富。如何使管理和使用軟件的知識產權,實現其價值最大化是開發者和企業都關心的問題。開發者能夠將本身的智力成果進行各類形式的處理。好比公開軟件、出售軟件、甚至是將其進行銷燬都是開發者的自由。這些自由都是法律所賦予的,其中知識產權法是很是重要的一部分。開發者常常忽視知識產權對自身的價值,多半是因爲其將法律給予的自由視做與空氣、陽光同樣理所固然、天經地義。事實上,無論開發者是否是注意到知識產權法的存在,他的智力成果始終處於法律的保護和管制之下。開發者準備對本身或他人的智力成果進行任何處理以前,都應該考慮該行爲是否是符合知識產權規則的要求。
最初的知識產權多涵蓋的內容比較窄,主要包括版權、專利權和商標權。後來出現一些新型的知識產權,如地理標記權、集成電路布圖設計權等等。固然與軟件和軟件產品關係最密切的仍是版權、專利權和商標權。
開發者大多知道軟件能夠經過申請著做權登記獲得保護,實際上,軟件從它誕生的那一刻起就已經受到版權法的保護。無論一個軟件是否是申請了著做權登記,軟件做品的做者均可以對侵犯其著做權的行爲採起措施。例如,某公司的軟件做品沒有進行著做權登記,可是當有人非法複製這個軟件時,該公司仍然能夠經過法律手段追究非法複製者的責任。1六、 在中國有沒有軟件專利,商業方法軟件專利又是什麼?關心軟件產業的人們都注意到歐盟在2005 年沒有經過軟件專利法案,但美國的作法對國際規則大趨勢的影響力也不得不考慮。即使沒有專門的軟件專利立法,軟件的專利問題依然存在。「凝固」在產品中的軟件專利已經爲國內不少軟件企業所認識。商業方法軟件的專利保護最初也是從美國發起的。商業方法軟件專利在美國、歐洲和日本的申請和受權十分火爆。中國國內的反映比較消極,企業對商業方法的專利申請尚處在無知狀態,專利局的審查指南和政策也沒有針對性的反映,專利代理服務機構可能是在忙着爲外國的申請進行代理。目前,中國涉及到商業方法的軟件專利很少,而國外銀行以及網絡公司在中國申請的有關電子商務方法的專利已經覆蓋了中國金融業的基礎服務。
咱們能夠將軟件理解爲特殊的文字做品,只不過這些文字能夠經過必定方法讓計算機也能夠讀懂。做者根據著做權法的規定對做品享有必定程度的獨佔權,若是做者願意讓其它人共享本身的權利或其它人但願使用這個做品,就必須經過做者對他人進行受權,或者叫作許可。軟件產品的全部者有對產品的獨佔權,包括使用、收益、署名、修改等等內容。若是用戶但願合法地使用這個產品就必須得到許可。這個許可可能來自法律的強行規定,例如「合理使用原則」,儘管軟件的全部者心裏可能十分不情願;這個許可還可能來自全部者,多是收費的許可也多是免費的許可。所以,許可協議也是用戶合法使用軟件做品的一個憑證。至關於在許可人與被許可人之間簽定一個合同來規定雙方當事人的權利和義務。一般,這個協議的內容是由許可方擬定的,被許可方和用戶只能選擇接受或者不接受,所以是一種格式化的合同。
開源軟件與傳統軟件都是智力成果,在決定以何種方式發佈以前,在技術層面是沒有任何差異的。無論是封閉源代碼仍是開放源代碼,都是軟件的發佈者所使用的許可方式的一個內容或條款。許可證的內容能夠差異很大:如傳統軟件許可證只許可用戶使用軟件但不容許用戶再發布軟件,同時爲許可證的得到設定一些條件(例如收取許可費);如開源軟件許可同時許可用戶能夠再發布軟件,同時還對再發布的條件進行了一系列限制(例如GPL 許可協議規定不得使用其它許可證再發布,BSD 協議規定要保留做者的署名權);甚至發佈者能夠不選擇或使用任何許可證、放棄任何對軟件的任何權利,許可給其它人最大的自由。然而,就算是這樣,仍是應當理解爲發佈者與其餘人達成了一個「該軟件能夠隨意使用」的協議。顯然,全部的軟件做品都是須要許可的,開源軟件的發佈者對軟件如何被使用還有各自的指望和條件,所以發佈開源軟件必然須要許可證,只不過許可的內容能夠由發佈者本身決定。
開源軟件雖然公開了源代碼,使公衆能夠很是容易得到軟件,與傳統軟件許可「先得到許可再得到軟件」的模式有所差異。但使用開源軟件仍然須要得到許可,由於開源軟件也是軟件做品,對其處理也必須符合著做權法的規定。這就是開源軟件世界許可證存在的必要。開放源碼軟件是受到著做權的保護的做品,所以未經權利人許可不能隨意使用。所以使用開源軟件就必定要得到許可。若是沒有得到許可就使用開源軟件,就是侵犯了做者的獨佔權和專有權。多數人沒有注意到許可的存在,是由於許可的成立並非以傳統的簽字畫押、點擊「接受許可」等方式進行。開源軟件的許但是在運行它或修改它或發佈它的那一刻就立刻生效的。開源軟件的許可協議是一個開放的,只要有相應的行爲就理解爲默認接受的許可。固然,接受協議的前提條件仍是有的,在許可證文本中講得很清楚,一旦被許可人沒有遵照這些條件,許可可能隨時會被終止。許可一旦被終止,這時持有開源軟件的人就沒有權利使用它而且須要承擔違約的責任。
軟件的全部者對於如何處理其創做的軟件都有各自不一樣的想法。對於受權給被許可人權利的大小存在不一樣的考慮。許可證是許可人和被許可人之間的合同,如同其它商業合同同樣,經過不一樣的條款約定用於實現不一樣的目的。例如,GPL許可證經過嚴格的copyleft條款最大限度地保障軟件的自由,並由此實現「消除計算機程序在複製、分發、理解和修改方面的限制」這一FSF 的初衷;而MPL 經過將「發佈」定義爲「以源代碼方式發佈的文件」,所以爲借鑑別人的源代碼用做足跡的商業軟件開發的行爲留下一個豁口。
固然能夠。若是某我的或者組織開發了一種新的程序,這個程序又沒有受控於任何已有的許可證,這個開發者就能夠選擇已有的許可協議或許可協議模板進行修改發佈本身的軟件。固然,若是開發者認爲現有的許可證都是不理想,他就能夠本身編寫新的許可證,他能夠將本身價值取向體如今對許可人和被許可人的權利和義務的不一樣規定中。也能夠將許可證提交OSI進行認證,得到目前比較通用的證實,從而表示出遵循這個新的許可證的軟件是開放源代碼軟件。
能夠,只要這些許可證之間不發生實質性的衝突。之前開發人員必須考慮的只是軟件的依賴性和不兼容性,如今他們還得考慮開源軟件項目之間許可證的衝突。如:Mozilla 包含四個不一樣的許可證。參與該項目的開發須要注意許可證間的衝突。Galeon 是一個基於Mozilla的瀏覽器,利用GPL下發布的GTK+圖形工具包開發。對其的分發將在分別受MPL和GPL保護的模塊間產生衝突。一樣,Transarc(IBM 子公司)以IPL許可開發了一個Linux 分佈式網絡文件系統的變體。不幸的是IPL 與GPL 不兼容,於是禁止其在Linux 內核上運行。另外,對源代碼的每一個錯誤修正和改動,都具備「分叉」出一個新版本的潛在可能。
(1) 發佈軟件時未代表版權信息以及必要的修改信息;
(2) 發佈軟件時沒有附上相應許可證;
(3) 源代碼提供不符合許可證的要求;
(4) 違反許可證的規定將軟件代碼與其餘代碼混合;
(5) 發佈軟件時違反許可證的規定收取不適當的費
用;
(6) 違反許可證的規定以開放源碼軟件申請專利。
許可證的共同點通常都是規定了發佈義務(將得到的源代碼再發布)、對發佈源代碼的要求(須保證源代碼的完整和能夠被得到)、容許修改的權利(能夠根據得到的源代碼產生演繹做品)。通常開源軟件許可證都不定補擔保條款和責任免除條款。
(1) 開放源碼軟件許可證都會規定在被許可人接受本許可證或的源代碼以後,有將源代碼再發布的義務,以促進開源碼運動。
(2) 開放源碼軟件許可證有「不擔保」(No Warranty)條款。因爲源碼程序准予無償使用,在通常狀況下,對程序都沒有擔保。
(3) 開放源碼軟件許可證都規定了關於修改、複製和再發布的條款。可是各個許可證對授予被許可人的各項具體的權力略有不一樣。
開源軟件許可證之間的差別主要體如今:
(1) 是否容許能夠同其餘非開放源碼軟件代碼混合;
(2) 是否能夠將對源代碼的修改不公開;
(3) 是否明確了專利許可受權;
(4) 是否明確了專利侵權訴訟致使許可協議停止;
(5) 是否明確禁止與函數庫鏈接;
(6) 是否只能按本許可證發佈源代碼;
(7) 是否要求對於得到的源代碼可能存在的知識產權進行以「LEGAL」爲擡頭的提示。
(1) BSD 許可——它要求版權和著者身份申明;
(2) GPL——通用公共許可("CopyLeft")禁止派生或發行產品的限制;
(3) LGPL——庫/次級GPL,它不一樣於GPL許可證,在這個許可證下,庫(函數庫)能夠自由地聯接到專有軟件;
(4) Artistic 許可——使做者保持對進一步開發的控制。
(5) Netscape 公共許可(NPL)——基於GPL 精神的新的許可證,可是保持了對源碼更多的控制和全部權;
(6) 公共域(Public Domain)——一般用於決定性的算法以鼓勵普遍使用,一般由美國政府使用。
國際上較爲嚴格的許可證主要是GPL 許可證、QNCL許可證和Ricoh 許可證三種,其餘的均被認識是比較寬鬆的開放源碼軟件許可證。來自於不一樣許可證的程序源代碼想要結合起來就會產生許可證之間規定的衝突問題。實際上,主流的開源軟件,尤爲是開源平臺LAMP(Linux, Apache, MySQL, PHP/Perl/Python),都是依照GPL發佈的。而GPL又是一個要求嚴格的許可證,因此衝突主要是不一樣許可證與GPL 許可證之間的衝突。一些開源許可證要求當出現程序之間的鏈接、或者程序修改時,若是出現了組合做品,則要求鏈接各部分都受該開源許可證限制,也就是必須成爲指定的開源軟件,是容易產生問題的地方。對於衝突的問題,如今咱們能作的就是儘可能避免。
答:OSI 組織也即「開放源代碼獨創行動組織」(Open Source Initiative,簡稱OSI),這是一個非盈利的組織,Open Source Initiative、OSI等標誌都是屬於該組織的證實商標,統稱爲「OSI Certified」標誌,由OSI組織做爲證實商標的管理者。OSI組織的宗旨就是要讓開源軟件的發展有一個更好的土壤,OSI主要管理和推廣開放源碼的定義,尤爲是OSI認證的開放源碼軟件的認證標記和認證程序。根據OSI組織的規章,是不是開源軟件,不光要看權利人是否提供源代碼,另一個很重要的標誌就是許可證的問題,由於基本全部的開源軟件在發佈時都會附帶一個許可協議,即咱們所說的許可證,在許可證中,會規定許可人和被許可人的權利與義務,而正是這些權利和義務,決定了權利人是否將源代碼真正的向社會公
衆開放,從而能夠實現是不是開源軟件的判斷。開放源代碼組織是經過開源軟件許可證這種合同形式來明確規定源代碼使用者的義務,使開放源代碼的思想得以傳播,同時巧妙地保有了其Open SourceInitiative、OSI 等一系列商標的全部權。雖然,對這些證實商標沒有使用費的要求,可是使用這些商標仍是必須遵照OSI的規則。
OSI組織從軟件的許可證上着手,將證實商標許可給那些經其審覈認定爲開源軟件的軟件提供者。這樣,凡被認定爲開源軟件許可證的,均可以標註OS、OSI等商標標識。所以,許可證通過OSI 認證能夠在必定程度上保證遵循它的軟件得到開源軟件界的承認。但OSI終究是個非官方組織,OSI組織要想在開源軟件領域實現「統一標準」的目的幾乎沒有什麼成功的但願。可是該組織的定位和戰略很好,將本身定位爲一個行業自律協會性質,而且巧妙的應用了商標戰略。將Open Source Initiative、OSI申請了證實商標 ,稱爲「OSI Certified」標誌,本身做爲證實商標的管理者,爲開源軟件業的發展作出了重大的貢獻。
「CopyRight」在英文中是「版權」的意思,至關於我國的「著做權」。指的是做者對其創做的文學、藝術和科學做品依法享有的專有權利,包括髮表權, 署名權,修改權,保護做品完整權,使用權和得到報酬權等。Copyright 是版權法對做品所規定的一攬子權利,但法律同時規定了著做權人擁有對不一樣內容進行受權的權利。
「Copyleft」是將一個程序成爲自由軟件的通用方法,同時也使得這個程序的修改和擴展版本成爲自由軟件。通常翻譯爲「反版權」、「版權屬左」、「版權所無」、「版權左派」、「公共版權」或「版責」。Copyleft 不一樣於公共域軟件(public domain),有版權的情形,Copyleft是一個廣義的概念;有許多形式能夠將其細化。Copyleft聲明任何人若是要從新發布軟件,無論是否作了修改,必須使得這一從新發布的軟件有被複制和修改的權力。例如GPL 規定只要有任何一部分代碼是以GPL 發佈的,那麼所有程序做爲總體就必須接受GPL 的越是。可見Copyleft 是爲了保證每一個用戶都有自由的權力而表達的一種精神理念。
「copyright」跟「copyleft」只是字面上的對立,其本質上不是同一個層次的含義。「CopyRight」是做品對做品享有的法定權利,是一個含義明確,界限清晰的詞彙。而「CopyLeft」是GNU 創始人「Richard Stallman」創造的詞彙,用以強調其主張,是對copyright 規定的非傳統應用的叛逆性說法。。「CopyLeft」是一個廣義概念,GNU/GPL是其一個具體的細化實例。「CopyLeft」的確是針對「CopyRight」而提出的。但「CopyLeft」和「CopyRight」不是一個層次的內容,不該放在一塊兒比較。
GNU/GPL 是自由軟件基金會發布的一個軟件受權許可證,全稱是《GNU通用許可證》(GNU General PublicLicense),簡稱GPL。這是一個關於自由軟件複製、修改和發佈的版權形式的規則體系。GPL 適用於大多數自由軟件基金會的軟件,以及由使用這些軟件而承擔義務的做者所開發的軟件。GPL——通用公共許可禁止派生或發行產品的限制(copyleft精神),最大限度地保障軟件的自由,並但願由此實現「消除計算機程序在複製、分發、理解和修改方面的限制」這一FSF 的初衷。
任何基於GPL 軟件開發的衍生產品在發佈時必須採用GPL 許可證方式,且必須公開源代碼。項目中即便僅有微小部分來源於GPL 許可的軟件,也必須按照
GPL的要求公開所有源代碼。即具備所謂的「傳染性」。
在GPL 的條款下,「free software」指的是自由軟件而非免費軟件。因爲其一般是以避免費的形式分發,因此不少人誤覺得它是免費的,隨即可以獲得的。即便是你免費的獲得自由軟件,可是實際上全部行爲都應當是在GPL 的規則之下,它伴隨着不少責任,違約可能形成經濟賠償的負擔。另外,從價格上看,它也不必定就是零費用的。基於GPL 能夠明顯看出的幾種模式能夠盈利:能夠利用分發,收取必定的分發的成本費用,儘管經過分發一個軟件維持長期盈利的可能性很小;利用提供擔保條款,收取必定的對價;利用自由軟件產生不少不一樣做品,能夠收取該產品相應的商標許可費;此外,提供對自由軟件的技術支持服務,已經成爲如今Linux商業公司的主要生存手段了,服務類的盈利模式比重在加大。
依據GPL 的相關規定,若是原始受權人採用GPL來發布本身的做品,那麼不管該做品的任何衍生做品,都要聽從GPL 的規則,儘管你對於該衍生做品擁有著做權,可是你也不能夠所以認爲它是你的心血而另立新規,可謂「子子孫孫無窮盡也」。也即規則的「傳染性」。GPL 下的軟件,是容許做爲學習來複制使用的。但當基於該軟件源代碼開發出新做品,而該做品並不是是自由軟件的一部分,或基於其產生的衍生做品,它是獨立的,不一樣於該自由軟件的部分,即不一樣做品,那麼它將不受GPL 的約束;可是,一旦你把它同該自由軟件做爲一個總體一同發佈,它就會被「傳染」上GPL 的屬性,從而不得不遵照GPL 的規矩了。也即做品總體的「傳染性」。若是軟件是非開源的,那麼是不能夠把GPL 下的軟件源代碼使用到該的程序中的。可是,假若你非得使用該開源代碼,那麼你只有把你原先的非開源的代碼貢獻給社區了,也即GPL 下的開源性「傳染」了非開源代碼。
做品是否是「獨立做品」?「獨立做品」可以對「傳染性免疫」。在「GNU/GPL有關複製、發佈和修改的條款和條件」一章的第二條,第二款中規定,「這些要求適用於修改了的做品的總體。若是可以肯定做品的一部分並不是程序的衍生產品,能夠合理地認爲這部分是獨立的,是不一樣的做品。當開發者將它做爲獨立做品發佈時,它不受此許可證和它的條款的約束。」可是當將這部分做爲基於程序的做品的一部分發布時,做爲總體它將受到許可證條款約束。准予其餘許可證持有人的使用範圍擴大到整個產品。也就是每一個部分,無論它是誰寫的。所以,本條款的意圖不在於索取權利或剝奪所有做品的權利,而在因而履行權利來控制基於程序的集體做品或衍生做品的發佈。是否受到GPL 的約束取決於它是不是源程序的衍生做品,而非是否與該程序存儲於同一物理介質上。不過須要注意的是,GPL沒有通過任何一家法院的檢驗,對於怎樣的做品纔是「獨立做品」還須要由法官斷定。
基於GPL 的軟件要注意著做權和專利權兩方面內容:
(1) 著做權
GPL 認可軟件做者的著做權,但同時要求做者必須容許任何人享有對其做品的使用、複製和修改的權利。
GNU 的創始人「Richard」還創造了一個詞「CopyLeft」來代表GPL 同傳統著做權的不一樣,其宗旨既保證用戶無限複製和修改的權利。同時GPL 也規定用戶在發佈其源於GPL的軟件時,必須附帶GPL條款。
(2) 軟件專利
Richard 的GNU 計劃書中還專門提到了這一點。他認爲「自由軟件面對的最大威協就是軟件專利」。由於專利全部者能夠基於其專利權而對抗GPL 所要求的「自由使用和複製權利」。所以,GPL 規定:「鑑於任何自由軟件時刻處於軟件專利的威脅之下,咱們但願能避免這種狀況:自由軟件的再傳播者在實施過程當中使得這項軟件程序得到專利獨佔權,正是基於此目的, 咱們明確地要求承諾任何自由軟件能夠去得到專利受權的前提是一旦得到軟件專利受權必須向全部的人以符合自由軟件使用條件的標準許可以使用該專利, 不然就不可去申請軟件專利。」
GPL 的規定大部分是對許可人的規定,只要許可人願意將本身對軟件的專有權進行稀釋,就能夠使用以下對GPL 作出承諾:採用給程序附聲明的方法告知被許可人的權利和義務。最安全的方式是將它放在每一個源程序的開頭,以便最有效的傳遞拒絕擔保的信息。每一個文件至少應該有「版權全部」行,以及在什麼地方可以看到聲明全文的說明。這是締結協議的第一步,能夠理解爲一個要約,即只要被許可人願意接受,協議就能夠立刻生效。
對使用GPL 軟件的被許可人規定義務,在於保證每個被許可人都從原始著做權人那裏得到複製、發佈和修改的權利。同時,保證GPL 的軟件也能夠用於實現必定的經濟收益。
(1) 聲明的義務:將每個副本上標註著做權聲明、不承擔擔保聲明等;
(2) 發佈修改說明的義務:修改人必須在修改文字中附加修改了文件的明確說明以及具體的修改日期;
(3) 傳遞GPL 條款:發佈或出版做品時,包括程序的所有或部分或由該所有或部分衍生的做品時,必須做爲將做品總體按照GPL 條款許可給任何第三方;
(4) 發佈時提供源代碼;
(5)被許可人沒有分許可的權利和義務,後來的接受者自動從原始許可證頒佈哪裏得到許可,同時被許可人沒有強求第三方履行許可證條款的義務。
(6) 選擇是否發佈無擔保和免責條款。GPL11 條和12 條規定程序在沒有擔保和不承擔責任的條件下准予無償使用,但這條不是強制性的,許可人能夠選擇提供擔保以換取必定的費用。
不是。GPL 下的軟件仍舊是受知識產權法保護的軟件做品,做者對其享有絕對的版權。相關專利權人也不因軟件代碼開放而失去專利權。這些權利比較容易被忽視一般與得到軟件的代價較小相關。公有領域的軟件喪失版權法一切保護於是能夠隨意使用,而「GPL」的軟件不一樣。許可人有權在許可的條件被打破時收回許可,並按著做權法和合同法等規定追究侵犯著做權或違反合同的違約責任。
開源軟件的精神在於經過衆多開發者願意貢獻我的智力做品並可以在法律容許的條件下「安全」的貢獻我的的成果,將其以非傳統的發佈模式,從而保障用戶最大限度使用軟件的自由。若是程序員開發了軟件並將這個軟件貢獻給了社區以保證其它用戶和開發者能夠自由地得到軟件,然而程序員還須要承擔「warranty」帶來的責任,那麼就這個合同對程序員(貢獻者)是不平等的,就不能實現由於自由軟件提倡的是源代碼的公開性。爲了在鼓勵社區裏的人員都奉獻本身的源代碼的同時,爲了給他們解除後顧之憂,避免法律糾紛,因此
纔在許可證下明確說明了該自由軟件是不提供任何明示或默視擔保的。
再分發者能夠對開源軟件提供擔保。在各許可協議中,都會發現「不但保」字眼。只有在徹底理解開源模式規則的狀況下,才能澄清「開源軟件不能進行擔保」的誤解。例如,在GPL 開始的定義中,咱們能夠看到原始版權人(copyright holder)和再分發者(you)這兩類人。GPL 只是爲了考慮原始版權人避免法律糾紛的須要,保障他們發佈自由軟件的自由性,而明確的要求原始版權人發佈的做品不得提供擔保。可是,對於再分發者,這種無擔保的限制已經沒有了,它明確的贊成再分發者能夠爲用戶提供必定的擔保而獲得對價。固然,擔保的前提是,擔保這必須代表他們是再分發者的身份。
由於當軟件成爲一件商品,用戶除了關心是否能夠得到源代碼之外,還關心軟件的穩定性等其餘指標。商業應用須要的不只是一件可用於解決某個技術問題的創新成果,還須要培訓、服務等其它知足商業化的因素。開源軟件做品與成熟的軟件商品之間的距離和差距必須藉由對其它指標的擔保得以實現。
再發布開源軟件的開發者一般不關心是否提供擔保,但軟件的最終用戶的確十分在乎擔保的問題。由於擔保不只意味着產品的質量能夠得到必定程度的保證,還能夠將用戶從知識產權侵權的風險中完全解脫出來。因爲存在願意經過擔保得到商業利益的再分發者。若是用戶但願得到擔保,他只要選擇合適的再分發者就能夠了。這裏的「合適」顯然不只須要考慮軟件是否可用,還必須考慮這個再分發者是否具有相應的擔保能力,如提供相應服務的水平如何。
只要受權還存在就是合法的。由於經過開源軟件的受權模式,開發者自願地放棄了獨佔性和專有性,以合同的方式對使用者和再發布者進行了權利的分享,而受權中並無不能夠收費的強制條款。用戶(再分發者)已經得到了最大程度使用軟件的自由。只要有人願意付費,無論是僅僅爲了省去自行取得代碼的麻煩仍是爲了得到相應的擔保,甚至是出於對再分發者的捐贈,收費行爲和付費行爲都沒有受到禁止。
這是由市場經濟的基本特色所決定的。市場上存在各類商品自由競爭,質量和價格一般是消費者進行選擇決定性因素。開源軟件的代碼能夠自由得到,生產軟件的成本廣泛下降。因爲消費者能夠自行獲取源代碼,顯然以較高的價格出售這些代碼(軟件)是不現實的。而商業模式要解決的是一個如何得到長期、穩定的較高收益的問題,經過販賣開源軟件自己是不可能實現這個目標的。但開源軟件與其它類型軟件的結合趨勢十分明顯,開源世界已經產生了其它成熟的商業模式值得借鑑和推廣。
不能撤銷。不能撤銷許可指的是隻要被許可人嚴格執行許可的前提和條件,許可人就不能以其它理由撤回許可或另行增長許可的條件,除非其願意承擔違約責任。不能撤銷許可並不意味許可必定會長期存在,許可協議是一個附有條件的合同,若是被許可人違反了條件的約定,許可就將自動終止。例如,若是GPL 下一個軟件的再發布者沒有按照協議要求公開修改內容,那麼GPL 許可就自動不對其開放了。若是這個再發布者繼續持有軟件,則屬非法持有軟件行爲,就是違反版權法的規定,與盜版無異。
雖然開源軟件許可不排除收費的可能,但一般以避免費的方式進行受權。用戶有時會產生這樣的疑問:如今免費得到的軟件會不會有一天被強行收費。答案應該是不會。由於在用戶得到和使用軟件的那一刻,許可人和被許可人已經就這個軟件達成了一致意見。若是約定免費受權,那麼,這個免費的條款是符合合同法、受到合同法保護的。若是在未來的某個時間,許可人決定收回更換一種許可方式,例如收費許可,那麼許可就必須依照合同法的規定承擔由此形成的違約責任。因爲開源軟件的使用範圍很廣,更改許可方式與撤銷許可的成本一般會不可接受。
商標侵權的風險指的是對註冊商標和非註冊商標的不合理使用,與開源軟件相關的商標主要有:
(1) 所謂的「認證商標」,指以OSI組織爲表明的非盈利性組織所擁有的商標;
(2) 「企業商標」則是指由企業管理、受權使用的商標,這和傳統商標法意義上的「商品商標」、「服務商標」並無不一樣;
(3) 「概念商標」,專指那些性質有待確認的、僅爲表達一種理念或概念的「商標」,前文中提到的LINUX 即是「概念商標」的典型表明。
(1) 目前使用OSI 等證實商標不須要付費,但「不付費」的商標並不等於「沒有任何權利的商標」。OSI、OPEN SOURCE都是合法的證實商標,企業要想使用這些商標,必定要符合商標權利人――即OSI組織的規定。
(2)不管企業商標出如今源程序包的源程序中,仍是出如今其運行界面中,都屬於權利人行使本身合法商標權的範疇,咱們的軟件企業都應該尊重權利人的權利,不然就會面臨侵權危機。另外就是禁止「反向假冒」,即將他人產品上的商標去除或對他人的商標進行替換。
(3) 咱們足以斷定近期LINUX 不管在中國仍是其餘國家都很可貴到商標法的保護,對於中國企業來講,這或許是一件好事,由於咱們面前的「商標陷阱」又少了一個。然而,這對於廣大的尚處於發展期的中國開源軟件企業也是一個警鐘:咱們不但要大力打造本身的軟件品牌,更要致力於保護本身的品牌,避免其被淡化,最終落得個「一人種樹你們乘涼」的結果。
中小型企業若是不能徹底理解將要使用的開源碼許可證,可遵循如下原則
(1)不要把任何開放源碼直接混合到本身的代碼中;
(2)不要爲了本身的須要,而修改這些開放源碼;
(3)若是可能的話,甚至不要下載和編譯開放源碼。許多開放源碼項目提供二進制代碼,不少項目遵循靈活的BSD 許可證,而另外一些則遵照嚴格的GPL 規定,因此,保持本身的專有代碼與開放源碼的區別是很重要的。固然,根據企業收入模式適當地讓本身的代碼過渡爲開放源碼,可能對企業更有利;
(4)挑選合做商的時候,要挑選那些符合本身要求的、有積極用戶羣的合做者。至少有一點能夠肯定,即便你的項目終結了,你還擁有源代碼。假如你堅持API標準,那麼轉換到另外一個項目上,或尋找一個商業賣主,事情就會相對容易些。
(1) 開源軟件卓越的技術水平與較小的風險之間權衡的結果;
(2) 開發者和再許可人遵照國際規則,經過國際社區和組織增前了開源軟件總體可能面臨法律障礙;
(3) 開源軟件的GPL 等許可證已實行多年,大大減小了可能產生的專利風險;
(4) 開源軟件深得全世界廣大用戶和業界的支持,這使任何針對開源軟件的法律訴訟都難以付諸實施;
(5) 對用戶存在擔保機制;
(6) 知識產權風險的可控制性;
(7) 開源的模式使其風險大大低於專有軟件。