清華學霸直博簡歷 CPU 作業系統 編譯器全自主寫

2021-09-27 04:40:48 字數 2012 閱讀 6778

最近,知乎上有一條帖子火了,該帖子題為「清華大學計算機專業本科這位在「自己寫的 cpu 上執行自己寫的作業系統」的同學是什麼水平?」,提問者對清華大學計算機系副教授、博士生導師劉知遠(主要研究方向為表示學習、知識圖譜和社會計算)的一條微博感興趣,在知乎上進行了提問。

具體情況是清華大學某位計算機專業的本科生,在他的乙份院系直博面試簡歷上,乙個用 rust 語言實現的 linux 相容作業系統專案非常抓人眼球,該專案實現了在自己寫的 cpu 上執行自己寫的作業系統。這條帖子引起了熱議,大多數人對此表示驚嘆和讚許,劉知遠教授也是十分稱讚。

根據劉知遠在知乎上的回答表述,清華大學計算系有三門必修課分別是計算機組成原理、作業系統和編譯原理,這三門課是分在幾個學期上的,各自有一套大作業體系。然而,這位面試的同學卻融會貫通了這三門課的知識,在同一套體系下完成了三門課的大作業。雖然對於常年浸淫這些領域的專家不算什麼,但是對於一名大三的本科生,在這乙個忙碌的學期裡,願意主動折騰這些硬核內容,完成了乙個專案,這是很難得的事情。劉知遠認為該同學簡歷上的這句「在自己寫的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 也將他們的專案開源,希望能讓更多人看到並提出意見。

讀清華學霸的學習計畫表有感

近日,網路上瘋傳清華大學某特等獎學金得主的學習計畫表,看後感嘆此人真是不辱 學霸 的稱號。不說別的,就是除週末外每天凌晨1點睡覺,早上6點起床這一條來說,我幾乎就做不到。想想自己每天23點睡,早上7點半8點起,而且大多數下班時間都不是在學習,真有點感覺是在浪費生命了。看來,今後我也要多培養自己的自控...

學霸小巧匯集的清華北大哈佛劍橋同學們的時間管理方法

1 時間規劃本 2 制定 日計畫 周計畫 月計畫 制定計畫 短期 中期 長期 3 目標具體化 4 計畫的優先順序 5 不要完美主義 需要完成它,不要放棄它 1 剛開始計畫的時候不要把計畫安排太滿,需要留出空餘量 flexible 2 計畫的優先順序 原理基礎,簡單容易,緊急重要,舉一反三 3 利用碎...