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