原文鏈接: https://opensource.com/resources/what-open-source
“開源”指代一些人們可以自由修改和分享的事物。
這個術語在軟件發展的背景下起源,指示了一種特殊的方式去創建計算機程序。在今天,“開源”這個詞指向了一個更為寬廣的價值觀——我們稱之為“開源方式”。比如開源的項目、開源的產品、積極開放的態度、交流與協作、透明化和面向社區的開發。
什么是開源軟件?
開源軟件指源代碼可以被任何人查看、修改和添加的軟件。
“源代碼”是軟件的一部分,大多數計算機用戶并不會看到,而程序員可以編輯代碼來改變程序的運行方式。擁有源代碼訪問權限的程序員可以通過增加新功能或修復Bug來改良程序。
開源軟件和其他類型軟件有什么不同?
一些軟件的源代碼只有創建者和擁有維護權的個人、團隊或組織機構可以修改。這類軟件被稱為“專利”軟件或“閉源”軟件(下文統稱為閉源)。
閉源軟件只有原作者可以合法地復制、查看和修改。為了使用閉源軟件,計算機用戶必須同意在沒有得到軟件作者的明確授權下不得對軟件做任何修改。Microsoft? Office 和 Adobe Photoshop是閉源的兩個例子。
開源軟件不同,它的作者將源代碼開放給想要查看、復制、學習和修改它的人。例如LibreOffice和GNU Image Manipulation Program。
和閉源軟件一樣,用戶在使用開源軟件時也必須接受一些許可條款——但是開源軟件的合法許可條款和閉源軟件是明顯不同的。
開源許可影響人們使用、學習、修改和發行軟件的方式。通常情況下,開源許可授權給用戶可以任意地使用它。一些開源許可——人們稱之為“著佐權”——規定發行一個修改版開源軟件的人必須同時也開放該修改版軟件的源代碼。此外,也有開源許可規定任何人修改和分享軟件的同時必須分享源代碼,并且不能夠收取任何許可費用。
從設計上來說,開源軟件許可促進了協作和分享,因為這允許其他人對源代碼進行修改,其后將改動合并在項目中。開源鼓勵計算機程序員在任何時候去使用、查看和修改開源軟件,只需他們在分享自己的作品時也允許其他人做同樣的事情。
開源軟件只對計算機程序員重要嗎?
不,無論是否是程序員都在開源技術和開源思想中獲益。
早期因特網的設計者使用開源技術構建了大部分因特網——例如Linux操作系統和Apache Web服務器應用——今天任何使用因特網的人都從開源中收益。
計算機用戶的每一次查看網頁、查看email、和朋友聊天、聽音樂或玩多人游戲,他們的電腦、手機或游戲控制器都使用開源軟件來路由和傳輸數據到他們面前的設備,使他們可以連接到互聯網。進行這些重要工作的計算機通常分布在遙遠的地方,用戶看不到也無法在物理上接觸到——這就是為什么人們稱這些計算機為“遠程計算機”。
越來越多人依賴遠程計算來執行他們從前可能在本地設備上執行的任務。例如他們可以使用在線文字數據處理、email管理和圖片編輯軟件,不需要在他們的個人電腦上安裝和運行軟件。相反的,他們僅僅通過使用一個Web瀏覽器或手機應用去訪問這些遠程計算機上的程序。當人們在做這些時,他們也參與進了“遠程計算”。
一些人稱遠程計算為“云計算”,因為它包括合并了本地設備和互聯網遠程計算機的活動(例如保存文件、分享照片或觀看視頻),這組成了環繞在人們周圍的一團“大氣”;
云計算是在擁有聯網設備的日常生活中日益增長的一個方面。一些云計算應用,例如Google Apps,是閉源的。其他的,像ownCloud和Nextcloud,是開源的。
云計算運行在支撐它流暢和高效運轉的額外軟件“之上”,因此人們通常認為運行在云計算應用“之下”的軟件為這些應用提供了“平臺”。云計算平臺可以是開源也可以是閉源。OpenStack是開源云計算平臺的一個例子。
為什么人們更喜歡使用開源軟件?
比起閉源軟件,人們更喜歡開源軟件因為很多個原因,包括:
控制權。很多人更喜歡開源軟件因為他們對這類軟件擁有更多的控制權。他們可以檢查代碼確保軟件沒有做他們不想讓他做的事情,并且可以修改他們不喜歡的部分。非程序員的用戶同樣從開源軟件中獲益,因為他們可以隨心所欲地使用這個軟件——而不只是被允許做其他人認為他們應該做的事。
訓練。其他人喜歡開源軟件因為它幫助他們成為更好的程序員。開源軟件的源代碼是可以公開使用的,學生可以輕松地從中學習以編寫出更好的軟件。學生們也可以和其他人分享作品,邀請評論和批評,同時獲得技能上的提升。當人們發現程序源代碼中的錯誤,他們可以和其他人分享這些錯誤來幫助他們自身避免犯同樣的問題。
安全。一些人更喜歡開源軟件的原因是他們認為開源軟件比閉源軟件更加安全和穩定。因為任何人都可以查看和修改開源軟件,一些人就可以發現和修正程序作者可能沒有注意到的錯誤和遺漏。如此多的程序員可以在一個開源軟件開發而不需要請求原作者的許可,所以他們可以比在閉源軟件上更快地修復、升級軟件。
穩定。很多人因為重要、長期的項目而更喜歡開源軟件。程序員們公開地發行開源軟件的源代碼,所以依賴這些軟件進行重要任務的用戶可以確保他們的工具不會突然消失或者因為軟件創造者停止開發而導致軟件無人維護。此外,開源軟件往往根據開放的標準來合并和維護。
“開源”只是一些免費的事物罷了?
不,這是最通常的關于“開源”含義的誤解,這個術語的含義不只是經濟上的。
開源軟件程序員可以可以根據他們創造或發行的開源軟件進行收費。但是在一些情況下,因為當他們售賣軟件給其他人時,開源協議可能規定他們公開他們的源代碼,所以一些程序員發現向用戶收取軟件服務和技術支持(而不是軟件本身)費用更加獲利。這時候,軟件保持免費,他們通過協助用戶安裝、使用和排除故障獲取收益。
雖然開源軟件可能是免費的,但是面向開源軟件的編程技能和故障排除能力可以非常值錢。很多雇主明確地愿意尋找擁有開發開源軟件經驗的程序員。
軟件“之外”的開源是什么?
在opensource.com,我們愿意去說我們對開源方式應用在軟件之外的價值觀和原則很感興趣。我們愿意去思考開源不只是去開發和授權計算機軟件,同時也是一種態度。
在生活的所有方面上探討,“開源的方式”意味著表達一種意愿去分享、與其他人合作的方式,這是透明的(因此其他人可以看到和加入進來),擁抱失敗把它當做為是一次提升,并且希望——甚至鼓勵——每一個人都能做同樣的事情。
同時它也意味著承諾去扮演一個活躍的角色使世界變得更美好,這需要每個人都能去接近這個世界被構想的樣子。
這個世界充滿了“源代碼”——藍圖、配方、規則——指引和塑造我們思考和行動的方式。我們相信這些最根本的代碼(無論它是什么形式)應該是開放、可以接近和可分享的——由此人們可以貢獻自己的力量使它變得更好。
在這里,我們談論開源如何影響生活的所有領域——科學,教育,政府,制造業,健康,法律和組織的動力。我們是一個志向去告訴其他人為何開源是最好的方式的社區,因為對開源的熱愛就像其他事物一樣:分享使之變得更好。