什麼是開源?
“開源”這個詞,指的是事物規劃為可以公開訪問的,因此人們可以修改並分享。
這個詞最初是起源於軟體開發中,指的是一種開發軟體的特殊形式。但到了今天,“開源”已經泛指一組概念——就是我們稱之為的“開源的方式”。這些概念包括開源專案、產品,或是自發倡導並歡迎開放變化、協作參與、快速原型、公開透明、精英體制以及面向社群開發的原則。
什麼是開源軟體?
開源軟體的原始碼任何人都可以審查、修改和增強。
“原始碼”是軟體中大部分計算機使用者都沒見過的部分,程式設計師可以修改程式碼來改變一個軟體(“程式”或“應用”)工作的方式。程式設計師如果可以接觸到計算機程式原始碼,就可以透過新增功能或修復問題來改進這個軟體。
開源軟體和其它型別的軟體有什麼不同?
有些軟體只有建立它的人、團隊、組織才能修改,並且控制維護工作。人們稱這種軟體是“專有”或“閉源”軟體。
專有軟體只有原作者可以合法地複製、審查,以及修改這個軟體。為了使用專有軟體,計算機使用者必須同意(通常是在軟體第一次執行的時候簽署一份顯示的許可)他們不會對軟體做軟體作者沒有表態允許的事情。微軟 Office 和 Adobe Photoshop 就是專有軟體的例子。
開源軟體不一樣。它的作者讓原始碼對其他人提供,需要的人都可以檢視、複製、學習、修改或分享程式碼。LibreOffice 和 GIMP 是開源軟體的例子。
就像專有軟體那樣,使用者在使用開源軟體時必須接受一份許可證的條款——但開源許可的法律條款和專有軟體的許可截然不同。
開源許可證影響人們使用、學習、修改以及分發的方式。總的來說,開源許可證賦予計算機使用者按他們想要的目的來使用開源軟體的許可。一些開源許可證(人們稱之為左版”)規定任何釋出了修改過的開源軟體的人,同時還要一同釋出它的原始碼。此外,另一些開源許可規定任何修改和分享一個程式給其他人的人,還要分享這個程式的原始碼,而且不能收取許可費用。
開源軟體許可證有意地提升了協作和分享,因為它們允許其他人對程式碼作出修改並將改動包含到他們自己的專案中。開源許可證鼓勵開發者隨時訪問、檢視、修改開源軟體,前提是開發者在分享成果的時候允許其他人也能夠做相同的事情。
開源軟體只是對開發者很重要?
不。開源技術和開源思想對開發者和非開發者都有益。
因為早期的創造者基於開源技術構建了網際網路本身的大部分——比如 Linux 作業系統和 Apache Web 伺服器應用——任何今天使用網際網路的人都受益於開源軟體。
每當計算機使用者瀏覽網頁、檢查郵件、和朋友聊天、線上收聽流媒體音樂、玩多人遊戲的時候,他們的電腦、手機或遊戲主機都會連線到一個全球性的計算機網路,使用開源軟體來路由並將他們的資料傳輸到面前的“本地”裝置上。完成這些重要工作的計算機通常位於很遠的地方,使用者不會實際看到或物理接觸到它們——所以有些人稱之為“遠端計算機”。
越來越多的人開始依賴於遠端計算機,在可以在本地完成的任務線上完成。舉個例子,人們可能會使用線上文書處理、電子郵件管理、圖片編輯工具,而在本地的個人電腦並沒有安裝執行相應的軟體。人們輕鬆地使用瀏覽器或手機應用訪問這些程式。當他們這麼做的時候,他們參與到了“遠端計算”中。
一些人將遠端計算稱為“雲端計算”,因為它涉及的活動(像是儲存檔案、分享照片、觀看影片)不僅包含本地裝置,還有一個遠端計算機全球網路,像是圍繞在周圍的大氣。
雲端計算是日常生活一個越來越重要的概念,離不開連線網際網路的裝置。一些雲端計算應用,比如 Google 應用,是專有的。其它的,像 OwnCloud 和 NextCould 是開源的。
雲端計算應用執行在一些額外的軟體“之上”,這些軟體幫助它們流暢高效地操作,所以人們經常說那個軟體執行在雲端計算應用“之下”,為那些應用扮演一個“平臺”。雲端計算平臺可以是開源或閉源的。OpenStack 是一個開源雲端計算平臺的例子。
為什麼人們更傾向於使用開源軟體?
人們相對於專有軟體更傾向於開源軟體有很多原因,包括:
可控。很多人青睞開源軟體因為相對其它型別軟體他們可以擁有更多的可控。他們可以檢查程式碼來保證它沒有做任何不希望它做的事情,並且可以改變不喜歡的部分。不是開發者的使用者也可以從開源軟體獲益,因為他們可以以任何目的使用這個軟體——而不僅僅是某些人認為他們應該有的目的。
訓練。其他人喜歡開源軟體是因為它可以幫助他們成為更好的開發者。因為開原始碼可以公開訪問,學生可以在學習建立更好的軟體時輕鬆地從中學習。學生還可以在提升技能的時候分享他們的成果給別人,獲得評價和批評。當人們發現程式原始碼中的錯誤的時候,可以將這個錯誤分享給其他人,幫助他們避免犯同樣的錯誤。
安全。一些人傾向開源軟體是因為他們認為它比專有軟體更安全和穩定。因為任何人都可以檢視和修改開源軟體,就會有人可能會注意到並修正原作者遺漏的錯誤或疏忽。並且因為這麼多的開發者可以在同一開源軟體上工作,而不用事先聯絡獲取原作者的授權,相比專有軟體,他們可以更快速地修復、更新和升級開源軟體。
穩定。許多使用者在重要、長期的專案中相較專有軟體更加青睞開源軟體。因為開發者公開分發開源軟體的原始碼,如果最初的開發者停止開發了,關鍵任務依賴該軟體的使用者可以確保他們的工具不會消失,或是陷入無法修復的狀態。另外,開源軟體趨向於同時包含和按照開放標準進行操作。
“開源”不是隻是意味著某樣東西是免費的嗎?
不。這是個“開源”實踐中的常見誤解,“開源”概念的含義不只是指經濟方面的。
開源軟體開發者可以為他們建立或貢獻的開源軟體收取費用。但在一些情況下,由於開源許可證可能會要求他們在將軟體賣給他人的時候釋出原始碼,一些開發者發現向使用者收取軟體服務和支援(而不是軟體本身)的費用會更加合算。透過這種方式,他們的軟體仍然保持免費,而他們從幫助他人安裝、使用、解決問題中賺取費用。
儘管一些開源軟體可能是免費的,但開源軟體的程式設計和解決問題的技能可能十分有價值。許多僱主特別尋求僱傭在開源軟體方面有工作經驗的開發者。
什麼是“在軟體之外”的開源?
在 Opensource.com,我們想說我們對於開源價值和原則應用到軟體之外領域的方式很有興趣。我們更願意不僅將開源視為一種計算機軟體開發和許可的方式,也把它視作一種態度。
實現“開源方式”的生活的各個方面,意味著表達一種分享的意願,透過透明的方式和他人協作(這樣其他人也可以關注和加入),擁抱失敗,將它作為一種改進的手段,以及期待(甚至鼓勵)所有人都可以這麼做。
這也意味著在讓世界變得更好的過程中扮演一個積極的角色,這隻有在每個人都可以接觸到對世界進行規劃的途徑時才有可能。
這個世界充滿了“原始碼”——藍圖、食譜、規則——它們引導和塑造我們思考和行動的方式。我們相信這些深層程式碼(無論是什麼形式)應該是開放、可接觸、分享的——這樣人們可以參與其中並讓它變得更好。
在這裡,我們訴說開源價值對生活所有領域的影響的故事——科學、教育、政府、工業、健康、法律,以及組織動態。我們是一個社群,告訴他人開源的方式如何成為最好的方式,因為對開源的愛和其它一樣:當它被分享的時候它會變得更好。
在哪裡能夠獲得關於開源的更多資訊?
我們編輯了一些資源來幫助你學到更多關於開源的內容。我們推薦你從閱讀我們的開源問答、指南、教程開始。
via: https://opensource.com/resources/what-open-source
作者:opensource.com 譯者:alim0x 校對:wxy
相關文章
- 什麼是開源精神
- “開源”是什麼,能吃嗎?
- 開源堡壘機是什麼?開源堡壘機的優缺點是什麼?
- 5W1H聊開源之What——開源是什麼?
- 開源是什麼意思?開源軟體優缺點有哪些?
- 開源+SEO=什麼?
- 為什麼GPL是更好的開源許可證?
- 在Linux中,開源的優勢是什麼?Linux
- 開源+SEO=什麼?薦
- 系列:開源是一種開發模式、商業模式還是其他什麼?(一)模式
- "開源"是什麼?為啥這麼火?一定免費嗎?
- 跨域資源共享(CORS)是什麼?跨域CORS
- 【開源訪談】厲華:寫一個開源容器引擎會是什麼樣的體驗?
- 什麼是敏捷開發?它有什麼特點敏捷
- 開源一年,openGauss詮釋什麼是快速成長
- 維護一個開源專案25年是什麼體驗?
- 為什麼OilStates案對於開源界是個好訊息
- 什麼是前端開發?為什麼要學前端開發?前端
- Google 開源主管解釋為什麼開源“殘酷”Go
- 為什麼要貢獻開源
- 什麼情況!華為開源JDK!JDK
- 我能為開源做些什麼?
- 什麼是快速開發框架框架
- 什麼是公鏈開發?
- 什麼是後端開發?後端
- 我是怎麼做開源的
- 什麼是cookie,什麼是sessionCookieSession
- 什麼是DNS,什麼是HostsDNS
- 什麼是模式? 什麼是框架?模式框架
- 這是什麼這是什麼
- 什麼是大資料?大資料開發是做什麼的?大資料
- 專案管理中的資源日曆是什麼?有什麼作用專案管理
- 開源軟體成為“兵家必爭之地”到底是為什麼?
- Jtti:為什麼大部分Linux系統是開源的?JttiLinux
- GitHub上最火的開源專案及程式語言是什麼?Github
- RAGFlow開源Star量破萬,是時候思考下RAG的未來是什麼了
- 什麼是字串,web前端開發裡起到什麼作用字串Web前端
- 什麼是WebAuthn、FIDO 是什麼?Web