# 什麼是 GNU GPL 開源協議?
這篇文章會帶著大家認識常見的 GNU GPL 開源協議,以及他的相關規則。
## 前言
開源的程式碼對有追求的程式設計師來說是一無盡的寶藏,正確的使用開源軟體,可以提高開發軟體時的效率、提升軟體質量。而為了避免開源軟體的著作權遭到濫用,或是用來限制程式碼的使用方式,就會有開源協議的出現。
常見的開源協議包括:
* BSD (Berkeley Software Distribution) :伯克利軟體分發許可協議
* Apache (Apache License) :Apache 許可協議
* GPL (GNU General Public License) :GNU 通用公共許可協議
* LGPL (GNU Lesser General Public License) :GNU 寬通用公共許可協議
* MIT (Massachusetts Institute of Technology):MIT 許可協議
* MPL (Mozilla Public License) :Mozilla 公共許可協議
## GNU GPL 開源協議
### 簡介
GNU通用公眾授權條款,是一個被廣泛使用的開源協議。
程式碼使用者有運行、學習、共享和修改的自由,若使用者使用了這個程式碼,則他也必須進行開源,若不開源,則不能使用。
GPL的原文
> “the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program”
> 保證你的共享和修改自由軟體的自由
### 規則
根據統整,GNU GPL 開源協議的使用規則如下:
|下載使用|商業用途|修改代碼|引用代碼|使用開源|開源協議|
|--------|--------|--------|-------- |--------|--------|
|可以|可以|可以|可以|必須開源|必須相同|
### 缺點
GNU GPL 所開源的代碼雖然可以讓您修改、使用,但是必須進行開源,並且必須同樣使用GPL開源協議。
這代表就算你僅使用了一些GPL授權的代碼,其他皆是自己製作的程式碼,你也必須公開開源自己所製作的程式碼。
###### tags: Github