開源的概念
開源軟件(Open Source Software)定義為其源代碼可以被公眾使用的軟件,并且此軟件的使用、修改和分發也不受普通商用軟件許可證的限制,而是遵循專門的開源軟件許可證的權利要求。
開源軟件與免費軟件、自由軟件有相似之處,也存在區別。
1、開源軟件在軟件發行時,會附上軟件的源代碼,并授權允許用戶自由使用該軟件,可進行復制、修改、再發布等工作。開源軟件不抵制商業收費,不一定全部都是免費的。開源的目的之一主要是通過更多人的參與來完善軟件。
2、免費軟件是免費提供給用戶使用的軟件。通常在免費的同時,會有其他限制,如源代碼不一定會公開,使用者沒有復制、研究、修改、再發布的權利。
3、自由軟件體現的是倡導軟件這種知識產品應該免費共享的社會運動,強調用戶擁有如何使用軟件的自由,包括自由地使用和學習,自由地分發和復制,自由地修改和再發行軟件。自由軟件是開源軟件的一個子集,其定義比開源軟件更為嚴格,體現了一種在道德精神層面維護用戶使用軟件自由的思想。在不刻意追究微小差異的情況下,可以認為開源軟件和自由軟件是兩個等價的概念。
開源軟件的核心是開放軟件的源代碼,但判斷一個軟件是否為開源軟件,不僅要看它的源代碼是否公開,還要看它在提供時所附帶的許可證,也就是使用這些源代碼的條款和條件。
開源許可證
所有的開源軟件在發布時都會附帶一個許可證協議,這是一種契約和授權方式,是用戶合法使用軟件作品的一個憑證。協議中規定了許可人和被許可人的權利與義務,通常包括以下內容:
·許可授予的對象;
·可使用軟件的設備及地點;
·能夠使用軟件的范圍(如能否繼承許可等);
·是否提供源代碼或目標代碼;
·許可是獨占的還是非獨占的;
·被許可方能否轉讓許可證;
·許可的期限(可能是一段固定或不固定的期間,通常還應注明因被許可方出現某些違約行為或者被許可方破產而終止許可);
·保密條款;
·免責條款(通常是許可方加入的條款,用來免除或限制其對被許可方可能產生的責任)。
開源軟件許可證是由開放源代碼首創行動組織(OSIA)批準的軟件許可證,目前,被OSIA批準的開源許可證已有60余種,并且還在不斷更新,常見的包括GPL、LGPL、APL、MPL、BSD等。
開源軟件與商業軟件的對比
開源軟件與普通商業軟件的區別主要在于所許可的權利內容不同,以及許可證的使用模式不同。兩者的對比情況如下。
|
開源軟件 |
商業軟件 |
提供者是否享有版權 |
享有 |
享有 |
是否提供源代碼 |
保證提供 |
不一定 |
復制和傳播發行權 |
向公眾開放 |
權利人保留 |
修改和衍生權 |
向公眾開放 |
權利人保留 |
收取許可費 |
一般不收取 |
一般要收取 |
開源軟件與普通商業軟件的對比
商業軟件一般采用賣許可(License)的方式銷售其產品。但在實際使用中,一些大型公司由于業務的增長,服務器會變得越來越多,購買大量License將成為一筆不小的開支,因此通常會選擇開源軟件完成開發工作。同時,任何軟件都存在這樣或那樣的Bug,普通商業軟件存在版本升級周期不確定、無法做出具體承諾等問題,而開源軟件可以由開發團隊直接修改其源代碼,通過重新編譯來修復錯誤。
開源軟件的主要意義在于讓軟件這種人類智慧的載體得到更大范圍的使用,它允許使用者在原有的基礎上,根據自己的需要對軟件進行定制化開發和改進,既充分復用已有的開發成果,避免重復勞動,又能加入新的理念,進行二次創新。開源軟件的使用成本較低,能夠讓更多的人參與進來,從而及時發現和修補軟件中存在的漏洞,產生更加優秀的軟件。對于開放平臺,開源軟件能夠促進產業鏈上的合作,讓合作伙伴基于現有軟件開發更多的新業務、新產品,形成事實標準,降低平臺的整體開發和運營成本。
但同時,開源軟件的漏洞也容易被用來制造病毒,帶來安全隱患。開源軟件大多依靠開源社區來支持,沒有明確的商業目標和利益驅使,不同開源軟件的開發程度參差不齊,用戶體驗考慮不足,缺少品質承諾和服務。因此需要采取一定的管理方法,充分運用開源軟件的便利性、易于迭代等優勢,同時處理好可能存在的安全性和可靠性風險。