什麼是開源軟體,為什麼它很重要?

極客們經常把程式描述為“開源”或“自由軟體”。如果你想知道這些術語到底是什麼意思以及它們為什麼重要,請繼續讀下去。(不,“免費軟體”不僅僅意味著你可以免費下載。)...

什麼是開源軟體,為什麼它很重要?

極客們經常把程式描述為“開源”或“自由軟體”。如果你想知道這些術語到底是什麼意思以及它們為什麼重要,請繼續讀下去。(不,“免費軟體”不僅僅意味著你可以免費下載。)

一個程式是否開源不僅關係到開發人員,最終也關係到使用者。開放原始碼軟體許可證給了使用者以其他方式無法獲得的自由。

圖片來源:Flickr上的Quinn Dombrowski

開源的定義

如果一個程式是開源的,那麼它的原始碼就可以免費提供給使用者。它的使用者和其他任何人都有能力獲取原始碼,修改原始碼,並分發自己版本的程式。使用者還可以分發任意數量的原始程式副本。任何人都可以將程式用於任何目的;軟體沒有許可費或其他限制。OSI在其網站上對“開源”有更詳細的定義。

例如,ubuntulinux是一個開源作業系統。你可以下載Ubuntu,建立任意數量的副本,然後把它們送給你的朋友。你可以在無限數量的電腦上安裝Ubuntu。您可以建立Ubuntu安裝光碟的混音並分發它們。如果你有特別的動機,你可以下載Ubuntu中某個程式的原始碼並進行修改,建立你自己的自定義版本,或者Ubuntu本身。開放原始碼許可證都允許您這樣做,而封閉原始碼許可證對您有限制。

什麼是開源軟體,為什麼它很重要?

與開放原始碼軟體相反的是封閉原始碼軟體,它有一個限制使用者的許可證,並對使用者保留原始碼。

Firefox、Chrome、OpenOffice、Linux和Android是一些流行的開源軟體,而microsoftwindows可能是最流行的封閉原始碼軟體。

開源與自由軟體

開放原始碼應用程式通常是免費提供的——儘管沒有什麼能阻止開發人員對軟體副本收費,如果他們允許在以後重新分發應用程式及其原始碼的話。

然而,這並不是“自由軟體”所指的。自由軟體中的“自由”是指“像自由一樣自由”,而不是“像啤酒一樣自由”。由理查德·斯泰爾曼和自由軟體基金會領導的自由軟體陣營關注使用使用者可以控制和修改的軟體的倫理和道德。換句話說,自由軟體陣營關注使用者自由。

什麼是開源軟體,為什麼它很重要?

理查德·史泰爾曼。圖片來自Flickr上的Fripog。

開源軟體運動是為了關注選擇這類軟體的更實際的原因而創立的。開源倡導者希望把重點放在使用開源軟體的實際好處上,這種軟體更能吸引企業,而不是倫理道德。

最終,開源軟體和自由軟體的倡導者都在開發同一型別的軟體,但他們在訊息傳遞上存在分歧。

許可證型別

開放原始碼專案使用了許多不同的許可證,這取決於開發人員對其程式的偏好。

GPL,即GNU通用公共許可證,被許多開源專案廣泛使用,比如Linux。除了以上所有關於開放原始碼的定義外,GPL的條款還規定,如果任何人修改了一個開放原始碼程式並分發了一個衍生作品,他們還必須分發其衍生作品的原始碼。換句話說,沒有人能從開原始碼中建立一個封閉原始碼的程式,他們必須將他們的更改釋出回社群。由於這個原因,微軟將GPL稱為“病毒性的”,因為它強制包含GPL程式碼的程式釋出自己的原始碼。當然,如果這是一個問題,程式的開發人員可以選擇不使用GPL程式碼。

什麼是開源軟體,為什麼它很重要?

其他一些許可證,如BSD許可證,對開發人員的限制較少。如果一個程式是根據BSD許可證授權的,任何人都可以將該程式的原始碼合併到另一個程式中。他們不必將更改釋出回社群。有些人認為這比GPL許可證更“免費”,因為它使開發人員可以自由地將程式碼合併到他們自己的封閉原始碼程式中,而有些人認為它不那麼“免費”,因為它剝奪了派生程式終端使用者的權利。

對使用者的好處

這並不都是枯燥的,不重要的東西,只關係到開發人員。開源軟體最明顯的好處是可以****。上面的ubuntulinux的例子清楚地說明了這一點——與Windows不同,您可以安裝或分發任意數量的Ubuntu副本,而不受任何限制。這對伺服器特別有用——如果您正在設定伺服器,只需在其上安裝Linux即可。如果你正在建立一個虛擬化的伺服器叢集,你可以很容易地複製一個Ubuntu伺服器。您不必擔心許可和允許執行多少Linux例項。

開源程式也更靈活。例如,windows8的新介面讓許多長期使用桌面Windows的使用者失望。因為Windows是封閉原始碼的,沒有Windows使用者可以使用windows7介面,修改它,並使它在windows8上正常工作。(一些Windows使用者正在嘗試,但這是一個艱苦的逆向工程和修改二進位制檔案的過程。)

什麼是開源軟體,為什麼它很重要?

當像Ubuntu這樣的Linux桌面引入一些使用者不喜歡的新桌面介面時,使用者就有了更多的選擇。例如,當GNOME3釋出時,許多Linux桌面使用者同樣被關閉。一些人將程式碼移植到舊版本gnome2,並對其進行了修改,使其能夠在最新的Linux發行版上執行,這就是MATE。一些人把程式碼帶到GNOME3中,並對其進行了修改,使其以他們喜歡的方式工作——這就是肉桂。一些使用者只是切換到現有的替代桌面。如果Windows是開源的,那麼windows8使用者將有更多的選擇和靈活性。只需看看CyanogenMod,一個流行的、社群驅動的Android發行版,它增加了新裝置的功能和支援。

開源軟體還允許開發者“站在巨人的肩膀上”,建立自己的軟體。Android和Chrome作業系統是基於Linux和其他開源軟體構建的作業系統。蘋果OSX的核心——也就是iOS——也是建立在開原始碼之上的。Valve正在全力將他們的Steam遊戲平臺移植到Linux上,因為這將允許他們建立自己的硬體,並以一種在微軟Windows上不可能實現的方式控制自己的命運。


這並不是一個詳盡的描述——整本書都是關於這個主題的——但是你現在應該對開源軟體的真正含義以及它為什麼對你有用有了更好的認識。

  • 發表於 2021-04-09 02:53
  • 閱讀 ( 88 )
  • 分類:網際網路

你可能感興趣的文章

網店版(opencart)和馬根託(magento)的區別

...靈活和功能齊全的線上商店。 目錄 1. 概述和主要區別 2. 什麼是Opencart 3. 什麼是Magento 4. Opencart和Magento的相似之處 5. 並列比較——Opencart與Magento的表格形式 6. 摘要 什麼是網店版(opencart)? Opencart是一個用於構建電子商務網站的開...

  • 發佈於 2020-10-19 22:19
  • 閲讀 ( 52 )

開源(open source)和專有軟體(proprietary software)的區別

...軟體和專有軟體之間的關鍵區別:原始碼的可訪問性。 什麼是開源軟體(open source software)? RichardStallman是1984年開發自由軟體的第一人。這個自由軟體可以根據使用者的喜好進行更改和修改。使用者可以自由修改、更改和共享原...

  • 發佈於 2020-10-22 18:44
  • 閲讀 ( 51 )

免費軟體(freeware)和開源(open source)的區別

...讓我們仔細看看這兩個軟體,並破譯它們之間的區別。 什麼是免費軟體(freeware)? 免費軟體可以被歸類為一個專有軟體,可以使用沒有任何金錢成本。儘管免費軟體可以****,但可能會有限制。未經作者許可,不得修改、逆向工...

  • 發佈於 2020-10-28 08:32
  • 閲讀 ( 54 )

你能相信你最喜歡的linux桌面會繼續存在嗎?

... 為什麼桌面會改變? ...

  • 發佈於 2021-03-12 09:08
  • 閲讀 ( 50 )

4種方式開源軟體不夠好

...能會發現自己仍然不得不依賴於封閉原始碼的應用程式。什麼時候自由軟體還不夠好? ...

  • 發佈於 2021-03-12 11:59
  • 閲讀 ( 51 )

你的電腦有特殊用途嗎?使用此linux作業系統

...的。一條思路一旦走了,有時就再也回不來了。這就是為什麼我更喜歡簡約設計的桌面介面的很大一部分原因。更多的螢幕元件只會提供更多的思維方式。要調整的設定越多,就意味著需要更多的時間來修補句子結構和角色發展...

  • 發佈於 2021-03-12 12:25
  • 閲讀 ( 63 )

誰製造了linux?為什麼它是免費的?

...證,禁止使用自由軟體程式碼建立專有程式碼。這就是為什麼那麼多Linux軟體,包括核心本身,幾十年後仍然免費的部分原因。 ...

  • 發佈於 2021-03-13 08:27
  • 閲讀 ( 58 )

如何在ubuntu、fedora和mint中安裝專有的圖形驅動程式

... 為什麼需要專有的圖形驅動程式? ...

  • 發佈於 2021-03-14 23:36
  • 閲讀 ( 55 )

默默無聞的安全性比開源軟體安全嗎?

... 什麼是隱晦式安全(security through obscurity)? ...

  • 發佈於 2021-03-14 23:58
  • 閲讀 ( 45 )

8個免費的開源windows應用,以前是專有的

... 為了理解為什麼這是一個里程碑式的時刻,我們需要知道.NET框架是什麼,以及它為什麼首先存在。 ...

  • 發佈於 2021-03-15 01:21
  • 閲讀 ( 49 )