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