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