中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
第 1 小節(jié):什么是開源 | 開源指北

# 第 1 小節(jié):什么是開源

本篇內(nèi)容將會(huì)從最基本的概念開始帶開發(fā)者們認(rèn)識(shí)開源。

# 開源的概念

「開源」一詞對(duì)應(yīng)英文 Open Source,最初起源于軟件開發(fā)領(lǐng)域,因此也稱為「開放源代碼」,對(duì)應(yīng)的軟件則稱為開源軟件(Open Source Software)。除了我們熟知的開源軟件以外,開源的表現(xiàn)形式還有開源硬件(Open Source Hardware)、開放設(shè)計(jì)(Open Design)、開放文檔(Open Document)。

# 開源軟件

那是不是公開源代碼的軟件就是開源軟件呢?

實(shí)際上并不是。按照 OSI 組織 (opens new window)(Open Source Initiative Association)的 OSD 定義 (opens new window),除了公開源代碼,開源軟件的發(fā)行條款還必須符合以下十個(gè)條件:

序號(hào) 條款 簡單說明
1 Free Redistribution 允許自由地再發(fā)布軟件
2 Source Code 程序必須包含所有源代碼
3 Derived Works 可以修改和派生新的軟件
4 Integrity of The Author's Source Code 發(fā)布時(shí)保持軟件源代碼的完整性
5 No Discrimination Against Persons or Groups 不得歧視任何個(gè)人或團(tuán)體
6 No Discrimination Against Fields of Endeavor 不得歧視任何應(yīng)用領(lǐng)域(例如商業(yè))
7 Distribution of License 許可證的發(fā)布具有延續(xù)性
8 License Must Not Be Specific to a Product 許可證不能針對(duì)于某一個(gè)產(chǎn)品
9 License Must Not Restrict Other Software 許可證不能限制其他軟件
10 License Must Be Technology-Neutral 許可證必須是技術(shù)中立的

你可以通過查閱OSI官方許可證的目錄 Open Source Initiative 認(rèn)可的開源許可證 (opens new window) ,了解常見的開源許可證。

通過了解這些條件約束,我們可以得出開源軟件的定義:開源軟件是一種技術(shù)和立場中立使用許可證約束開放源代碼的軟件。

開源軟件需要保持開放的心態(tài),對(duì)任何技術(shù)和立場都保持客觀公正的態(tài)度,而且在開放源代碼時(shí),還需要遵循開源許可協(xié)議,允許任何人使用、拷貝、修改以及重新發(fā)布。開源許可協(xié)議主要分為寬松許可協(xié)議(Apache、BSD、MIT 等)和嚴(yán)格許可協(xié)議(GPL、GPL v3、LGPL、Mozilla 等)兩大類。除此之外,一個(gè)優(yōu)秀的可持續(xù)發(fā)展的開源軟件,還需要公開發(fā)布項(xiàng)目技術(shù)文檔和其他材料、二進(jìn)制文件(可選)等,以及擁有一個(gè)開放性的社區(qū),接收用戶和開發(fā)者的反饋,共同探討開源軟件的發(fā)展。

# 開源硬件

上面我們簡單介紹了一下開源軟件,那么什么是開源硬件呢?

類比開源軟件,你可能會(huì)誤以為開源硬件是可以免費(fèi)獲得、自由修改并再分發(fā)的硬件。如果你這么想,你就大錯(cuò)特錯(cuò)了,畢竟硬件是有形的,是看得見摸得著的。我們先來簡單看一下 開源硬件協(xié)會(huì) (opens new window)(Open Source Hardware Association)對(duì)開源硬件的描述:

開源硬件是可以通過公開渠道獲得的硬件設(shè)計(jì),任何人可以對(duì)已有的設(shè)計(jì)進(jìn)行學(xué)習(xí),修改,發(fā)布,制作和銷售。硬件設(shè)計(jì)的源代碼的特定的格式可以為其他人獲得,以方便對(duì)其進(jìn)行修改。理想情況下,開源硬件使用隨處可得的電子元件和材料,標(biāo)準(zhǔn)的過程,開放的基礎(chǔ)架構(gòu),無限制的內(nèi)容和開源的設(shè)計(jì)工具,以最大化個(gè)人利用硬件的便利性。開源硬件提供人們?cè)诳刂扑麄兊募夹g(shù)自由的同時(shí)共享知識(shí)并鼓勵(lì)硬件設(shè)計(jì)開放交流貿(mào)易。

這里要?jiǎng)澲攸c(diǎn)了,OSHWA 在描述開源硬件時(shí)使用的是硬件設(shè)計(jì)而不是硬件本身。開源硬件的定義是在開源軟件的基礎(chǔ)上進(jìn)行的,這里不再贅述,感興趣的讀者可以在 OSHWA 官網(wǎng)找到開源硬件的完整 定義 (opens new window)。

目前比較有名的開源硬件有 Arduino (opens new window)、樹莓派(Raspberry Pi) (opens new window)、BeagleBone (opens new window) 等等。

# 開源設(shè)計(jì)

開源設(shè)計(jì)是開源項(xiàng)目的另一表現(xiàn)形式,開源設(shè)計(jì)的定義是遵循開源許可可以通過公開渠道獲得設(shè)計(jì)類項(xiàng)目,主要指的是非源代碼類型的項(xiàng)目,比如: icon、UI、畫稿、圖紙等。這些項(xiàng)目也需要遵守開源協(xié)議,并且享受協(xié)議規(guī)章的保護(hù)。

下面提供一個(gè) icon 的設(shè)計(jì),供大家參考。

# 開源文檔

開源文檔在開源項(xiàng)目中非常常見,開源文檔的定義是遵循開源許可可以通過公開渠道獲得文檔類項(xiàng)目,開源文檔存在于各種項(xiàng)目中,種類覆蓋廣泛,像博客、百科、菜譜、冷知識(shí)、項(xiàng)目說明文檔等都可以作為開源文檔進(jìn)行分享。開源文檔常見的開源協(xié)議也有很多,比如我們《開源指北》使用的協(xié)議:CC-BY-NC-SA 協(xié)議。

# 開源的歷史

# UNIX

提及開源的歷史,不得不從 Unix 說起。

在 1965 年前后,貝爾實(shí)驗(yàn)室(Bell)、麻省理工學(xué)院(MIT)及通用電氣公司(GE)曾共同發(fā)起了 Multics 項(xiàng)目,旨在開發(fā)一個(gè)全面的、通用的分時(shí)操作系統(tǒng),實(shí)現(xiàn)讓大型主機(jī)可以同時(shí)提供 300 臺(tái)以上的終端機(jī)連接使用的目標(biāo)。然而,到了 1969 年,由于項(xiàng)目進(jìn)度落后、資金短缺,在認(rèn)為 Multics 項(xiàng)目不可能成功之后,貝爾實(shí)驗(yàn)室退出了該項(xiàng)目的研究工作。雖然 Multics 項(xiàng)目沒有取得成功,但是培養(yǎng)出了很多優(yōu)秀的人才,其中就包括肯·湯普森(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)。

圖 1.1 Ken Thompson(坐著)和 Dennis Ritchie 在 PDP-11 前工作

回到貝爾實(shí)驗(yàn)室后,以肯·湯普森為首的研究人員吸取了 Multics 項(xiàng)目失敗的經(jīng)驗(yàn)教訓(xùn),將 Multics 龐大而復(fù)雜的系統(tǒng)進(jìn)行簡化,實(shí)現(xiàn)了一種分時(shí)操作系統(tǒng)的雛形,并將其取名為 UNIX。此后十年,UNIX 在學(xué)術(shù)機(jī)構(gòu)和大型企業(yè)中得到了廣泛的應(yīng)用,當(dāng)時(shí)的 UNIX 擁有者 AT&T 公司以低廉甚至免費(fèi)的許可將 UNIX 源碼授權(quán)給學(xué)術(shù)機(jī)構(gòu)做研究或教學(xué)之用,許多機(jī)構(gòu)在此源碼基礎(chǔ)上加以擴(kuò)充和改進(jìn)。

由于早期 AT&T 為避免美國司法部起訴它違反《反壟斷法》而簽訂了和解協(xié)議,同意不進(jìn)入計(jì)算機(jī)行業(yè),不銷售任何與計(jì)算機(jī)有關(guān)的產(chǎn)品。因此從 UNIX 誕生起的前十五年, 學(xué)術(shù)機(jī)構(gòu)和黑客們自由地共享源碼,以分散的方式共同合作開發(fā) UNIX 系統(tǒng)。為后來的自由和開源軟件的意識(shí)形態(tài)和社區(qū)誕生過程中起到了奠基性的作用。

轉(zhuǎn)折發(fā)生在 1984 年,由于對(duì) AT&T 的限制法令被解除,AT&T 開始以能獲利的價(jià)格銷售 UNIX。UNIX 的源碼依然可用,但 AT&T 將 UNIX 從研究性質(zhì)的項(xiàng)目轉(zhuǎn)變?yōu)橐粋€(gè)商業(yè)項(xiàng)目,這在 UNIX 黑客社區(qū)里產(chǎn)生了危機(jī),他們開始尋找一個(gè)可替代的類 UNIX 系統(tǒng)。

# GNU

實(shí)際上,在 UNIX 變成一個(gè)商業(yè)項(xiàng)目之前,由于硬件價(jià)格的不斷下跌,制造商已經(jīng)開始期望軟件能夠帶來額外的收入。于是,開始出現(xiàn)種種保護(hù)軟件、對(duì)其收費(fèi)的措施,越來越多的廠商開始單獨(dú)銷售軟件,也不再提供軟件的源代碼,軟件工業(yè)開始獨(dú)立出來了。1976 年,比爾·蓋茨就曾發(fā)表《致計(jì)算機(jī)愛好者的公開信 (opens new window)》,明確提出了軟件版權(quán)(CopyRight)的理念。

圖 1.2 Richard Stallman

1983 年,由于私有軟件的增長和對(duì)不再能自由使用計(jì)算機(jī)程序的擔(dān)憂,MIT 的理查德·斯托曼(Richard Stallman)開始倡導(dǎo)自由軟件運(yùn)動(dòng),并發(fā)起了 GNU 計(jì)劃。GNU 是「GNU is NOT UNIX」的無窮遞歸縮寫,其目標(biāo)是構(gòu)建一整套完全由自由軟件構(gòu)成的 UNIX OS 體系。GNU 起初進(jìn)展很順利,開發(fā)出 GLibc、GCC、GDB 等一系列操作系統(tǒng)必備軟件。

隨著推動(dòng)自由軟件發(fā)展和成熟的愿景日益強(qiáng)烈,理查德·斯托曼意識(shí)到僅通過編寫和分享 GNU 代碼是遠(yuǎn)遠(yuǎn)不夠的。于是,在 1985 年創(chuàng)建了自由軟件基金會(huì)(Free Software Foundation,簡稱 FSF),其主要工作是運(yùn)行 GNU 計(jì)劃,開發(fā)更多的自由軟件。同時(shí),F(xiàn)SF 還創(chuàng)建了保護(hù) GNU 和其他自由軟件項(xiàng)目的法律和制度框架,提出了與 CopyRight 理念針鋒相對(duì)的 CopyLeft(許可復(fù)制權(quán))理念,其表現(xiàn)形式為 GPL,即公共許可證(General Pubic License)。

# Linux

1991 年,林納斯·托瓦茲(Linus Torvalds)公開發(fā)布了一個(gè)類 UNIX 操作系統(tǒng)內(nèi)核 —— Linux,并接受 CopyLeft 理念。從 Linux 0.12 版本起,Linux 內(nèi)核開始采用 GPL 許可證的新版權(quán)聲明。雖然 Linux 內(nèi)核并不是 GNU 計(jì)劃的一部分,但由于 HURD 內(nèi)核進(jìn)展緩慢,使得 Linux 得到廣泛關(guān)注并得以快速發(fā)展。GNU 與 Linux 的發(fā)展,可以說是相輔相成,因此 我們通常把使用 Linux 內(nèi)核并且大量使用 GNU 組件的操作系統(tǒng)發(fā)行版稱為 GNU/Linux。

圖 1.3 Linus Torvalds

正是 Linux 的出現(xiàn),使得自由軟件運(yùn)動(dòng)有了自己可以與 Microsoft 的 Windows 相抗衡的操作系統(tǒng)。自由軟件運(yùn)動(dòng)初戰(zhàn)告捷。但是,自由軟件運(yùn)動(dòng)關(guān)于自由的追求,畢竟和現(xiàn)實(shí)的商業(yè)氛圍格格不入,帶有著過于理想化的色彩。這種反商業(yè)的信條,讓一些本來也反對(duì)私有軟件的人士對(duì)自由軟件敬而遠(yuǎn)之。正是在這種背景下,一部分原有自由軟件運(yùn)動(dòng)人士,開始嘗試將理想的自由軟件與現(xiàn)實(shí)的商業(yè)氛圍進(jìn)行某種銜接。

# 自由軟件和開源軟件

1998 年,埃里克·雷蒙德(Eric Raymond)等人成立了一個(gè)名為開源促進(jìn)會(huì)(Open Source Initiative,簡稱 OSI)的組織。為了減少意識(shí)形態(tài)上的溝壑,以及「自由(Free)」一詞造成免費(fèi)軟件的誤解。OSI 組織決定從「自由軟件」中去掉了「自由」一詞,使用「開源軟件」(Open Source Software)作為共通名稱,并創(chuàng)建了自己的開放源碼的定義,以及自己的一套許可證。

圖 1.4 1998 年 Open Source Summit

正因如此,自由軟件運(yùn)動(dòng)和開源軟件運(yùn)動(dòng)有著密不可分的關(guān)系,兩者的根本差別在于它們看待世界的方法。開源軟件運(yùn)動(dòng)的理念更傾向于解決實(shí)際問題,既抓住了私有軟件的痛點(diǎn),又實(shí)現(xiàn)了與商業(yè)的融合。

# 開源、Git和代碼托管平臺(tái)

前面提到,開源軟件是允許自由復(fù)制和重新分發(fā)的,那么分散的開發(fā)者之間是如何協(xié)作的呢?尤其是 Linux 這樣依靠全世界熱心的志愿者參與的項(xiàng)目。其實(shí)早年(1991-2002 年間)世界各地的志愿者是通過 diff 的方式把源代碼補(bǔ)丁發(fā)給 Linus,然后由 Linus 本人通過手工方式合并代碼。直到 2002 年,Linux 項(xiàng)目組才開始啟用一個(gè)專有的分布式版本控制系統(tǒng) BitKeeper 來管理和維護(hù)代碼。

但好景不長,2005 年,開發(fā) BitKeeper 的商業(yè)公司結(jié)束了與 Linux 內(nèi)核開源社區(qū)的合作。于是 Linux 開源社區(qū)(特別是 Linux 的締造者 Linus Torvalds)決定開發(fā)自己的版本控制系統(tǒng) —— Git (opens new window) 。很快,Linux 內(nèi)核的源碼已經(jīng)由 Git 全面管理了。Git 是完全分布式的,同時(shí)擁有強(qiáng)大的代碼管理能力,支持離線操作和非線性分支管理,使用 Git 可以讓散布各地的開發(fā)者更加高效地協(xié)同工作,可以說,Git 的出現(xiàn)極大地推動(dòng)了開源的發(fā)展。

圖 1.5 GitHub 創(chuàng)始人 P.J. Hyett、Tom Preston-Werner 和 Chris Wanstrath

2008 年,GitHub 網(wǎng)站上線了,它為開源項(xiàng)目免費(fèi)提供 Git 存儲(chǔ),無數(shù)開源項(xiàng)目開始遷移至 GitHub。GitHub 的出現(xiàn)讓開源的工作方式變得更簡單和有趣了。如今,每天都有無數(shù)來自世界各地的開發(fā)者在 GitHub 上進(jìn)行交流,Github 已經(jīng)成為一個(gè)包含問題追蹤和版本控制的特殊社交網(wǎng)絡(luò)。

初學(xué)者容易混淆 Git 和代碼托管平臺(tái)的概念。Git 是版本控制系統(tǒng),開發(fā)者可以通過 Git 在本地工作空間建立項(xiàng)目倉庫,每一個(gè) Git 倉庫都會(huì)包含一個(gè) .git 目錄,里面存儲(chǔ)了該項(xiàng)目的每一次源代碼的提交日志,可以方便地回退到過去的任意一個(gè)提交的版本與過去的代碼進(jìn)行比對(duì)。毫不夸張地說,Git 倉庫就像是一個(gè)具有魔法的文件系統(tǒng),Git 則幫我們記錄該倉庫下所有的讀寫信息,并在工作空間、暫存區(qū)、本地倉庫之間隨意切換。

而代碼托管平臺(tái),比如 GitHub (opens new window)、GitLab (opens new window)Bitbucket (opens new window)、Gitee (opens new window) 等,則是基于 Git 的代碼托管平臺(tái),通過網(wǎng)絡(luò)為用戶提供 Git 倉庫托管服務(wù)。得益于 Git 分布式的特性,Git 代碼托管平臺(tái)上的倉庫通常充當(dāng)遠(yuǎn)程倉庫的角色,便于多個(gè)開發(fā)者之間的同步。在此基礎(chǔ)之上,代碼托管平臺(tái)還提供了許多協(xié)作功能,將版本管理、Bug 跟蹤、代碼審查、郵件列表、IRC 等眾多功能組合在一起,以實(shí)現(xiàn)更高效的協(xié)同開發(fā)。簡單來說,代碼托管平臺(tái)不僅僅提供代碼托管服務(wù),還有項(xiàng)目管理,甚至社交等功能。

總的來說,Git 和代碼托管平臺(tái)有直接關(guān)聯(lián),但又有許多不同的地方。關(guān)于 Git 和代碼托管平臺(tái)的操作,將在后續(xù)章節(jié)展開描述。

# 小結(jié)

不會(huì)寫代碼也可以參與開源嗎?相信你在讀完這篇文章后,在自己心中應(yīng)該有了答案。

當(dāng)然,答案是肯定的。

從自由軟件運(yùn)動(dòng)和開源文化的發(fā)展來看,我們會(huì)發(fā)現(xiàn)其實(shí)它是一場社會(huì)運(yùn)動(dòng),是一種生產(chǎn)方式的革新。開源運(yùn)動(dòng)旨在利用開源軟件的價(jià)值和分散的生產(chǎn)模型,為其社區(qū)和行業(yè)的問題尋找新的解決方式。之所以首先出現(xiàn)在軟件領(lǐng)域,是因?yàn)檐浖鳛橐粋€(gè)新興領(lǐng)域,所受阻力相對(duì)較小,同時(shí)軟件可以依托網(wǎng)絡(luò)進(jìn)行異步協(xié)作和分發(fā),大大減少了時(shí)間和空間的差異以及獲取成本。但從涉獵范圍來看,開源除了適用于軟件領(lǐng)域以外,在開源硬件、開源設(shè)計(jì)、開源文檔等領(lǐng)域也有足夠的發(fā)揮空間。

時(shí)至今日,開源已經(jīng)成為一種超越軟件生產(chǎn)界限的運(yùn)動(dòng)和工作方式?!冈础沟暮x也從「源代碼」擴(kuò)展到各類「資源」。像文中提到的硬件領(lǐng)域,隨著 Arduino 和樹莓派的流行,如今我們對(duì)「開源硬件」一詞已經(jīng)不陌生了。還有許多與軟件源代碼具有相同傳播屬性的各類設(shè)計(jì)文檔,比如書籍、博客、食譜、配方、照片、音頻和視頻制品等資料。非營利性組織 Creative Commons 的 CC 許可協(xié)議就是專門應(yīng)用于此類著作權(quán)法的保護(hù)。

開源與我們息息相關(guān),即便你不寫代碼,我們也期望大家能夠參與開源(強(qiáng)烈建議)!愿你在開源領(lǐng)域乘風(fēng)破浪,所向無前!

# 參考資料

# 本部分內(nèi)容貢獻(xiàn)者

阿基米東 (opens new window)雪山凌狐 (opens new window)、Nicholas Zhan (opens new window)我是XXX (opens new window)WhitePaper (opens new window)brycen (opens new window)taotieren (opens new window)西狩 (opens new window)

發(fā)現(xiàn)內(nèi)容中的錯(cuò)誤?還是想要補(bǔ)充更多符合主題的內(nèi)容?《開源指北》歡迎你進(jìn)行貢獻(xiàn),點(diǎn)擊貢獻(xiàn)指南 (opens new window)了解貢獻(xiàn)的具體步驟。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
小米在開源上的五大原則,一位20年開源老兵的思辯
從 Unix 到 Github:十個(gè)關(guān)于自由和開源軟件歷史的重要事件
喬布斯造成了永久的傷害,直到現(xiàn)在都還沒消除
開源技術(shù):漫談起源和發(fā)展
***Linux之開源軟件及其相關(guān)組織(開源歷史)
gnu
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服