Free Software ( Richard Stallman 於二十多年前離開MIT開始推廣的運動)常被許多人與 Open Source (於1998年由 Free Software 分支出來的運動)混為一談。
Free Software 強調的是行使自由的 權利 。這裡指的是言論自由(free speech)的自由,而非免費喝到飽(free beer)的自由。 這運動主張所有 Free Software 的使用者有權利行使 四種自由 :
- 不論目的使用 Free Software。
- 研究 Free Software 如何運作,並可因應使用者需求修改。使用者必須能取得源碼,為達成這自由的一個前提。
- 重新發布 Free Software。讓使用者也能幫助他人。
- 改進 Free Software,對公眾發布修改過的版本,讓整個社群都能受益。使用者必須能取得源碼,為達成這自由的一個前提。
Free Software 運動主張的是使用者的自由/權力,而不是使用者行使該自由/權力所需付出代價(或是$$$)。Free Software 的作者大可對一個使用者收取高額的源碼發布費用,但不能阻止這使用者免費對大眾發布原始或修改後的源碼。或許跟許多人對 Free Software 的刻板印象有不小的出入,但這就是 Free Software 的哲學。至於是否強制使用者將修改過的源碼對外發布,則因不同 Free Software license 而異。部份 Free Software license 允許使用者無條件或滿足特定條件下,不對外發布修改後的源碼。
GPL 是最為人知的 Free Software license 之一。概略的說,除了 Free Software 主張的使用者自由/權利之外,GPL 還加上了保護社群及回饋公眾的機制:
- 一個軟體必須是 GPL 才能使用 GPL 的源碼或 link GPL 的 library。這主要是為了限制 non-free software 不能站在 GPL 軟體的肩膀上與 GPL 軟體競爭,並鼓勵其他與 GPL 相容 的 Free Software 加入 GPL 社群。
- 任何人以任何形式發布 GPL 軟體(包含源碼),就必須將該軟體以 GPL 授權給所有的人。被授權並不代表可以向發布者要求一份免費的複本,發布者依然可以向你收費。若沒對外發布過,則不需要滿足任何發布源碼的要求。
LGPL 可說是 GPL 的子集。把上列 GPL 機制的第一項拿掉,再把第二項中的 `GPL’ 字眼換成 `LGPL’ 就差不多了。
不論對 Free Software 哲學認同與否,Free Software 代表的是一種價值觀,一種信仰。相對的,Open Source 運動的訴求則簡單許多 – 就是開放源碼,與使用者的自由/權力無關,有時源碼開放的程度也相對的比 Free Software 少許多,少到近乎好笑的地步。有個 真實故事 大概是這樣子的。1998年,有個以 所謂 Linux 為主題的商展,一位知名公司的高級主管被邀請為主講者,會中他說:
我們不可能公開我們產品的源碼,但我們有可能會對 “公司內部” 開放源碼,例如對客服部開放…..
聽起來幾近不可思議,對公司內部能算開放源碼!?但其實上述情況卻是符合 Open Source 運動精神的。也就是要讓除了(原始)開發人員外,能有更多人能看到軟體的源碼,進而找出更多源碼中的問題,提高軟體品質。
Open Source 只是一種方法,一種軟體開發的方法。而 Free Software 是自由的追求,是個社會運動。
来自: http://fsfoundry.org/codefreak/2006/04/12/free-software-vs-open-source/
暂时没有评论