清華學霸直博簡歷火了!CPU、作業系統、編譯器全自主寫,劉知遠點讚

2020-12-15 和訊

  來源:知乎、blog.miskcoo等

  【新智元導讀】清華大學直博面試的一則簡歷上了知乎熱榜:「實現了在自己寫的CPU上運行自己寫的作業系統,以及自己實現的編譯器生成的程序」。簡歷主人是清華計算機系本科生周聿浩同學,他順利拿到直博名額,清華劉知遠老師也表示讚賞。

  最近,一個來自福州的男生突然火了,原因是知乎上一個熱帖《清華大學計算機專業本科的這位同學是什麼水平?》:

  https://www.zhihu.com/question/345718537

  提問者說,他在微博上看到清華劉知遠教授的一條微博,對劉教授口中這個優秀同學產生了興趣:

  我看到微博很多人都說很牛逼,連劉知遠老師都稱讚,但是我好像不怎麼能體會到(估計是我自身水平太低了),能有人做一個形象的比喻嗎?

  來源:劉知遠老師微博

  這名同學網名Miskcoo,他簡歷中「實現了在自己寫的CPU上運行自己寫的作業系統,以及自己實現的編譯器生成的程序」一句尤其引起討論,很多對 Miskcoo 比較了解的用戶紛紛跟帖回應。

  Miskcoo 本名周聿浩,畢業於福州一中,目前在清華大學計算機系就讀。他曾經是一名 OIer,第一次參賽就拿到了省一。在個人博客簡介上,他描述自己「感興趣的是人工智慧中偏理論方面的內容,以及一部分分析方向的數學。」

  而且他本人也非常低調虛心。面對大家的一片讚譽,自己則表示獲得劉知遠教授認可的項目,單靠自己是做不出來的,特別要感謝一起戰鬥的小夥伴,包括陳晟祺、劉曉義等。

  除了rCore on MIPS這個項目外,Miskcoo簡歷中另一個受到好評的項目經歷是「NonTrivialMIPS - 十級流水雙發射 MIPS 處理器」,這是清華計算機系團隊在第三屆 「龍芯杯」 全國大學生系統能力培養大賽中獲得特等獎的項目。這是一個系統類的比賽,要求自己設計一個 CPU,在其上設計 SoC,運行作業系統等。在這個項目中,miskcoo 負責寫 CPU(這次稱為 NonTrivialMIPS),劉曉義寫 cache,陳晟祺負責 Vivado 和 CI ,最終成功奪得特等獎!

  清華大學計算機系團隊奪得第三屆「龍芯杯」特等獎

  清華硬核系統類課程,「奮戰二十天造臺計算機」

  我們先看引起討論的「在自己寫的CPU上運行自己寫的作業系統」這個項目:

  rCore on MIPS - Rust 語言實現的 Linux 兼容作業系統  2019年4月-2019年6月

  作業系統課程項目。rCore 是用 rust 編寫的作業系統。支持了x86_64,RISCV,AArch64 三個平臺。本項目主要將其移植到 MIPS32上,最終可以在組成原理課程編寫的 MIPS32處理器上運行。

  實現了在自己寫的CPU上運行自己寫的作業系統,以及自己實現的編譯器生成的程序。

  編譯器、作業系統、CPU是三個幾乎像無底洞一樣大的方向,實現了「在自己寫的CPU上運行自己寫的作業系統,以及自己實現的編譯器生成的程序」究竟有多厲害,知乎用戶霍華德言簡意賅地評價道:

  差不多等於下面這四本書融會貫通吧。感興趣的朋友可以買來挑戰一下自己。

  miskcoo本人則在知乎回復,強調這些工作離不開與團隊的合作:

  我想多說一句,因為劉老師打碼的原因可能大家沒有注意到,這些東西實際上是我和另外幾個同學一起做的。他們都十分厲害,在前面一個龍芯杯的參賽作品的 CPU、SoC、Linux 移植以及其它一些東西裡面我主要做的是 CPU 的部分。如果沒有他們的話一個暑假完成這樣一件事情在我的能力範圍內是不太可能的。

  清華大學劉知遠老師補充道:

  劉知遠老師提到的另一段項目經歷,即「NonTrivialMIPS」這個項目,在第三屆 「龍芯杯」 全國大學生計算機系統能力培養大賽,陳晟祺、周聿浩、劉曉義和陳嘉傑四位同學組成的清華大學計算機系代表隊(指導教師:計算機系陳康、李山山)以性能分數和綜合成績第一的表現獲大賽唯一的特等獎。

  該大賽由龍芯中科公司提供技術支持,參賽隊伍需在龍芯公司提供的 FPGA 開發板上,自行設計 CPU 核心及 SoC,並在上面運行測試程序。清華計算機系學生代表隊設計並實現了雙發射 10 級流水線 CPU,支持運行最新版 Linux 內核,啟動 X11 圖形界面,這在大賽歷史上屬於首次。現場答辯環節上,同學們的優異成果得到專家們的一致好評。

  圖來自:清華大學新聞網

  清華大學計算機系對系統原理非常重視,從教學到課程項目都非常硬核。而且近期清華計算機系的系統類課程(包括組成原理、網絡原理、編譯原理等)都在進行比較大的改革,miskcoo表示,團隊能夠寫出這個項目的部分原因也是由於這些課程的安排較為合理。

  下面是清華大學計算機科學與技術專業本科培養方案中的專業主修課程內容:

  項目開源:rCore for MIPS32  - Linux 兼容的 rust 編寫的作業系統

  rCore for MIPS32這個項目已經在GitHub上開源,感興趣的讀者可以去研究一下:

  Github:https://github.com/rcore-os/rCore

  rCore for MIPS32 - Linux 兼容的 rust 編寫的作業系統(with:陳晟祺)

  這是作業系統的課程項目,rCore 是用 rust 編寫的一個作業系統,也是由清華的同學編寫的。在我們加入之前支持了 x86_64, RISCV32/64, AArch64 三個平臺。我們主要將其移植到 MIPS32 上。它最終可以在組成原理課程編寫的 MIPS32 處理器上運行。

  環境:

  Rust toolchain at nightly-2019-03-05

  Cargo tools: cargo-xbuild

  QEMU >= 3.1.0

  bootimage (for x86_64)

  RISCV64 GNU toolchain (for riscv32/64)

  AArch64 GNU toolchain (for aarch64)

  musl-cross-make (for userland musl, or download prebuilt toolchain from musl.cc)

  libfuse-dev (for userland image generation)

  See Travis script for details.

  如何運行:

  $ rustup component add rust-src llvm-tools-preview$ cargo install cargo-binutils$ cargo install cargo-xbuild --force$ cargo install bootimage --version 0.5.7 --force

  $ git clone https://github.com/rcore-os/rCore.git --recursive$ cd rCore/user$ make sfsimg arch={riscv32,riscv64,x86_64,aarch64,mipsel} # requires $(arch)-linux-musl-gcc$ cd ../kernel$ make run arch={riscv32,riscv64,x86_64,aarch64,mipsel} mode=release$ make run arch=x86_64 mode=release pci_passthru=0000:00:00.1 # for ixgbe real nic, find its pci (bus, dev, func) first

  miskcoo的其他項目還包括:

  NonTrivialMIPS - 十級雙發射順序 MIPS32 處理器

  (with:陳晟祺,劉曉義,陳嘉傑)

  這是參加 「龍芯杯」 的作品,獲得特等獎。我們自己實現了一個十級雙發射順序 MIPS32 處理器,包含 32 位浮點單元和一個 AES 加速單元。在其上自行設計了 SoC 同時移植了 Linux 作業系統。可以運行圖形界面(X 服務)以及 Python 等一大類程序,在 OpenSSL 上利用 AES 單元加速後吞吐率大約為 10MBps(CPU 主頻 80MHz,在 i7-8750H 上不利用 AESNI 指令的實現吞吐率大約為 100MBps)。同時浮點單元能夠較快地繪製 Mandelbrot 集的圖像,我們還實現了通過變分自編碼器(VAE)生成手寫數字圖像等。

  Github: https://github.com/miskcoo/nontrivial-mips

  TrivialMIPS - 五級雙發射順序 MIPS32 處理器

  (with:陳晟祺,姚沛然)

  這是大三上學期組成原理、軟體工程的聯合實驗,在組成原理的 ThinPad 實驗板上編寫的 MIPS32 處理器。由於僅有 SRAM,處理器不帶有 Cache,和 「龍芯杯」 的相比較為簡陋。不過,加上之後作業系統和編譯原理的成果,還是實現了在自己寫的 CPU 上運行自己寫的作業系統,同時運行自己寫的編譯器生成的程序。

  Github: https://github.com/trivialmips/trivialmips

  FPGA Console - 硬體實現的 VT220 兼容終端

  (with:陳晟祺)

  這是大二下學期數字邏輯設計的項目,也是我的第一個 FPGA 項目。主要是通過 FPGA 接受鍵盤的輸入,將輸入轉化為控制命令通過串口輸出給計算機。同時也通過串口接受計算機傳回的控制命令名且解析、執行,修改對應位置的字符,再將字符進行渲染通過 VGA 輸出到屏幕。支持 VT220 以及部分 xterm-256color 的控制序列。

  Github: https://github.com/Harry-Chen/fpga-virtual-console

  TrivialDB - 簡易 SQL 資料庫引擎

  這是資料庫系統概論的課程項目,用 C++ 實現的一個 SQL 資料庫引擎。實現了大部分常見的 SQL 語句和類型。同時支持多表連接、複雜表達式運算、多主鍵約束、外鍵約束、CHECK 約束、UNIQUE 和 DEFAULT 約束、聚集查詢、利用 B + 樹索引的查詢優化,同時,它支持任意長度的 VARCHAR 類型。

  Github: https://github.com/miskcoo/TrivialDB

  rubik-cube - 快速魔方解算器

  大學後的第一個課程項目,利用 Kociemba 算法實現的三階魔方求解器。大約能夠在 1 秒內通過不多於 32 步復原一個三階魔方。另外,還實現了 Krof 算法,可以計算最少復原方案,不過這需要很長的時間。同時,我利用 OpenGL 對復原過程進行了動畫展示。

  Github: https://github.com/miskcoo/rubik-cube

  其它項目(較為簡單,部分沒有公開。有需要代碼可以聯繫我)

  Mandelbrot-Render,一個高精度 Mandelbrot 渲染器。

  SimpleTomasulo - Tomasulo 算法模擬器。

  SimilaritySearch - 近似查找 / 近似連接算法,以及一個 「網際網路打車」 應用。

  OfficeOnline - 在線審批系統。

  RIPRouter - 支持 RIP 協議的路由器。

  TrivialNews - Java 實現的 Android 新聞閱讀器。

  數獨 - Qt 編寫的數獨,可生成及求解不同難度數獨。

  國際跳棋 - Qt 編寫的雙人國際跳棋遊戲。

  人物信息檢索 - Python 編寫的爬蟲,可以抓取 Wikipedia 的人物信息並且顯示。

  最後,Miskcoo同學的主頁請收好:

  Miskcoo’s Space - 一個數學和計算機愛好者的博客

  blog.miskcoo.com

  討論地址:

  https://www.zhihu.com/question/345718537

本文首發於微信公眾號:新智元。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

(責任編輯:王治強 HF013)

相關焦點

  • 他從哈爾濱工程大學直博清華大學,劍橋大學也為他點讚,牛!
    直博清華的信通學院劉震宇就是其中十分耀眼的一顆星,他除了具有在專業400餘人中排名第一的「學霸屬性」,還難能可貴地自帶「文藝屬性」。「音樂才子」+學霸的他曾連續兩次獲得國家獎學金,以專業第一的成績與200多位精英角逐,並在清華大學電子工程系號稱「魔鬼級」六輪複試中脫穎而出,成功獲得保送直博的資格。
  • 推薦|知乎大V、清華劉知遠「自然語言處理訓練營」
    4600次 並承擔多項國家自然科學基金 2019年 他入選《麻省理工科技評論》 「35歲以下科技創新35人」 中國區榜單 是名副其實的青年才俊 他就是劉知遠老師
  • 學霸小姐姐直博清華:以第一作者在國際期刊發論文
    還記得那位跨專業直博清華的美女學霸嗎
  • 清華學霸的每日計劃表,為努力點讚!
    這份計劃表是清華校史館舉行的「清華大學優良學風檔案史料展」中一份展品,來自一位本科生。在這張計劃表裡,密密麻麻地寫著他每天的學習進程:凌晨1點睡覺,清晨6點起床,6點40開始學習。除了每天完成固定課程,還包括了每周兩次的講座充電,兩門外語的學習,還有固定的鍛鍊時間。
  • 當清華學霸博士與抖音化學反應,氫氦鋰鈹硼也浪漫
    然而這些課堂上集中精力都難以啃下的知識點,被一位90後清華學霸,做成短視頻教學。抖音上@教化學的清華博士汪,用精心剪輯配樂過的化學實驗,帶領71萬粉絲走入有趣的化學世界,以及大家最好奇的清華生活。  「別人家的小孩」成抖音網紅  「教化學的清華博士汪」帳號主人是史家昕,一個90後,普通話裡隱約漏出東北味兒的遼寧人。
  • 清華大學劉知遠:在 NLP 領域「做事」兼「發聲」
    有一分熱,發一分光,就令螢火一般,也可以在黑暗裡發一點光,不必等候炬火。此後如竟沒有炬火:我便是唯一的光。——魯迅《熱風》隨感錄 四十一雷鋒網(公眾號:雷鋒網) AI 科技評論按:對於清華大學計算機科學與技術系自然語言處理實驗室團隊而言,今年或許是一個頻頻「做事」兼「發聲」的季節。
  • 學霸宿舍曝光!2人北大、1人清華、1人上交!4人全部直博
    分享親子快樂,交流教育知識,歡迎關注陸北老師學霸有很多,但是一個宿舍都是學霸的還真的挺少。近日,蘭州大學就出了這樣一個「學霸寢室」,一個男生宿舍四個人全部「直博」,兩人北大一人清華,另外一人上交。這就讓人不禁好奇,「學霸寢室」的四個人,都咋學出來的呢?保送北大的周湖棉講述了自己的故事。他開始並不是全能的學霸,高一時英語不及格,自己花了三年的時間才在高考彌補過來。大學時,他覺得最值得分享的經驗,就是每天會跟著老師的思路學習。他坦言:「聽老師教課很重要,要保持興趣和堅持的態度,興趣讓你學起來輕鬆,堅持讓你走得更遠。」
  • 大學版「一生一芯」:自製CPU、C編譯器,還成功運行了類Unix系統
    導師向學生們下達了任務目標:「把這個用 OCaml 寫的光線追蹤程序運行在你們用 FPGA 實現的 CPU 上」,然後就下課了。對於編寫 CPU 和編譯器的具體步驟,他不會多說。學生需要自己學習如何將學過的有關 CPU 和編譯器的一般知識轉化成實際成品,這將涉及到實際的電路和代碼。是的,這個實踐課程確實很難,但也很激動人心且極具教育意義。
  • 清華男生退學重考699分:學霸的人生是偷不走的
    前段時間隨著高考成績公布一同出現的,除了各省各市的狀元,還有一則熱搜獲得了不少網友的點讚——但是他都扛了下來,用成績詮釋了「清華是我想上,就能上的大學!」「這就是學霸,學霸的人生是偷不走的」哪有什麼天生的學霸,只不過為了目標不斷努力前行而已。
  • 編譯器 | 五款好用的C/C++編譯器(IDE利器)
    (編譯器獲取方式在文末)是一個初學者 C/C++ 的編譯器首選。(編譯器獲取方式在文末)C4drioid 或 快寫代碼app手機可以編譯的軟體介紹完這兩個 PC端 使用的 IDE 也有不少人不能時時都在使用電腦,還有一個手機能都寫 C/C++語言 的代碼編輯器
  • 從浙大南大,攜手保研直博北大清華,學霸情侶實力詮釋「同甘共苦」
    幾乎同時,她的男朋友——南京大學物理系"小王子"馬恆安也收到了來自清華大學數學系的"直博"邀請函。把在浙大、南大的緣分即將續寫在北大和清華,一起來看他們的故事吧!清華的理科專業實力很強,他剛好有這個實力,就毫不猶豫要去北京。我是南方人,從來沒有想過去北方念書,也不了解北方的學校。但因為太想結束異地戀了,我就申請了同在北京的北京大學和中國人民大學。"雖然算是在"遷就"男朋友,夏明朗講起來卻充滿了甜蜜。保研,看似是一條捷徑,但是它的壓力並不比大多數人選擇的考研小。
  • 小米大佬講解 Go 之編譯器原理
    如上圖所見,整個編譯器可以分為:編譯前端與編譯後端;現在我們看看每個階段編譯器都做了些什麼事情。先來從前端部分開始。詞法分析詞法分析簡單來說就是將我們寫的原始碼翻譯成 Token,這是個什麼意思呢?語義分析編譯器裡邊都把語法分析後的階段叫做 語義分析,而go的這個階段叫 類型檢查;但是我看了一下go自己的文檔,其實做的事情沒有太大差別,我們還是按照主流規範來寫這個過程。那麼語義分析(類型檢查)究竟要做些什麼呢?
  • 14歲考入清華大學,18歲直博清華數學系
    然後看到了這樣一個話題:《XXXX張雨萱,14 歲考入清華大學,18 歲直博清華數學系,真的嗎?怎麼做到的?》,該話題熱度排在科學榜第一,說實話這麼高的熱度我是有些不太理解,這難道是很罕見的事情嗎?但是我看到這個標題,哦不,是右邊的封面確實就忍不住點進去了,我承認我酸了
  • Intel的「霸道」:深究編譯器對CPU性能的影響-Intel,AMD,編譯器...
    TDM-GCC (MinGW/GCC 4.6.1)重要問題:AMD為什麼沒有自己的編譯器這個要著重寫一下,Intel首先,AMD也參與了GCC編譯器工程,而微軟開發VS時也會跟AMD及Intel保持合作以便對他們的CPU作出公正(微軟語)而又統一的優化支持。另外,AMD贊助並推廣了Open64編譯器,它脫胎於一個編譯器研究計劃,後者最早是Intel贊助的、針對安騰架構所優化的編譯器項目。
  • 清華學霸作息表爆火:半夜1點睡凌晨6點起,自律的人生如開掛
    一、清華學霸作息表爆火,自律的人生如開掛生養孩子,天下父母都是一樣的不容易,從嗷嗷待哺的嬰兒到18歲以後的成人,父母需要煩心操持的事情太多太多!其中,僅僅孩子的學習問題就難倒了不少父母。最近,網友有份關於清華女學霸的作息表特別火,吸引了無數家長轉發點讚。
  • 老奶奶都能看懂的CPU技術科普
    因為作業系統根本不需要知道你cpu是怎麼設計的,作業系統只要知道,我需要運行這些指令,你知道怎麼運行就行了,每個不同牌子的cpu,只要你運行出來結果都一樣,就行了。如果isa定義1+1=9,那麼這個是定義下來的,所有人都這樣錯,就沒錯。如果isa定義了1+1=9,你要糾正他,我的cpu是1+1=2,那麼你做出來的cpu雖然數學上正確,但是所有軟體,系統,就突然不知道怎麼辦了。
  • 清華學霸的作息表火了:從小就優秀的人,都離不開自律
    在去年,有一份清華學霸的作息表火了,在清華大學的官方微博中分享了很多畢業生和在校生的筆記、作業以及作息計劃表。不管令所有清華學生沒想到的是,這些他們看起來很平常的東西,竟然在網絡上火了,引起3億人閱讀,8萬人討論,儘管如此尋常的小事,卻是大多數人眼中難以做到的。
  • 世界上第一個C語言編譯器是怎麼編寫的?它為什麼能夠用C語言編寫?
    ,將其轉換成cpu可以執行的二進位文件。 所以用C語言來做C語言的編譯器是完全可行的。 但是,歷史上的第一個C語言編譯器,肯定不是C語言寫的,因為在沒有編譯器時,無法把C語言轉換成可執行文件。只要有了第一版其它語言的編譯器,就可以用C語言寫編譯器了。
  • 第七屆開源作業系統年度技術會議(OS2ATC)盛大開幕,從編譯器到軟體...
    教育部國產基礎軟體工程研究中心主任、鵬城實驗室鵬城生態項目負責人吳慶波和北京飛漫軟體技術有限公司CEO、HybridOS作業系統開源協作項目發起人魏永明擔任大會主席,清華大學計算機系長聘副教授、博導陳渝和鑑釋科技CEO&聯合創始人梁宇寧擔任組委會。本次大會邀請40多位國內外一線的作業系統專家和行業領袖,圍繞開源作業系統、編譯器、全棧系統、晶片等技術熱點展開討論。
  • 山東女學霸直博清華,三年專業第一,本科發表SCI一區論文
    直博清華的她有著"閃閃發光"的榮譽和令人豔羨的前路,但最初的她也是一個滿心羨慕的仰望者。當她堅定信念、放手去做,一步步前行直到頓足於清華園前,發現原來自己也有這樣的能力。張愷寧,1999年10月出生,中共黨員,化學化工與材料科學學院化學專業2017級本科生。