簡而言之,GPL協議就是一個開放源代碼協議,軟件的初始開發者使用了GPL協議并公開軟件的源程序后,后續使用該軟件源程序開發軟件者亦應當根據GPL協議把自己編寫的源程序進行公開。GPL協議要求的關鍵在于開放源程序,但并不排斥軟件作者向用戶收費。雖然如此,很多大公司對GPL協議還是又愛又恨,愛的是這個協議項下的軟件歷經眾多程序員千錘百煉的修改,已經非常成熟完善,恨的是必須開放自己后續的源程序,導致競爭對手也可以根據自己修改的源程序開發競爭產品。
正因大公司對GPL協議在商業上存在顧慮,因此,另兩種協議被采用的更多,種是LGPL(亦稱GPL V2)協議,可以翻譯為更寬松的GPL協議。與GPL協議的區別為,后者如果只是對LGPL軟件的程序庫的程序進行調用而不是包含其源代碼時,相關的源程序無需開源。調用和包含的區別類似在互聯網網網頁上對他人網頁內容的引用: 如果把他人的內容全部或部分復制到自己的網頁上,就類似包含,如果只是貼一個他人網頁的網址鏈接而不引用內容,就類似調用。有了這個協議,很多大公司就可以把很多自己后續開發內容的源程序隱藏起來。
第二種是BSD協議(類似的還有MIT協議)。BSD協議鼓勵軟件的作者公開自己后續開發的源代碼,但不強求。在BSD協議項下開發的軟件,原始的源程序是開放源代碼的,但使用者修改以后,可以自行選擇發布源程序或者二進制程序(即目標程序),當然,使用者有義務把自己原來使用的源程序與BSD協議在軟件對外發布時一并發布。因為比較靈活,所以BSD深受大公司的歡迎。