自由軟件、開源軟件、免費軟件,您真的分得清嗎?
譯文【51CTO.com快譯】不知您是否已經注意到,在軟件開發(fā)的行業(yè)中,各種字面相近、甚至相同縮寫的技術術語層出不窮。它們往往會讓我們在概念上相互混淆,甚至有些“找不到北”。其實,在各種不同的重要場景中,我們應當盡量采用準確的術語,來清晰地表達上下文的意思,并避免給讀者產生歧義。
自由軟件、開源軟件、免費軟件,這三個業(yè)內最常見出現(xiàn)的軟件術語,想必您很難用一句話就說出它們之間的區(qū)別。本文將重點和您討論這三個術語之間的主要區(qū)別,以便您在構建技術類產品時,能夠做出正確的選擇。
自由軟件(Free Software)
首先,我們必須弄清楚的是:所謂“Free Software”中的“free”一詞強調的是自由,而不是價格上的免費。因此,為避免英語歧義,有時人們也稱為:libre software。
支持自由軟件開發(fā)的非營利組織--自由軟件基金會(Free Software Foundation,F(xiàn)SF,請參見-)是這樣定義的:“自由軟件是指那些授予用戶自由共享,學習和修改權利的軟件。”該名稱由FSF在上個世紀八十年代所創(chuàng)造。也就是說,您可以對此類軟件做任何想做的事情,甚至可以對其原有版本進行改進,進而從中獲利。
在FSF的定義中,自由軟件必須遵守如下四個“自由支柱”(注意這些是權利而不是義務):
- 可以在任何使用環(huán)境中自由地部署軟件,而沒有任何限制。例如,某個程序的許可證會在30天后過期,那么它就不是自由軟件。
- 可以自由地研究軟件的工作方式,并能夠根據(jù)實際需要和偏好進行修改。
- 可以自由地二次分發(fā)(re-distribute)某個軟件,以幫助有需要的人。此處的二次分發(fā)既可以是有償?shù)?,也可以是無償?shù)摹?/li>
- 可以自由地增強軟件的性能,并發(fā)布增強的功能,進而讓社區(qū)(各種程序員或非程序員)能夠從中受益。此類行為既可以是有償?shù)?,也可以是無償?shù)摹?/li>
FSF同時強調:自由軟件不僅僅局限于非商業(yè)用途。如果某個商業(yè)軟件程序能夠允許用戶間接獲取上述“自由”,那么它也屬于該類型。
此外,與免費工具不同的是,由于用戶可以自由地進行修改,因此自由軟件允許用戶訪問其源代碼。
從理論上說,任何自由軟件的許可證,都應該使得用戶能夠從上述四點中受益。這些許可證既可以是保護性的,也可以是非保護性的。其中,前者將要求其使用者維持軟件原有的使用,研究,分發(fā)和修改等權利(也就是業(yè)界經常提到的:著佐權,copyleft)。而后者則允許使用者在二次分發(fā)時修改這些權利。
以下是最常用來定義自由軟件的三種許可證(請參見)類型:
- MIT(麻省理工學院)許可證:這是一種相對寬松的軟件授權條款,但是對于軟件的重用場景,是有所限制的。
- GNU通用公共許可證v2:這是一種著佐權類型的許可證,它允許用戶可以自由運行,研究和改進軟件。
- Apache許可證v2:這是一種許可性的證書,要求保留版權聲明和免責聲明。
- BSD許可證系列:它們是一組非著佐權類許可證,在使用和二次分發(fā)軟件方面提供了最小的限制。
在完全尊重自由性的方面,Linux操作系統(tǒng)算是自由軟件領域最典型的一個范例了。其中我們比較熟悉的一個發(fā)行版便是赫赫有名的Debian。
開源軟件(Open Source Software)
雖然術語名稱有所不同,但是開源軟件與自由軟件在含義上比較相近。它們有著一套相似的許可證和軟件權限。
支持開源軟件開發(fā)的非營利組織--Open Source Initiative(OSI,請參見)極力倡導:任何開源軟件都必須遵循如下標準:
- 可以被免費進行二次分發(fā)。
- 源代碼應當公開、可用。
- 可以與原始軟件不同的格式進行修改和分發(fā)。
- 軟件本身不應歧視任何個人或團體。
- 軟件本身不應限制其他軟件的使用或調用。
盡管這兩個術語都源于支持自由軟件的思想(包括上面提到的使用,研究,共享和修改的權利),但是從歷史上看,自由軟件的叫法早于開源軟件,而且它們的目標和理念也有所不同。
開源一詞是在上個世紀九十年代后期,針對自由軟件的限制而引入的。實際上,OSI讓它具有了“教育和倡導開放式開發(fā)流程的優(yōu)勢”(請參見)。開源軟件“提供了一種與潛在的軟件用戶和開發(fā)人員相互動的寶貴方法。通過一個具有互動參與性的社區(qū),大家可以創(chuàng)建新的或改進原有的源代碼。”可見,“開源”一詞強調了自由軟件的一個實際好處便是:支持各種軟件開發(fā)項目中的協(xié)作。換句話說,開源是一種更加面向業(yè)務的開發(fā)理念,而自由軟件則是一種針對社會和道德的哲學。正是由于“開源”一詞較少地強調了自由性,因此它更為企業(yè)所接受。
我們以Android移動操作系統(tǒng)為例,它屬于開放源代碼類軟件,但是不能被稱為自由軟件。其原因就在于它沒有遵從上述四個“自由支柱”。
為了最大程度地減少誤解,并避免自由軟件和開源軟件之間的術語之爭,業(yè)界在后續(xù)又出現(xiàn)了諸如FOSS(free and open source software)和FLOSS(free, libre, and open source software)之類的其他術語。
免費軟件(Freeware)
免費軟件是指您可以在不產生任何費用的情況下使用某個軟件。與開源軟件和自由軟件不同,免費軟件給最終用戶提供了最小的自由度。一般而言,用戶雖然可以免費地使用某個軟件,但是在未經作者許可的情況下,通常無法對其進行修改,調整,以及二次分發(fā)??梢?,免費軟件通常是在不包含其源代碼的情況下被共享使用的,這是和開源軟件、以及自由軟件的本質區(qū)別。
Skype和Adobe Acrobat Reader是兩款最常見的免費軟件。它們雖然可以被免費使用,但是其源代碼并不對外公開。在實際商業(yè)環(huán)境中,大多數(shù)開發(fā)人員通常會選擇將免費軟件作為免費增值的服務、或以共享軟件的形式進行銷售,以便鼓勵用戶購買其對應的、功能更為強大的版本。這里的免費增值服務是指那些免費提供的程序,它們往往需要用戶花費更多的錢,才能獲得額外的、更為全面的功能。
可見,免費共享軟件就是指那些最初無需任何附加費用,即可使用的程序。它們鼓勵用戶去分發(fā)其副本。不過,此類不收費期往往只會持續(xù)一段時間。過期以后,用戶還是需要付費才能繼續(xù)使用。
結論
綜上所述,無論您是在開發(fā)構建手機游戲、加密貨幣交易的機器人、還是網(wǎng)站等其他技術產品,都請確保使用正確的術語,來進行準確地描述。此外,如果您想將創(chuàng)建好的程序免費地發(fā)布到某個開源社區(qū),也請確保事先進行了足夠的研究,透徹了解了所選許可證的局限性和相關責任。
【原標題】Free Software vs Open Source vs Freeware: What's the Difference? (作者: Dr. Michael Garbade )
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】