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