手機(jī)怎么在百度做網(wǎng)站百度seo軟件優(yōu)化
<> 博客簡(jiǎn)介:Linux、rtos系統(tǒng),arm、stm32等芯片,嵌入式高級(jí)工程師、面試官、架構(gòu)師,日常技術(shù)干貨、個(gè)人總結(jié)、職場(chǎng)經(jīng)驗(yàn)分享
?
<> 公眾號(hào):嵌入式技術(shù)部落
?
<> 系列專欄:C/C++、Linux、rtos、嵌入式開發(fā)、流媒體、數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議、開源庫、CMake、Makefile、架構(gòu)設(shè)計(jì)模式等
本系列系統(tǒng)性總結(jié)和梳理git相關(guān)內(nèi)容。對(duì)開發(fā)者而言,了解 git 產(chǎn)生的背景和設(shè)計(jì)理念,有助于更好地理解和使用 git;對(duì)管理者而言,則能更好地對(duì)企業(yè)項(xiàng)目開展有效的管理。
1969 年,Linus Torvalds 生于芬蘭赫爾辛基市。父親 Nils Torvalds 畢業(yè)于赫爾辛基大學(xué),是一名活躍的共產(chǎn)主義者及電臺(tái)記者。母親 Anna Torvalds 同樣畢業(yè)于赫爾辛基大學(xué),也是一名記者。有趣的是,他的祖父奧 Ole Torvalds 也是一名記者。除此之外,Torvalds 的外祖父 Leo Tornqvist 是芬蘭第一批統(tǒng)計(jì)學(xué)教授。優(yōu)秀的家庭背景為 Torvalds 奠定了接受良好教育的基礎(chǔ)。Torvalds 在 11 歲時(shí),應(yīng)其外祖父要求用 BASIC 語言編寫一些統(tǒng)計(jì)學(xué)方面的小程序。大眾普遍認(rèn)為,這是他編程經(jīng)歷之始。
1988年,Torvalds 進(jìn)入赫爾辛基大學(xué)計(jì)算機(jī)科學(xué)系就讀。在興趣的趨勢(shì)下,Torvalds 創(chuàng)造并發(fā)布了自制的操作系統(tǒng),并將其命名為 Linux。1996 年碩士畢業(yè)并移居美國(guó),后擁有美國(guó)國(guó)籍。2003 年,為專心維護(hù) Linux 從全職公司辭職。
在2002年以前,Linux內(nèi)核的版本控制一直是Linus自己。具體流程如下:開發(fā)人員將tarballs和補(bǔ)丁提交給幾個(gè)Linus信任的助手。助手們通過審核后,將補(bǔ)丁發(fā)送給Linus。最后,Linus親手將它們合并到自己的源代碼樹中,然后發(fā)布。
當(dāng)然,Linus本人并不是一個(gè)“完美的版本控制服務(wù)”。1998年,知名程序員Larry McVoy通過Linux內(nèi)核郵件列表首次提出了BitKeeper的想法,他寫道:“很明顯,我們的領(lǐng)袖[Linus]目前有點(diǎn)超負(fù)荷,補(bǔ)丁可能會(huì)丟失。”
盡管如今看來,這種手動(dòng)的工作流程也未免太原始了,但在當(dāng)時(shí),Linus認(rèn)為這種工作流程比其他選擇(主要是CVS)更好。
Linus認(rèn)為CVS的核心問題在于其集中化的性質(zhì)。由于Linux開發(fā)人員有數(shù)百名之多,所以Linus認(rèn)為每個(gè)人都擁有自己獨(dú)立的代碼庫副本至關(guān)重要,因?yàn)橹挥羞@樣他們才能在自己的分支上開發(fā)。這不僅對(duì)線下的工作有幫助,而且對(duì)內(nèi)部管理也很有幫助。每位開發(fā)人員都可以自由地向自己的代碼庫提交任何代碼,而且他們有機(jī)會(huì)說服社區(qū)他們的變更是有價(jià)值的。這樣可以防止擁有提交權(quán)限的貢獻(xiàn)者成為唯一的代碼庫的守門人。
最終Linus選擇了商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費(fèi)使用這個(gè)版本控制系統(tǒng)。后來,Linus對(duì)BitKeeper表示了極大的贊賞,認(rèn)為BitKeeper改變了他的看法,而Git的靈感也來源于此。
安定團(tuán)結(jié)的大好局面在2005年被打破了,原因是Linux內(nèi)核開發(fā)人員Andrew Tridgell違反了許可,并實(shí)施了逆向工程。他能夠提取BitKeeper代碼而不需要遵循BitKeeper許可(這么干的其實(shí)也不只他一個(gè)),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯(cuò)!),于是BitMover公司怒了,要收回Linux社區(qū)的免費(fèi)使用權(quán)。
Linus充當(dāng)了三個(gè)月的調(diào)停,但最終未能達(dá)成和解。合作未能成功,這對(duì)Linux內(nèi)核的開發(fā)產(chǎn)生了重大影響。因?yàn)楸仨氄业揭惶坠ぞ邅泶鍮itKeeper的功能。2005年4月6日Linus通過郵件列表公布了雙方合作失敗的消息,但實(shí)際上他已經(jīng)展開了緊張的工作。就在2.6.12-rc2發(fā)布的三天前,他停止了Linux內(nèi)核的工作,并全力尋找BitKeeper的替代方案。
Linus花了兩周時(shí)間自己用C寫了一個(gè)分布式版本控制系統(tǒng),這就是Git!一個(gè)月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!即2005年4月17日,他發(fā)了一封郵件:“第一次真正的內(nèi)核Git合并!”牛B是怎么定義的呢?大家可以體會(huì)一下。
Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項(xiàng)目免費(fèi)提供Git存儲(chǔ),無數(shù)開源項(xiàng)目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。
歷史就是這么偶然,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒有免費(fèi)而超級(jí)好用的Git了。
Linus目前受聘于開放源代碼開發(fā)實(shí)驗(yàn)室(OSDL,Open Source Development Labs),全身心的開發(fā)Linux內(nèi)核。盡管這人看上去毫不起眼,比如Linus曾在他的自傳《樂者為王》(Just for Fun)中自嘲:“我是一個(gè)長(zhǎng)相丑陋的孩子,凡是見過我小時(shí)候照片的人,都會(huì)覺得我的相貌酷似河貍。再想象一下我不修邊幅的衣著,以及一個(gè)托瓦茲家族祖祖輩輩遺傳下來的大鼻子,這樣,在你腦海中我的模樣就形成了。”但這絲毫也影響不了林納斯對(duì)整個(gè)商業(yè)社會(huì)的巨大價(jià)值—Linux代表著網(wǎng)絡(luò)時(shí)代新形式的開放知識(shí)產(chǎn)權(quán)形態(tài),這將從根基上顛覆以Windows為代表的封閉式軟件產(chǎn)權(quán)的傳統(tǒng)商業(yè)模式。更重要的是,這樣的顛覆早已悄悄的出現(xiàn)在了商業(yè)社會(huì)的各個(gè)角落。