清华学霸直博简历:CPU、操作系统、编译器全自主写
最近,知乎上有一条帖子火了,该帖子题为“清华大学计算机专业本科这位在「自己写的 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 也将他们的项目开源,希望能让更多人看到并提出意见。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源的方舟编译器将进入深圳大学课堂
前阵子华为正式开源了方舟编译器,根据介绍,此次开源的是编译器框架部分源码,包括编译器中间表示(IR,Intermediate Representation)和语言编译实现,同时搭配编译器其它二进制组件,实现 Java 程序到 aarch64 汇编指令的编译过程。 代码开源之后,一方面,开发者可以基于开源代码+二进制代码,编译构建出编译器工具链,尝试对 Java 程序进行编译;另一边,社区参与者可以通过框架源码学习方舟编译器的 IR 及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与诸如对编译器中端优化的贡献。 很快就有消息透露深圳大学正打算将方舟编译器引入课堂,我们借此就方舟编译器相关问题采访了计算机与软件学院院长明仲与软件工程系副主任蔡树彬,并向校方确认了该消息。 开源中国:请问您从技术上怎么看方舟编译器? 明仲:我认为,方舟编译器技术上最大的变化是改用新的编译和运行机制,将原来安卓应用边解释边执行的即时编译改为先整体静态翻译再优化执行的预先编译模式,大幅度提升了安卓应用的运行效率。这可以说是近几年来能深刻影响整个安卓生态的基础性变化。从 JIT 编译到 AOT 编译的改进,中间...
- 下一篇
开源中国客户端适配 Android 10 填坑指南(含代码)
我们App的适配从 targetSdkVersion = 26跨版本升级到29,因此会遇到大量的坑,最终的版本配置如下: 现在进入填坑适配指南,包含实际经验代码,绝不照搬翻译文档 1.Region.Op相关异常:java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed 当targetSdkVersion >=Build.VERSION_CODES.P 时调用 canvas.clipPath(path, Region.Op.XXX); 引起的异常,参考源码如下: @Deprecated public boolean clipPath(@NonNull Path path, @NonNull Region.Op op) { checkValidClipOp(op); return nClipPath(mNativeCanvasWrapper, path.readOnlyNI(), op.nativeInt); } private static vo...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装