校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > 淺談25年Linux內(nèi)核開發(fā)經(jīng)歷總結(jié)出來(lái)的九條經(jīng)驗(yàn)

淺談25年Linux內(nèi)核開發(fā)經(jīng)歷總結(jié)出來(lái)的九條經(jīng)驗(yàn)

熱門標(biāo)簽:河南營(yíng)銷智能外呼系統(tǒng)價(jià)格多少 電銷機(jī)器人賺錢思路 河南400電話如何辦理 怎么坐地圖標(biāo)注 疏附縣地圖標(biāo)注 中山ai電銷機(jī)器人招商 地圖標(biāo)注行業(yè)發(fā)展如何 寧波電信400電話辦理 太原地圖標(biāo)注推廣員

 

原文:9 lessons from 25 years of Linux kernel development
作者:Greg Kroah-Hartman
翻譯:雁驚寒

Linux內(nèi)核社區(qū)在2016年慶祝了成立二十五周年紀(jì)念,許多人來(lái)問(wèn)我們這個(gè)項(xiàng)目經(jīng)久不衰和成功的秘訣。我一般會(huì)先笑笑,然后開玩笑地說(shuō),我真的不知道已經(jīng)經(jīng)歷了25年。這個(gè)項(xiàng)目一直都面臨著分歧和挑戰(zhàn)。但是,嚴(yán)肅地說(shuō),我們能夠做到這一點(diǎn)與社區(qū)在反思和改變上的能力有著很大的關(guān)系。

大約16年前,大多數(shù)內(nèi)核開發(fā)人員互相之間從來(lái)沒(méi)有見(jiàn)過(guò)面,我們只是通過(guò)電子郵件進(jìn)行聯(lián)系,所以Ted T’so提出了內(nèi)核峰會(huì)的想法?,F(xiàn)在,內(nèi)核開發(fā)人員每年都會(huì)聚在一起解決技術(shù)問(wèn)題,更重要的是,回顧一下在過(guò)去的一年里我們做了哪些對(duì)的事情,又犯了哪些錯(cuò)誤。開發(fā)人員可以開誠(chéng)布公地討論相互之間如何進(jìn)行交流以及開發(fā)流程如何運(yùn)作。然后,我們會(huì)改進(jìn)流程,我們會(huì)開發(fā)像Git這樣的新的工具,不斷地改變我們的合作方式。

雖然我們現(xiàn)在尚未完全認(rèn)識(shí)清楚Linux內(nèi)核成功的所有關(guān)鍵原因,但目前還是有一些經(jīng)驗(yàn)值得拿出來(lái)分享的。

1. 更短的發(fā)布周期很重要

在Linux項(xiàng)目的早期階段,內(nèi)核的每個(gè)主版本需要好幾年發(fā)布一次,這意味著用戶需要等待很長(zhǎng)時(shí)間才能享受到新功能,這對(duì)于用戶和經(jīng)銷商來(lái)說(shuō)是相當(dāng)令人沮喪的。而且,更重要的是,這么長(zhǎng)的周期意味著需要一下子集成大量的代碼。把這么多代碼合入一個(gè)版本里,壓力也是很大的。

更短的周期可以解決所有這些問(wèn)題。新代碼能夠在更短時(shí)間內(nèi)合入到穩(wěn)定版中。將新代碼集成到幾乎穩(wěn)定不變的基線版本上,使得能夠在對(duì)系統(tǒng)產(chǎn)生極小影響的情況下引入根本性的變化。開發(fā)人員知道,如果他們錯(cuò)過(guò)了這個(gè)發(fā)布周期,兩個(gè)月內(nèi)還會(huì)有另外一個(gè),所以他們很少會(huì)過(guò)早地合入代碼。

2. 流程的擴(kuò)展需要一個(gè)分布式的分層開發(fā)模型

很久以前,所有的變更需求都會(huì)直接轉(zhuǎn)到Linus Torvalds手中,但這很快就被證明是不合適的,因?yàn)闆](méi)有哪個(gè)人可以全面掌握像操作系統(tǒng)內(nèi)核這么復(fù)雜的項(xiàng)目。很早的時(shí)候,內(nèi)核不同領(lǐng)域的維護(hù)者們就提出了一個(gè)想法,就是把內(nèi)核的其中一部分分配給熟悉該領(lǐng)域的人。例如,網(wǎng)絡(luò)、無(wú)線、像PCI或USB這樣的驅(qū)動(dòng)程序子系統(tǒng)、或者像ext2或vfat這樣的文件系統(tǒng)。然后再擴(kuò)展到由數(shù)百名維護(hù)人員負(fù)責(zé)代碼審查和整合,從而使得能夠在不犧牲產(chǎn)品質(zhì)量的情況下,在每個(gè)發(fā)布的版本中都包含成千上萬(wàn)的變更。

3. 工具的重要性

內(nèi)核開發(fā)一直在試圖擴(kuò)大開發(fā)人員的范圍,直到BitKeeper這款源代碼管理系統(tǒng)出現(xiàn),幾乎在一夜之間社區(qū)的做法發(fā)生了改變,而Git的出現(xiàn)帶來(lái)了又一次的飛躍。如果沒(méi)有合適的工具,像內(nèi)核這樣的項(xiàng)目將無(wú)法正常運(yùn)轉(zhuǎn),從而會(huì)被自身的重量壓垮。

4. 強(qiáng)大的輿論導(dǎo)向模式很重要

一般來(lái)說(shuō),如果一個(gè)開發(fā)大咖拒絕了某個(gè)提交上來(lái)的變更,那么這個(gè)變更將不會(huì)被合并進(jìn)去。如果開發(fā)人員發(fā)現(xiàn)自己在幾個(gè)月前提交的代碼在郵件列表中被拒絕了,那是非常令人沮喪的。但這也保證了內(nèi)核開發(fā)可以適應(yīng)大量的用戶和問(wèn)題。沒(méi)有哪個(gè)用戶社區(qū)能夠以犧牲其他群組為代價(jià)而進(jìn)行變更。我們有一個(gè)可以支持從微型系統(tǒng)到超級(jí)計(jì)算機(jī)的代碼庫(kù),它可以應(yīng)用在很多場(chǎng)景上。

5. 強(qiáng)大的“無(wú)回歸”規(guī)則也很重要

大約在十多年前,內(nèi)核開發(fā)社區(qū)承諾,如果給定的內(nèi)核在特定的環(huán)境中能正常運(yùn)行,那么所有后續(xù)的內(nèi)核版本也能在這個(gè)環(huán)境中正常運(yùn)行。如果社區(qū)發(fā)現(xiàn)某個(gè)變更導(dǎo)致了其他問(wèn)題的出現(xiàn),他們會(huì)很快地解決這個(gè)問(wèn)題。該規(guī)則承諾用戶:系統(tǒng)升級(jí)不會(huì)破壞他們?cè)瓉?lái)的系統(tǒng)。 因而,維護(hù)者很愿意在開發(fā)新功能的時(shí)候延續(xù)這個(gè)內(nèi)核。

6. 公司參與到開發(fā)流程中來(lái)是至關(guān)重要的,但沒(méi)有哪家公司能夠主導(dǎo)內(nèi)核開發(fā)

自2014年12月版本號(hào)為3.18的內(nèi)核發(fā)布以來(lái),有將近500家公司的大約5062名個(gè)人開發(fā)者為L(zhǎng)inux內(nèi)核做出了貢獻(xiàn)。大多數(shù)開發(fā)人員因?yàn)樗麄兊墓ぷ鞫玫搅藞?bào)酬,而他們所做的變更是為他們所在的公司服務(wù)的。但是,盡管任何一家公司都可以根據(jù)具體需求改進(jìn)內(nèi)核,但是沒(méi)有哪家公司可以主導(dǎo)開發(fā)去做傷害別人或者限制內(nèi)核功能的事情。

7. 項(xiàng)目中不應(yīng)有內(nèi)部界限

內(nèi)核開發(fā)人員必須專注于內(nèi)核的特定部分,但只要修改是合理的,那么任何開發(fā)人員都可以對(duì)內(nèi)核的任何部分進(jìn)行修改。從而,問(wèn)題在產(chǎn)生的時(shí)候就會(huì)被解決掉,而不是規(guī)避掉。開發(fā)人員對(duì)整個(gè)內(nèi)核有很多各種各樣的看法,即便是最頑固的維護(hù)者也不能無(wú)限期地?cái)R置任何指定子系統(tǒng)中所必需的改進(jìn)。

8. 重要的功能是從一點(diǎn)一滴開始的

原來(lái)的0.01版內(nèi)核只有10000行代碼; 而現(xiàn)在每?jī)商煸黾?0000多行。開發(fā)人員現(xiàn)在添加的一些基本的、微小的功能未來(lái)可能會(huì)發(fā)展成為重要的子系統(tǒng)。

9. 綜上所述,25年的內(nèi)核發(fā)展歷史表明,持續(xù)地合作可以帶來(lái)共同的資源,這不是單單某個(gè)小組能夠開發(fā)出來(lái)的

自2005年以來(lái),來(lái)自1300多家公司的約14000名個(gè)人開發(fā)人員對(duì)內(nèi)核做出了貢獻(xiàn)。因此,Linux內(nèi)核在很多互相之間有激烈競(jìng)爭(zhēng)關(guān)系的公司的努力下,發(fā)展成為一個(gè)規(guī)模龐大的公共資源。

以上就是腳本之家分享給大家的關(guān)于淺談25年Linux內(nèi)核開發(fā)經(jīng)歷總結(jié)出來(lái)的九條經(jīng)驗(yàn)的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

 

標(biāo)簽:河池 滄州 河北 淘寶邀評(píng) 樂(lè)山 榆林 保定 山南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談25年Linux內(nèi)核開發(fā)經(jīng)歷總結(jié)出來(lái)的九條經(jīng)驗(yàn)》,本文關(guān)鍵詞  淺談,25年,Linux,內(nèi)核,開發(fā),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談25年Linux內(nèi)核開發(fā)經(jīng)歷總結(jié)出來(lái)的九條經(jīng)驗(yàn)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于淺談25年Linux內(nèi)核開發(fā)經(jīng)歷總結(jié)出來(lái)的九條經(jīng)驗(yàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 左贡县| 三明市| 弥渡县| 丹棱县| 隆尧县| 于都县| 塘沽区| 卢龙县| 通辽市| 山丹县| 济宁市| 米泉市| 平武县| 民丰县| 澄城县| 班戈县| 汝阳县| 临西县| 汤原县| 滦南县| 平顶山市| 顺平县| 马鞍山市| 玛曲县| 昌吉市| 无为县| 高台县| 珠海市| 沈阳市| 淄博市| 南昌县| 许昌县| 平原县| 定西市| 德化县| 丰宁| 酉阳| 长武县| 望谟县| 陵水| 秀山|