開源定義
開放原始碼(英語:Open Source)描述了一種在產品的出品和開發中提供最終源材料的做法。一些人將開放原始碼認為是一種哲學思想,另一些人則把它當成一種實用主義。
開源是什麼
開源軟體、開源硬體、開放設計、內容開放。我們平時所說的開源,大多是指開源軟體,有時也會指內容開放的文檔。
開源軟體定義
開源軟體的詳細定義比較複雜,簡單點說,就是一種原始碼可以任意獲取的計算機軟體,這種軟體的著作權持有人在軟體協定的規定之下保留一部分權利並允許用戶學習、修改、增進提高這款軟體的質量。開源軟體的詳細定義請參見維基百科中的開源軟體條目。並非公開了原始碼就算是開源,公開原始碼和開放原始碼是兩回事。
許可證定義
許可證即授權條款。開源軟體並非完全沒有限制。最基本的限制,就是開源軟體強迫任何使用和修改該軟體的人承認發起人的著作權和所有參與人的貢獻。任何人擁有可以自由複製、修改、使用這些原始碼的權利,不得設定針對任何人或團體領域的限制。不得限制開源軟體的商業使用等。而許可證就是這樣一個保證這些限制的法律檔案。
許可證意義
基於開源軟體定義中的“散布授權條款(Distribution of License):若軟體再散布,必需以同一條款散布之。”這一條,開源軟體必須附加一個法律檔案,並且在任何修改後的開源或發行版本中附帶同一條款。
如何選擇許可證
開源軟體的許可證比較繁多和複雜,對於我們來說,經常遇到的開源許可證大多是GPL和BSD兩種,此外還有Adobe經常使用的MPL許可證。簡單來說,GPL許可證具有相當強的傳染性,如果你想要把一份採用GPL許可證的代碼經過修改後再次發布二進制版本,那么你同時也必須再次開放其原始碼。而BSD許可證則相對寬鬆許多,它允許對原始碼的修改後再次發布時僅包含許可證而不必再次開放原始碼,且可以將修改後的 版本專為商業用途(如微軟的產品中引入了BSD網路部分的源碼,修改後則作為專有軟體出售)。
1. 從開源軟體開發的角度來看,若只是利用開源程式包作為工具來生產與其分離的作品,那么絕大多數開源許可證都是可以的
2. 如果將軟體用於商業性發行且不願意發行自己所修改的源碼,那么可以選擇BSD許可證,它能使修改保持專有
3. 若希望源碼總是自由的,GPL許可證及LGPL許可證是最佳選擇(Icebird註:這裡不推薦採用LGPL許可證,LGPL許可證有很大的漏洞,divX從開源突然轉為專有就是一例,從此以後,開源軟體的參與者都對LGPL許可證的源碼報有相當的戒心,如果希望在開源版本之外能夠有一個你自己開發的更強大的商用版本出售,建議採用BSD,這樣你自行對其的修改就不必再次公開了)
4. 若想在與其它人共享代碼時提供相應的保護,可以選擇MPL許可證,該許可證可通過將軟體(和任何對它的修改)分為受保護部分和貢獻部分,在完全開放的 GPL許可證和封閉的BSD許可證之間架起一座巧妙的橋樑