清華學霸直博簡歷:CPU、操作系統、編譯器全自主寫
最近,知乎上有一條帖子火了,該帖子題為“清華大學計算機專業本科這位在“自己寫的CPU 上運行自己寫的操作系統”的同學是什麼水平?”,提問者對清華大學計算機系副教授、博士生導師劉知遠(主要研究方向為表示學習、知識圖譜和社會計算)的一條微博感興趣,在知乎上進行了提問。
具體情況是清華大學某位計算機專業的本科生,在院系直博面試的簡歷上,有一個“在自己寫的CPU 上運行自己寫的操作系統”的Rust 語言實現的Linux 兼容操作系統項目非常抓人眼球。這條帖子引起了熱議,大多數人對此表示驚嘆和讚許,劉知遠教授也是十分稱讚。
根據劉知遠在知乎上的回答表述,清華大學計算係有三門必修課分別是計算機組成原理、操作系統和編譯原理,這三門課是分在幾個學期上的,各自有一套大作業體系。然而,這位面試的同學卻融會貫通了這三門課的知識,在同一套體系下完成了三門課的大作業。雖然對於常年浸淫這些領域的專家不算什麼,但是對於一名大三的本科生,在這一個忙碌的學期裡,願意主動折騰這些硬核內容,完成了一個項目,這是很難得的事情。劉知遠認為該同學簡歷上的這句“在自己寫的CPU上運行自己寫的操作系統,以及自己實現的編譯器生成的程序”,反映的是一位熱愛計算機技術少年的浪漫情懷。
“最怕聰明的人還比你努力”,據劉知遠的帖子,這位同學的簡歷上不單單只有這個項目出彩,還有其他吸引人的內容,例如在“龍芯杯”比賽獲得特等獎,該大賽由龍芯中科公司提供技術支持,參賽隊伍需在龍芯公司提供的FPGA 開發板上,自行設計CPU 核心及SoC,並在上面運行測試程序。他的參賽作品是自行實現的十級雙發射順序MIPS32 處理器,支持運行最新版Linux 內核,啟動X11 圖形界面以及Python、GCC 等程序,該作品得到龍芯公司IP 組負責人高度評價,受邀在“2019 年高等院校計算機系統類課程研討會”進行報告,如下圖:
根據知乎上的討論,話題的C 位是清華計算機系本科生週聿浩同學(miskcoo),他曾經是一名OIer,第一次參賽就拿到了省一。在個人博客簡介上,他描述自己“感興趣的是人工智能中偏理論方面的內容,以及一部分分析方向的數學”。miskcoo 僅僅作為一名大學生,就自行完成了這些很有難度的項目,不得不令人瞠目結舌。
本以為miskcoo 自可默不作聲,沉浸在眾人的讚賞中,沒想到他在知乎上回帖,從技術角度介紹他所做的項目以及清華系統類課程的細節情況。
我想多說一句,因為劉老師打碼的原因可能大家沒有註意到,這些東西實際上是我和另外幾個同學一起做的。他們都十分厲害,在前面一個龍芯杯的參賽作品的CPU、SoC、Linux 移植以及其它一些東西里面我主要做的是CPU 的部分。如果沒有他們的話一個暑假完成這樣一件事情在我的能力範圍內是不太可能的。
他表示這些項目實際上是他和另外幾個同學一起完成的,單靠自己是做不出來的。另外這個“在自己寫的CPU 上運行自己寫的操作系統”項目,也是多人共同努力的結果,他還詳細介紹了每個人的分工情況。關於“自己實現的編譯器”部分,miskcoo 表示,本質上是基於編譯原理課程的Decaf 編譯器修改而來,完成的情況比較醜陋。
他還貼出了一張Git 統計出來的項目上每個人的提交時間圖:
miskcoo 表示上了熱搜是一件很意外的事,他認為這並不是一件值得拿來吹捧的事情,如果正常按照計算機系的培養方案來走的話,上完組成原理之後就能夠擁有一個自己寫的CPU,而他們的所作所為只是在某些部分做的比正常值高了一些,這些多出來的部分也極其耗費時間,他們曾在這個過程中遇到很多近乎要讓人放棄的bug ,最終能完成項目對他們來說收穫的是一份成就感和喜悅,而且項目還有很多不足的地方,很多部分還是處於比較低的水平。
miskcoo 稱這件事在傳播過程出現了一些信息錯誤,所以有必要出來澄清,他不希望他們所做的東西被過分地抬高,清華大學裡優秀的人很多,還有很多地方需要去學習。miskcoo 也將他們的項目開源,希望能讓更多人看到並提出意見。