清华学霸直博简历:CPU、操作系统、编译器全自主写

afterer
 afterer
发布于 2019年09月17日
收藏 67

最近,知乎上有一条帖子火了,该帖子题为“清华大学计算机专业本科这位在「自己写的 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 也将他们的项目开源,希望能让更多人看到并提出意见。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:清华学霸直博简历:CPU、操作系统、编译器全自主写
加载中

精彩评论

s
shifeng1983
什么时候去美国?
足下存身
写一个ARMv7内核HDL大概900多行,网上有很多种。写一个MIPS32的大概1200行到2000行,这个在自制CPU书里面就有例子。
这个学生自己做了,并且在流水线设计上有了自己的工作或者说见解,已经很可以了。毕竟不是一个工业的东西,而且,学生也接触不到工业的很多设计思路。

对于普通的985学生来讲,可能是一个毕业设计的水平。但是对于清华的学生,可能是一个大作业或者两三个月的成果。
CPU、编译器和操作系统三者整合里面,感觉复杂的是能让整个cpu跑起来其他软件和一些外设,这里面复杂的corner case可能对学生来说,真的很花时间。至少说明这个学生很勤奋而且工程能力不错。
韦小仇
韦小仇
用HDL语言确实可以模拟出CPU电路,配合相应的FPGA芯片,将电路写进芯片里,这样就得到了(或者说“写出了”)一个CPU。当然这只是一个简易的、理论性大于实用性的、低性能的CPU,真正的商业CPU开发比这复杂得多。
貓夏
貓夏
我也写过一个简单的16位五级流水MIPS处理器 虽然比不上文中的 但是能跑 MIPS资料很多不是太难 操作系统也写过简单的在嵌入式平台运行的 编译器学了一会 还没搞成 可能大部分人觉得CPU很难 但他这些项目在这个专业还是能做出来的 还有一点这是CPU设计 可以FPGA上验证 CPU制造又是另外一回事 要光刻机什么的
NickWilde
NickWilde
至少说明了学霸是勤奋来的,比一般人都要勤奋。

最新评论(97

mingl
mingl
这是多少天前的新闻 怎么又置顶了。。。。
liyong2
liyong2
我也会写
不吃肉夹馍
不吃肉夹馍
学习就应该有这样的态度 不要像商业公司搞个贴牌就大肆吹捧技术实力 正确认识自己最重要
Kit_lee
Kit_lee
隔行如隔山,很多外行人不明觉厉的东西其实在相应专业来说不是太难。
w
wangzhenhua
那位学霸很正直,没有抬高自己,公平看待朋友的贡献,前途远大
张豪飞
张豪飞
cpu是写的?
贡梨
清华大学的果然不一样,我们这么多年的实战经验,被人家一秒,一句话全部秒杀,程序员的差别居然这么大,惭愧啊,多年来我们自己还是用windows,linux系统,别人开始磁轭cpu和操作系统了
优秀良民
优秀良民
术业有专攻,我们是做应用开发的,跟做嵌入式开发的,在学习的技术和应用都不同。。。
饭徐坤
我大学毕业写了一个跟电脑下五子棋的游戏,周围同学导师都夸我聪明,说这么年轻一个人都会做下棋游戏了,人家那么大一个谷歌那么多人那么多年才研究出一个AlphaGo,我此时心想:我辛好生在中国,厉害了我的锅😁
星辰大海88
星辰大海88
去美国好啊,霍霍他们
返回顶部
顶部