1024对话内核大神谢宝友
我看了CSDN的采訪,感覺(jué)比較官方,不知道是不是編輯的原因把一些內(nèi)容給隱藏了,所以我還是想完整的內(nèi)容放出來(lái)給大家看看,這些問(wèn)題,可能是很多后輩程序員非常關(guān)心的。
今天是1024節(jié),這個(gè)數(shù)字對(duì)于寫在電腦前寫代碼的我們是意義重大的,至于誰(shuí)發(fā)明了這個(gè)節(jié)日我不知道,但是我知道,這個(gè)數(shù)字的含義很特別。
所以在次條就推薦了一個(gè)內(nèi)核大會(huì),我建議喜歡技術(shù)的同學(xué)都去看看,看看前輩們對(duì)于內(nèi)核的理解,以及未來(lái)的發(fā)展方向。
就這些,祝大家今天開(kāi)心,bug無(wú)涯……
問(wèn):
分享一下您最近主要在忙的一些事情?
答:
目前,我就職于阿里集團(tuán)技術(shù)風(fēng)險(xiǎn)部,主要職責(zé)是負(fù)責(zé)阿里生產(chǎn)環(huán)境服務(wù)器穩(wěn)定性,特別是基礎(chǔ)軟件,例如Linux操作系統(tǒng)、中間件的穩(wěn)定性。同時(shí),也會(huì)協(xié)助業(yè)務(wù)方處理一些性能調(diào)優(yōu)的工作。在穩(wěn)定性工作中,沉淀了一款操作系統(tǒng)內(nèi)核診斷工具:diagnose-tools,這款工具已經(jīng)在今年云棲大會(huì)正式發(fā)布,并開(kāi)源到:https://github.com/alibaba/diagnose-tools。如果時(shí)間允許的話,我也會(huì)和同事/網(wǎng)友共同合作編寫一本書來(lái)介紹這個(gè)工具。
在工作之余,我也在過(guò)去一年中,利用休息時(shí)間完成了《自研操作系統(tǒng):DIM-SUM設(shè)計(jì)與實(shí)現(xiàn)》一書的編寫,該書已經(jīng)于今年7月正式出版。同時(shí),也和網(wǎng)友一起翻譯了《嵌入式Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)》,目前已經(jīng)完成初稿,預(yù)計(jì)明年初可以正式出版。
問(wèn):
您在大學(xué)時(shí)期所學(xué)的稅收專業(yè)和操作系統(tǒng),可謂是兩個(gè)完全平行的領(lǐng)域,在什么樣的契機(jī)下,您開(kāi)始了操作系統(tǒng)研究之路?
答:
這完全是一個(gè)意外。
1992年,進(jìn)入四川省稅務(wù)學(xué)校以后,我從圖書館借閱了不少數(shù)學(xué)、物理、化學(xué)、文學(xué)方面的書籍。最終發(fā)現(xiàn)自己還是更喜歡理科一些,那時(shí)也開(kāi)始關(guān)注計(jì)算機(jī)學(xué)科。
后來(lái),發(fā)現(xiàn)自己有點(diǎn)喜歡上了同桌那位漂亮的女生,心里也明白她其實(shí)也有那么一點(diǎn)喜歡我。不過(guò)在90年代,考慮上稅務(wù)學(xué)校就意味著進(jìn)入稅務(wù)局工作,其難度和考上清華大學(xué)是一樣的。工作后,兩個(gè)人必然會(huì)在不同的稅務(wù)局工作,很難走到一起。終于有一天,我們約定:必須有一個(gè)人從稅務(wù)系統(tǒng)離職。當(dāng)然,這個(gè)苦差事就只能留給我了:-)
再后來(lái),我慢慢將稅務(wù)專業(yè)學(xué)習(xí)變成了副業(yè),將重心放到計(jì)算機(jī)學(xué)科了。工作中一直想在計(jì)算機(jī)方面做一點(diǎn)有挑戰(zhàn)性的事情,因此進(jìn)入了操作系統(tǒng)領(lǐng)域。
故事的結(jié)局還是比較圓滿的:兩個(gè)人三十年來(lái),雖有風(fēng)雨,但是更多的是彩虹。
問(wèn):
操作系統(tǒng)這條路,對(duì)您而言,已經(jīng)走了二十年的時(shí)間,在過(guò)去 20 年間,操作系統(tǒng)領(lǐng)域整體發(fā)生了怎樣的變化?在您看來(lái),目前國(guó)產(chǎn)操作系統(tǒng)行至何處?
答:
在過(guò)去20年內(nèi),操作系統(tǒng)領(lǐng)域有不少變化,但也有一些根本的東西未曾變化。
其變化主要在于:
1、linux異軍突起
2、Android成為手機(jī)操作系統(tǒng)的領(lǐng)先者
3、物聯(lián)網(wǎng)操作系統(tǒng)熱度提升
但是,實(shí)事求是的說(shuō),有一個(gè)根本的不變之處在于:我國(guó)仍然處于操作系統(tǒng)研發(fā)領(lǐng)域的落后狀態(tài)。40年來(lái),不少仁人志土投入到操作系統(tǒng)領(lǐng)域,政府和企業(yè)也投入不菲。現(xiàn)狀則可以簡(jiǎn)單的總結(jié)為:道路是曲折的,前途則未見(jiàn)光明。
這是由于操作系統(tǒng)研發(fā)難度決定的。與工業(yè)制造不同,操作系統(tǒng)完全不能靠增加人手的方法,通過(guò)大干快上的方式,寄希望于突然蹦出一個(gè)完美的操作系統(tǒng)。而是要靠長(zhǎng)期的積累,以一種“板凳一坐十年冷”的心態(tài)潛心研究才能出成果。
當(dāng)然,除了美國(guó)外,確實(shí)也沒(méi)有其他某個(gè)國(guó)家研發(fā)出真正自研的操作系統(tǒng)。真可謂:操作系統(tǒng)難,難于上青天!
問(wèn):
為什么會(huì)想到要自研一款操作系統(tǒng)?DIM-SUM 操作系統(tǒng)旨在幫助業(yè)界或開(kāi)發(fā)者解決什么樣的痛點(diǎn)難題?
答:
最初,我只是想在計(jì)算機(jī)領(lǐng)域找一件有挑戰(zhàn)性的事情。20 ? ?多年前,大家都說(shuō)中國(guó)人不可能搞得出操作系統(tǒng),因此覺(jué)得這件事情還有那么一點(diǎn)挑戰(zhàn)性,因此也就想研究一下這方面的東西。
現(xiàn)在看來(lái),國(guó)內(nèi)確實(shí)也需要自研操作系統(tǒng)。這個(gè)領(lǐng)域的痛點(diǎn)有:
1、Linux操作系統(tǒng)領(lǐng)域人才匱乏。作為在Linux操作系統(tǒng)穩(wěn)定性有十多年一線工作經(jīng)驗(yàn)的老兵,我深知業(yè)界的痛點(diǎn)。遇到Linux的疑難故障,一般是到開(kāi)源社區(qū)高版本內(nèi)核中搜索補(bǔ)丁,看看社區(qū)是否已經(jīng)解決。如果遇到開(kāi)源社區(qū)也沒(méi)有解決的故障,那么一般是考慮規(guī)避措施。真正能夠?qū)inux源代碼分析透徹,并能給出完美解決方案的人才,實(shí)屬鳳毛麟角。從另一個(gè)角度來(lái)看,國(guó)內(nèi)還不能深入到Linux內(nèi)核社區(qū),獨(dú)立研發(fā)Linux核心模塊。假如某一天,Linux社區(qū)的維護(hù)人員退休了,我們是否還能游刃有余的將Linux維護(hù)好。這絕非危言聳聽(tīng),而是一個(gè)現(xiàn)實(shí)緊迫性的問(wèn)題。Linux社區(qū)的領(lǐng)袖人物也在呼吁重視人才斷層的問(wèn)題。
2、Linux操作系統(tǒng)用于核心關(guān)鍵領(lǐng)域的安全性問(wèn)題。在大數(shù)據(jù)時(shí)代,任何普通個(gè)人的信息隱私都不再只是個(gè)體問(wèn)題,這會(huì)影響到整個(gè)社會(huì)的安全。同時(shí),系統(tǒng)中存在的CVE安全漏洞也不少。我曾經(jīng)在工作中遇到一個(gè)安全漏洞,這個(gè)漏洞存在于Linux網(wǎng)絡(luò)協(xié)議棧中,在多線程中訪問(wèn)同一個(gè)Socket,并且Socket啟用了IP選項(xiàng)的時(shí)候可能觸發(fā)。最令人擔(dān)心的是,這樣的安全漏洞在Linux操作系統(tǒng)中存在了20年,竟然沒(méi)有被全世界的研發(fā)人員和安全專家發(fā)現(xiàn)!
3、Linux操作系統(tǒng)從開(kāi)放走向封閉的可能性是存在的。10年前,我就認(rèn)為Android會(huì)走向封閉,或者說(shuō)限制我們的使用。這在當(dāng)時(shí)被認(rèn)為是無(wú)稽之談,然而今天的現(xiàn)實(shí)是:由于國(guó)內(nèi)在Android上面投入過(guò)多的資源,已經(jīng)形成了強(qiáng)大的市場(chǎng)態(tài)勢(shì)。而國(guó)內(nèi)著名的手機(jī)廠商已經(jīng)因此受到市場(chǎng)限制。同樣的,10年以后,Linux也有可能走向封閉。按照今天的做法,10年后的情況不容樂(lè)觀。
因此,從未雨綢繆的角度來(lái)說(shuō),我們需要開(kāi)始搞真正自研的操作系統(tǒng),而不能搞偽創(chuàng)新、邊緣優(yōu)化、單點(diǎn)突破。從本質(zhì)上來(lái)說(shuō),這些偽創(chuàng)新、邊緣優(yōu)化、單點(diǎn)突破是一種自欺欺人的做法。
問(wèn):
DIM-SUM 操作系統(tǒng)將主要覆蓋哪些應(yīng)用領(lǐng)域或場(chǎng)景?
答:
這個(gè)問(wèn)題實(shí)際上已經(jīng)在《自研操作系統(tǒng):DIM-SUM設(shè)計(jì)與實(shí)現(xiàn)》作者序以及正文中有所描述。
概括的說(shuō),DIM-SUM操作系統(tǒng)希望實(shí)現(xiàn)一款類似于Linux的操作系統(tǒng)。我在去年OS2ATC大會(huì)上也曾經(jīng)做過(guò)一次《做中國(guó)的Linux,做中國(guó)的Linus》的演講。也就是說(shuō),DIM-SUM可能適用的領(lǐng)域包括:服務(wù)器操作系統(tǒng)、個(gè)人電腦/桌面操作系統(tǒng)、嵌入式操作系統(tǒng)(如工業(yè)控制)。
問(wèn):
開(kāi)源對(duì)于 DIM-SUM 操作系統(tǒng)的發(fā)展起到了什么樣的作用?
答:
非常感謝開(kāi)源軟件運(yùn)動(dòng),特別是感謝Linux開(kāi)源社區(qū)。
以練習(xí)毛筆書法為例。真正的書家都明白一個(gè)簡(jiǎn)單的道理:要練習(xí)好毛筆字,首先是練習(xí)一些握筆姿勢(shì)、基本筆畫方面的基本功,然后是用薄紙蒙在原作上面摹寫,其次是照著原作臨寫,最后才是體會(huì)原作的整體布局、形意、結(jié)構(gòu)、筆勢(shì),并加以創(chuàng)新,自成一派。
可以毫不夸張的說(shuō),開(kāi)源軟件運(yùn)動(dòng)給我們提供了很好的臨摹范本,可以大大降低自研操作系統(tǒng)的難度,提升自研操作系統(tǒng)的穩(wěn)定性和性能。
問(wèn):
DIM-SUM 操作系統(tǒng)目前進(jìn)度如何?針對(duì)其下一步的研發(fā)或落地發(fā)展,有著什么樣的愿景或規(guī)劃?
答:
由于忙于工作和出版書籍,我今年很少為DIM-SUM開(kāi)發(fā)新功能。有十來(lái)個(gè)網(wǎng)友提交了一些邊緣補(bǔ)丁。
下個(gè)月完成《嵌入式Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)》的審稿工作后,我會(huì)抽出業(yè)余時(shí)間開(kāi)發(fā)一些新功能,重點(diǎn)是支持用戶態(tài)應(yīng)用程序。當(dāng)然,這個(gè)事情應(yīng)該不會(huì)太順利,畢竟在房?jī)r(jià)重負(fù)之下,大家還是需要養(yǎng)家糊口。
我不太希望將DIM-SUM做成某一家大公司私有的操作系統(tǒng),也不希望將它作為個(gè)人謀私的工具。
希望它能為社會(huì)真正做出一些貢獻(xiàn)。最理想的方式,是成立一個(gè)獨(dú)立的開(kāi)源基金會(huì),得到政府/業(yè)界的支持,集中10位國(guó)內(nèi)頂尖高手,花10年時(shí)間進(jìn)行研發(fā)。預(yù)估在這樣的模式下,每年的投入不會(huì)超過(guò)1000萬(wàn)元,10年總投資不超過(guò)1億元人民幣。在這方面有一些具體的想法,也在一些閉門會(huì)議中有一些闡述,以后我會(huì)專文描述這些想法。
退一步講,即使沒(méi)有獨(dú)立的開(kāi)源基金會(huì),我也會(huì)利用業(yè)余時(shí)間開(kāi)發(fā)這個(gè)操作系統(tǒng)。
幾乎可以確定的說(shuō),不會(huì)加入某個(gè)公司來(lái)發(fā)展這個(gè)操作系統(tǒng)。
問(wèn):
據(jù)悉,您此前在內(nèi)核代碼注釋中耕耘多年,這為自研 DIM-SUM 操作系統(tǒng)帶來(lái)了哪些幫助?
答:
還是以練習(xí)毛筆書法來(lái)做比喻:以前對(duì)內(nèi)核代碼的注釋工作,更象是第一步工作,也就是練習(xí)一些握筆姿勢(shì)、基本筆畫方面的基本功。
順便也自嘲一下,目前的DIM-SUM僅僅是對(duì)Linux操作系統(tǒng)的臨摹,離真正成熟的自研操作系統(tǒng)還有很長(zhǎng)的距離。不過(guò)古語(yǔ)說(shuō):千里之行,積于跬步。總有一天,我們能行于千里之外!
問(wèn):
2018年DIM-SUM第一個(gè)版本:HOT-POT操作系統(tǒng)已誕生,在此過(guò)程中,令您印象最為深刻的挑戰(zhàn)是什么?又是如何攻克的?
答:
這個(gè)版本還很不成熟,我個(gè)人對(duì)此并不滿意。然而,即使是這樣一個(gè)不太成熟的版本,也會(huì)遇到挑戰(zhàn)。
最大的挑戰(zhàn)來(lái)自于文件系統(tǒng),包括lext3文件系統(tǒng)、虛擬文件系統(tǒng)、設(shè)備文件系統(tǒng)、內(nèi)存文件系統(tǒng)、塊設(shè)備子模塊、塊設(shè)備驅(qū)動(dòng)。這也是Linux遇到的挑戰(zhàn)。記得linus曾經(jīng)說(shuō)過(guò),大牛們?cè)趌inux中實(shí)現(xiàn)文件系統(tǒng)的時(shí)候,也有希望放棄的時(shí)刻。
得益于對(duì)linux內(nèi)核的詳細(xì)分析和注釋,我在開(kāi)發(fā)DIM-SUM的時(shí)候,想要退縮的心情應(yīng)該沒(méi)有l(wèi)inus那么強(qiáng)烈,畢竟前輩們已經(jīng)給我們打下了很好的基礎(chǔ),也給了我們成功的信心。
問(wèn):
在你技術(shù)成長(zhǎng)過(guò)程中,是否有著對(duì)你影響較大的某位人、某些書、某些網(wǎng)站/文章或其他,為什么?
答:
在20多年的職業(yè)生涯中,我遇到兩位技術(shù)方面的牛人,也是工作中的合作伙伴:
1、易語(yǔ)言的創(chuàng)始人吳濤。他也被評(píng)為“影響中國(guó)軟件開(kāi)發(fā)的20人”之一。
2、阿里巴巴傳奇程序員,阿里合伙人多隆大神。他的技術(shù)領(lǐng)悟力和敏感度非常高。
-- 對(duì)我影響最大的兩本書是:
1、陳莉君老師翻譯的《深入理解Linux內(nèi)核》。這本書在Linux內(nèi)核入門階段對(duì)我影響很大。
2、Paul E. Mckenney的《Is Parallel Programming Hard, And, If So, What Can You Do About It?》,這本書已經(jīng)由我和魯陽(yáng)翻譯為《深入理解并行編程》。這本書很難,但是對(duì)研發(fā)操作系統(tǒng)至關(guān)重要。也許,很難找到10個(gè)真正讀懂這本書的人呢?
問(wèn):
對(duì)于想要跨行到 IT 的從業(yè)者,基于操作系統(tǒng)入門方面,可否分享一下您的經(jīng)驗(yàn)?
答:
6年前,在CSDN的專訪(https://www.csdn.net/article/2014-04-08/2819178-Interview-about-linux-kernel-expert-Xiebaoyou)中,我也談到這個(gè)問(wèn)題。現(xiàn)在想來(lái),當(dāng)年的回答仍然是有效的。推薦的幾本書仍然值得閱讀,即使這些書的內(nèi)核版本老一點(diǎn)也沒(méi)有關(guān)系。如果說(shuō)需要補(bǔ)充一點(diǎn)東西的話,我覺(jué)得有這兩點(diǎn)感悟:
1、閱讀的時(shí)候,心無(wú)旁騖很重要。很多著名的將領(lǐng)都有做放牛娃的經(jīng)歷,這很容易進(jìn)入一種無(wú)聊的狀態(tài),當(dāng)然也很容易進(jìn)入一種物我兩忘的專注狀態(tài)。這也有點(diǎn)象禪宗所說(shuō)的入定狀態(tài)。據(jù)說(shuō)喬布斯很喜歡這樣的狀態(tài),它能使人理解到其他人所不能理解到的東西,使難題迎刃而解,也許還能使人領(lǐng)悟到生命的價(jià)值,改變自己的人生目標(biāo)。
2、聰明人下笨功夫,只有傻瓜才耍小聰明。在操作系統(tǒng)技術(shù)學(xué)習(xí)方面,尤其是這樣。
問(wèn):
您在一線寫代碼已多年,面向程序員界的“35 歲危機(jī)”問(wèn)題, 您怎么看?對(duì)于一線的程序員而言,有人說(shuō),要緊隨技術(shù)的潮流,實(shí)時(shí)對(duì)自身技能不斷更迭,才能不落后;也有人說(shuō),打下堅(jiān)固的技術(shù)基礎(chǔ)才是王道,面對(duì)日新月異且層出不窮的前沿技術(shù),你對(duì)時(shí)下的開(kāi)發(fā)者有著什么樣的建議?
答:
保持不斷學(xué)習(xí)的能力,就不會(huì)面臨“35歲危機(jī)”。
6年前的專訪中,也談到了這個(gè)問(wèn)題,那個(gè)時(shí)候我已經(jīng)超過(guò)35歲了,沒(méi)有感受到什么危機(jī),因此在專訪中說(shuō)“也許,我們可以把這些35歲的故事當(dāng)成謠言!”
以我自己為例吧,35歲的時(shí)候收入還不是特別高,實(shí)際上35歲以后不但沒(méi)有遇到危機(jī),收入反而上漲得很厲害。也許35歲的謠言是大公司HR說(shuō)出來(lái)嚇大家的。當(dāng)然,這也并非壞事,我想HR的目的是為了保持組織的活力,避免那些職場(chǎng)老油條上班摸魚。對(duì)于那些持續(xù)學(xué)習(xí)的員工,保持激情的員工,不偷懶的員工,哪個(gè)HR會(huì)舍得對(duì)你動(dòng)手呢?
我已經(jīng)超過(guò)40歲了,在收入迅猛增長(zhǎng)的同時(shí),也有公司以翻倍的收入來(lái)挖一挖,我也比較的有惰性,不愿意為2倍收入而跳槽呢:-)
大家說(shuō),35歲危機(jī)這個(gè)事情,是不是一個(gè)謠言?該不該轉(zhuǎn)它500次?
問(wèn):
發(fā)展國(guó)產(chǎn)操作系統(tǒng),目前最為嚴(yán)峻的挑戰(zhàn)或亟需解決的問(wèn)題是什么?如果要推動(dòng)中國(guó)開(kāi)源操作系統(tǒng)或者開(kāi)源生態(tài)發(fā)展的話,您最希望我們大家一起,推動(dòng)什么樣的共識(shí)和行動(dòng)?
答:
最嚴(yán)峻的挑戰(zhàn)莫過(guò)于:
1、能研發(fā)國(guó)產(chǎn)操作系統(tǒng)的人才很少。這里的人才不是指Linux開(kāi)發(fā)人員,而是真正能夠設(shè)計(jì)操作系統(tǒng),實(shí)現(xiàn)操作系統(tǒng)核心模塊開(kāi)發(fā)的人才。
2、自研操作系統(tǒng)投入大,失敗風(fēng)險(xiǎn)高。不論是研究機(jī)構(gòu)還是企業(yè),都不太容易下決心去做這樣的事情。
3、有免費(fèi)開(kāi)源的Linux可用,缺少自研操作系統(tǒng)的動(dòng)力。
我最希望推動(dòng)的共識(shí)和行動(dòng)是:
集中力量,研發(fā)真正自研的操作系統(tǒng)。在Linux被限制的情況下,仍然有替代方案。
問(wèn):
最后,我們來(lái)個(gè)接龍,這次 1024 程序員節(jié),有許多操作系統(tǒng)的老朋友共赴長(zhǎng)沙,你最想問(wèn)哪位老朋友什么問(wèn)題?
答:
由于備戰(zhàn)雙十一的原因,很遺憾不能現(xiàn)場(chǎng)參加1024程序員節(jié)。希望向陳老師問(wèn)個(gè)問(wèn)題:能做到退而不休嗎?
#推薦閱讀:
? ??專輯|Linux文章匯總
? ??專輯|程序人生
? ??專輯|C語(yǔ)言
嵌入式Linux
微信掃描二維碼,關(guān)注我的公眾號(hào)?
總結(jié)
以上是生活随笔為你收集整理的1024对话内核大神谢宝友的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ARM指令集之跳转指令
- 下一篇: mysql sql语法分析验证优化工具