C語言中文網 目錄
首頁 > GCC編譯器 閱讀:2,362

GPL協議和自由軟件

< 上一頁GCC編譯器 GCC的發展歷史下一頁 >

計算機軟件作為人類的知識財富,為人類社會的發展起到了巨大的作用,但長期以來軟件源碼作為個人或公司的私有財產受到嚴格的保密,很難做到像文學藝術作品一樣地進行公開的交流,很大程度上造成軟件的低水平,重復勞動嚴重,在一定意義上制約了軟件的發展。

GPL 的誕生

直到 1985 年由 MIT 教授理查德·斯托曼(Richard Stallman)提出應將軟件源碼看成人類共同擁有的知識財富,應該公開地自由交換、修改,提出了 GNU 計劃(因英文名相同,GNU 的 logo 就是一只牛羚),并建立了自由軟件基金會;同時,發布了一份舉足輕重的法律文件,GNU 通用公共授權書(GNU GPL, GNU General Public License)。

該授權書主要有以下幾點:
  • 自由軟件(free software)指的是源碼自由,不是價格;
  • 自由軟件必須附帶程序源代碼,但可收取費用;
  • 任何人都可以自由分發自由軟件并收取費用,但必須列明原創者姓名;
  • 任何人都可以修改源代碼,但必須列明修改人名字,以保護原創者名譽;
  • 任何人都可以采用源代碼中的某一段,但其開發之軟件必須也為自由軟件(例如,如果 Netscap 是自由軟件,而 IE 采用了其中的部份源代碼,則 IE 也必須成為自由軟件);
  • 任何自由軟件的衍生品也必須是自由軟件;
  • 自由軟件沒有擔保,以保護分發者。

1991 年,Richard Stallman 對授權做了微小的修改,即所謂的通用公共授權第 2 版。同時,他也推出了更寬松的通用公共授權,用于自由程序庫。這一系列的授權有效地保護了自由軟件不受商業軟件的非法侵犯,例如,1998 年 Netscap 決定采用與 GPL 差不多的 NPL(Netscap Public Liscense),這樣一來,Microsoft 就無法將 Netscap 中的源代碼運用在 IE 上,除非它們也要成為自由軟件。

至此,在 GPL 下人們就可以自由交流、修改軟件源碼了,這一協議極大地推動了整個計算機軟件行業的發展,并帶來了以下明顯的益處:
  • 對于廣大計算機軟件的學習者來說,可以直接從源碼中吸取營養,縮短學習的時間,提高學習的效率,少走彎路,再也不必花大量時間去看那些不知正確與否的“未解之謎”了,學習在某種程度上變成了一件輕松愉快的事情了。
  •  
  • 可以集中大家的智慧發展軟件,避免重復勞動。一個軟件只有公開源碼,通過很多人的研究才有可能發現其中深藏的錯誤,大家才能公開探討相關的問題,并進行改進,在大家的共同“挑剔與監督”下才有可能編寫出盡善盡美的軟件來。

GPL 協議的核心就是要對源碼進行公開,并且允許任何人修改源碼,但是只要使用了 GPL 協議的軟件源碼,其衍生軟件也必須公開源碼,準許其他人閱讀和修改源碼,即 GPL 協議具有繼承性。

另一個問題就是 GPL 軟件并非就是免費軟件,這里所說的自由軟件是指對軟件源碼的自由獲得與自由使用、修改,軟件開發者不但可以通過服務來收費,而且還可以通過出售 GPL 軟件來獲利。

適應 GPL 協議的軟件一般都是自由軟件,自由軟件是指一件可以讓用戶自由復制、使用、研究、修改、分發等,而不附帶任何條件的軟件。

copyleft 授權

Stallman 為了停止中間人對自由軟件權利的侵害,提出了 copyleft 授權,因為自由軟件在發布過程中可能會有一些不合作的人通過對程序的修改而將軟件變成私有軟件,將程序變成 copyleft 授權。

我們首先聲明它是有版權的,而后加人了分發條款,這些條款是法律指導,使得任何人都擁有對這一程序代碼或者任何這一程序的衍生品的使用、修改和重新發布的權力,但前提是這些發布條款不能被改變。這樣在法律上,代碼和自由就不可分割了。

自由軟件的支持者相信,總有一天,隨著自由軟件的日漸成熟,自由軟件終將主宰整個軟件行業,人們不再受少數商業軟件公司的控制,真正實現“市集式開發模式”。
< 上一頁GCC編譯器 GCC的發展歷史下一頁 >

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo