作者 | 鄭麗媛
責編 | 屠敏
出品 | CSDN(ID:CSDNnews)

從國外操作系統的長期壟斷到中國自主研發操作系統數十年的起落浮沉,技術自主創新獨立已成爲國產基礎軟件的主要突破口。近幾年間,隨着物聯網時代的到來,以 Linux 爲主要架構的操作系統乘開源東風,迎來了“爆發”期。

然而在國際以科技爲基礎的競爭愈發激烈的當下,開源的 Android 已受到一定影響,而下一步,正如同 DIM-SUM 操作系統創始人謝寶友所擔憂的,「如果某一天,我們不能免費使用基於 Linux 的這些開源操作系統,我們是否有替代操作系統可用?」

帶着種種思考,CSDN 「人物誌」欄目與DIM-SUM 操作系統創始人、《自研操作系統:DIM-SUM設計與實現》作者謝寶友進行了獨家對話,探尋類似於 Linux 的 DIM-SUM 操作系統自研之路,論“做中國的 Linux,做中國的 Linus”的機與遇。

重要觀點速覽:

  • 操作系統的研發要靠長期的積累,以一種“板凳一坐十年冷”的心態潛心研究才能出成果。

  • 從未雨綢繆的角度來說,我們需要開始搞真正自研的操作系統,而不能自欺欺人地搞僞創新、邊緣優化、單點突破。

  • 開源軟件運動給我們提供了很好的臨摹範本,可以大大降低自研操作系統的難度,提升自研操作系統的穩定性和性能。

  • 我不太希望將 DIM-SUM 做成某一家大公司的私有操作系統,也不希望將它作爲個人謀私的工具。我希望它能爲社會真正做出一些貢獻。

  • 目前的 DIM-SUM 僅僅是對 Linux 操作系統的臨摹,離真正成熟的自研操作系統還有很長的距離。

  • 保持不斷學習的能力,就不會面臨“35 歲危機”。

  • 我最希望推動的共識和行動是:集中力量,研發真正自研的操作系統。在 Linux 被限制的情況下,仍然有替代方案。

以下爲 CSDN 與謝寶友對話完整版CSDN 在不改變原意基礎上,稍作編輯):

始於興趣,久於愛情

CSDN:您最近主要在忙哪些事情?

謝寶友:目前,我就職於阿里集團技術風險部,主要職責是負責阿里生產環境服務器穩定性,特別是基礎軟件。在穩定性工作中,沉澱了一款操作系統內核診斷工具:diagnose-tools,這款工具已經在今年雲棲大會正式發佈,並開源到:https://github.com/alibaba/diagnose-tools。如果時間允許,未來我會和同事/網友共同合作編寫一本書來介紹這個工具。

在工作之餘,我也在過去一年中,利用休息時間完成了《自研操作系統:DIM-SUM設計與實現》一書的編寫,該書已經於今年 7 月正式出版。同時,也和網友共同翻譯了《嵌入式Linux設備驅動開發》。

CSDN:您曾是稅收專業出身,爲何會走上操作系統研發之路?

謝寶友這完全是一個意外。

1992 年,進入四川省稅務學校後,我在圖書館借閱了不少數學、物理、化學、文學方面的書籍,發現還是更喜歡理科一些,也開始了對計算機學科的關注。

在這期間,我與同是稅務專業的愛人相識相知。不過,考慮到工作後更爲長遠的發展,最終我選擇了離開稅務系統,並將重心逐漸轉移到計算機學科。經過一段時間的工作,我一直想要在計算機方面做一些有挑戰性的事情,因此進入了操作系統領域。

故事的結局還是圓滿的:我與愛人三十年來,雖有風雨,但是更多的是彩虹。

操作系統難,難於上青天!

CSDN:操作系統這條路,對您而言,已經走了二十年的時間,在過去 20 年間,操作系統領域整體發生了怎樣的變化?

謝寶友:在過去20年內,操作系統領域有不少變化,但也有一些根本的東西未曾變化。變化主要在於:

  • Linux異軍突起;

  • Android 成爲手機操作系統的領先者;

  • 物聯網操作系統熱度提升。

但是,實事求是地說,有一個根本的不變之處在於:我國仍然處於操作系統研發領域的早期。40 年來,不少仁人志土投入到操作系統領域,但現狀可以簡單的總結爲:道路是曲折的,前途光明但任重而道遠。

這是由於操作系統研發難度決定的。與工業製造不同,操作系統完全不能靠增加人手的方法,通過大幹快上的方式,寄希望於突然出現一個完美的操作系統。而是要靠長期的積累,以一種“板凳一坐十年冷”的心態潛心研究才能出成果。

目前,除了美國外,確實也沒有其他某個國家研發出真正自研的操作系統。真可謂:操作系統難,難於上青天

CSDN:爲什麼會想到要自研一款操作系統?

謝寶友:最初,我只是想在計算機領域找一件有挑戰性的事情。20 多年前,大家都說中國人不可能做出操作系統,我覺得這富有挑戰性,因此開始了研究。

現在看來,國內確實也需要自研操作系統。這個領域的痛點有:

  1. Linux 操作系統領域人才匱乏。真正能夠將 Linux 源代碼分析透徹,並能就 Linux 的疑難故障給出完美解決方案的人才,實屬鳳毛麟角。從另一個角度來看,國內還不能深入到 Linux 內核社區,獨立研發 Linux 核心模塊。

  2. Linux 操作系統用於核心關鍵領域的安全性問題。在大數據時代,任何普通個人的信息隱私都不再只是個體問題,這會影響到整個社會的安全。同時,系統中存在的 CVE 安全漏洞也不少。有些 CVE 安全漏洞在 Linux 中存在了 20 年,竟然沒有被全球開發者和安全專家發現。

  3. Linux 操作系統從開放走向封閉的可能性是存在的。10年前,我認爲 Android 會走向封閉的言論在當時被認爲是無稽之談,而現在卻噩夢成真。同樣,10 年以後,Linux 也有可能走向封閉。因此,從未雨綢繆的角度來說,我們需要開始搞真正自研的操作系統,而不能自欺欺人地搞僞創新、邊緣優化、單點突破。

CSDN:在此基礎上,發展國產操作系統,目前最爲嚴峻的挑戰或亟需解決的問題是什麼?如果要推動中國開源操作系統或者開源生態發展的話,您最希望我們一起推動什麼樣的共識和行動?

謝寶友:基於以上,我認爲最嚴峻的挑戰莫過於以下三點:

  1. 能研發國產操作系統的人才很少。這裏的人才不是指 Linux 開發者,而是真正能夠設計操作系統,實現操作系統核心模塊開發的人才。

  2. 自研操作系統投入大,失敗風險高。不論是研究機構還是企業,都不太容易下決心去做這樣的事情。

  3. 有免費開源的 Linux 可用,缺少自研操作系統的動力

我最希望推動的共識和行動是:集中力量,研發真正自研的操作系統。在某一天 Linux 被限制的情況下,仍然有替代方案。

DIM-SUM 操作系統不會私有,將屬於社會

CSDN:DIM-SUM 是什麼樣的操作系統?

謝寶友:概括地說,DIM-SUM 操作系統希望實現一款類似於 Linux 的操作系統。我在去年 OS2ATC 大會(開源操作系統年度技術會議)上也曾經做過一次《做中國的 Linux,做中國的 Linus》的演講。也就是說,DIM-SUM 可能適用的領域包括:服務器操作系統、個人電腦/桌面操作系統、嵌入式操作系統(如工業控制)。

CSDN:開源對於 DIM-SUM 操作系統的發展起到了什麼樣的作用?

謝寶友:非常感謝開源軟件運動,特別是感謝 Linux 開源社區。

以練習毛筆書法爲例。真正的書家都明白一個簡單的道理:要練習好毛筆字,首先是練習一些握筆姿勢、基本筆畫方面的基本功,然後是用薄紙蒙在原作上面摹寫,其次是照着原作臨寫,最後纔是體會原作的整體佈局、形意、結構、筆勢,並加以創新,自成一派。

可以毫不誇張的說,開源軟件運動給我們提供了很好的臨摹範本,可以大大降低自研操作系統的難度,提升自研操作系統的穩定性和性能。

CSDN:DIM-SUM 操作系統目前進度如何?針對其下一步的研發或落地發展,有着什麼樣的願景或規劃?

謝寶友:由於忙於工作和出版書籍,我今年很少爲 DIM-SUM 開發新功能,只有十來個網友提交了一些邊緣補丁。下一步,我會抽出業餘時間開發一些新功能,重點是支持用戶態應用程序。

我不太希望將 DIM-SUM 做成某一家大公司的私有操作系統,也不希望將它作爲個人謀私的工具,我希望它能爲社會真正做出一些貢獻。所以,我幾乎可以確定的說,我不會加入某個公司來發展這個操作系統。

我認爲最理想的方式,是成立一個獨立的開源基金會,得到政府/業界的支持,集中 10 位國內頂尖高手,花 10 年時間進行研發。預估在這樣的模式下,每年的投入不會超過 1000 萬元,10 年總投資不超過 1 億元人民幣。關於這方面的具體想法,我以後會專文描述。退一步講,即使沒有獨立的開源基金會,我也會利用業餘時間開發這個操作系統。

CSDN:據悉,您此前在內核代碼註釋中耕耘多年,這爲自研 DIM-SUM 操作系統帶來了哪些幫助?

謝寶友:還是以上述的練習毛筆書法來做比喻:以前對內核代碼的註釋工作,更像是第一步工作,也就是練習一些握筆姿勢、基本筆畫方面的基本功。

順便也自嘲一下,目前的 DIM-SUM 僅僅是對 Linux 操作系統的臨摹,離真正成熟的自研操作系統還有很長的距離。不過古語說:千里之行,積於跬步。總有一天,我們能行於千里之外!

CSDN:2018 年 DIM-SUM 第一個版本:HOT-POT 操作系統已誕生,在此過程中,令您印象最爲深刻的挑戰是什麼?又是如何攻克的?

謝寶友:這個版本很不成熟,我個人對此並不滿意。然而,即使是這樣一個不太成熟的版本,也遇到了不少挑戰。

最大的挑戰來自於文件系統,包括 lext3 文件系統、虛擬文件系統、設備文件系統、內存文件系統、塊設備子模塊、塊設備驅動。這也是 Linux 曾遇到的挑戰。

記得 Linus 曾經說過,技術大牛們在 Linux 中實現文件系統時,也有想過放棄的時刻。不過,得益於對 Linux 內核的詳細分析和註釋,我在開發 DIM-SUM 時,想要退縮的心情應該沒有 Linus 那麼強烈,畢竟前輩們已經給我們打下了很好的基礎,也給了我們成功的信心。

操作系統的技術升級之路

CSDN:在你技術成長過程中,是否有着對你影響較大的某位人、某些書、某些網站/文章或其他,爲什麼?

謝寶友:在 20 多年的職業生涯中,我遇到兩位技術方面的牛人,也是工作中的合作伙伴:

1、易語言的創始人吳濤。他也被評爲“影響中國軟件開發的 20 人”之一。

2、阿里巴巴傳奇程序員、阿里合夥人多隆大神。他的技術領悟力和敏感度非常高。

對我影響最大的兩本書是:

1、陳莉君老師翻譯的《深入理解 Linux 內核》。這本書在 Linux 內核入門階段對我影響很大。

2、Paul E. Mckenney 的 《Is Parallel Programming Hard, And, If So, What Can You Do About It?》,這本書已經由我和魯陽翻譯爲《深入理解並行編程》。這本書很難,但是對研發操作系統至關重要。

CSDN:對於想要跨行到 IT 的從業者,基於操作系統入門方面,可否分享一下您的經驗?

謝寶友:六年前,我在 CSDN 的專訪(https://www.csdn.net/article/2014-04-08/2819178-Interview-about-linux-kernel-expert-Xiebaoyou)中,曾談到過這個問題。現在想來,當年的回答仍然有效。推薦的幾本書仍然值得閱讀,即使這些書的內核版本老一點也沒有關係。如果說需要補充一點東西的話,我覺得有這兩點感悟:

1、閱讀的時候,心無旁騖很重要。

2、聰明人下笨功夫,只有傻瓜才耍小聰明。在操作系統技術學習方面,尤其是這樣。

CSDN:您在一線寫代碼已多年,面向程序員界的“35 歲危機”問題, 您怎麼看?

謝寶友保持不斷學習的能力,就不會面臨“35歲危機”。也許,我們可以把這些 35 歲的故事當成謠言!

以我自己爲例,35 歲的時候收入還不是特別高,而 35 歲之後,不但沒有遇到危機,收入反而上漲了許多。也許 35 歲危機只是大公司 HR 放出的謠言。

當然,這也並非壞事,我想 HR是想借此保持組織的活力,避免一些員工思想怠惰。對於那些持續學習的員工,保持激情的員工,不偷懶的員工,哪個HR 會捨得對你動手呢?

‍‍‍‍10月23-25日,“長沙 · 中國 1024 程序員節”將盛大舉行。程序員節活動以開源爲主議題,包括 2 場嶽麓尖峯對話;2020 開源技術英雄會;10+場熱門技術分論壇/峯會;創意集市;體驗感超強的科技文化嘉年華、最 HIGH 時刻的開源之夜。內容聚焦開源技術及生態建設、操作系統及硬件創新、開源社區及商業化發展等多個重要話題。

點點贊
點在看
相關文章